fio

服务器性能测试

匿名 (未验证) 提交于 2019-12-02 23:53:01
性能测试(CPU、内存、IO) ~~~~~~CPU~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CPU指标为运算处理能力 一、cat /ptoc/cpuinfo 1、直接查看逻辑CPU的个数,执行:cat /proc/cpuinfo |grep 'physical id' |sort |uniq 结果:记录 2、直接查看CPU的型号,执行:cat /proc/cpuinfo |grep 'model name' |sort |uniq 结果:记录 3、单个CPU的内核数,执行:cat /proc/cpuinfo |grep 'cpu cores' |sort |uniq 结果:记录 4、总的CPU线程数,执行:cat /proc/cpuinfo |grep 'processor' 结果:记录 二、使用Super PI 是利用CPU的浮点运算能力来计算出π(圆周率),所以目前普遍被超频玩家用做测试系统稳定性和测试CPU计算完后特定位数圆周率所需的时间。 wget http://superpi.ilbello.com/pi/super_pi.tar.bz2 tar -jxvf super_pi.tar.bz2 ./super_pi 20 20为位数。表示要算2的多少次方位

CentOS中使用FIO测试磁盘IO性能

╄→尐↘猪︶ㄣ 提交于 2019-11-30 23:07:36
$ yum install fio 0x02 命令 随机读: $ fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=4k -size=60G -numjobs=64 -runtime=10 -group_reporting -name=file 顺序读: $ fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=4k -size=60G -numjobs=64 -runtime=10 -group_reporting -name=file 随机写: $ fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=4k -size=60G -numjobs=64 -runtime=10 -group_reporting -name=file 顺序读: $ fio -filename=/dev/sda1 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=4k -size=60G

Linux 监控之 IO

落爺英雄遲暮 提交于 2019-11-30 21:51:15
简单介绍下 Linux 中与 IO 相关的内容。 简介 可以通过如下命令查看与 IO 相关的系统信息。 # tune2fs -l /dev/sda7 ← 读取superblock信息 # blockdev --getbsz /dev/sda7 ← 获取block大小 # tune2fs -l /dev/sda7 | grep "Block size" ← 同上 # dumpe2fs /dev/sda7 | grep "Block size" ← 同上 # stat /boot/ | grep "IO Block" ← 同上 # fdisk -l ← 硬盘的扇区大小(Sector Size) 在 WiKi 中的定义:A “block”, a contiguous number of bytes, is the minimum unit of memory that is read from and written to a disk by a disk driver。 块是文件系统的抽象,而非磁盘的属性,一般是 Sector Size 的倍数;扇区大小则是磁盘的物理属性,它是磁盘设备寻址的最小单元。另外,内核中要求 Block_Size = Sector_Size * (2的n次方),且 Block_Size <= 内存的 Page_Size (页大小)。 磁盘使用空间 实际上是通过

深入理解 Linux磁盘顺序写、随机写

佐手、 提交于 2019-11-29 02:40:45
Linux 磁盘管理好坏直接关系到整个系统的性能问题。Linux磁盘管理常用三个 命令 为df、du和fdisk。 一、前言 ● 随机写会导致磁头不停地换道,造成效率的极大降低;顺序写磁头几乎不用换道,或者换道的时间很短 ● 本文来讨论一下两者具体的差别以及相应的内核调用 二、环境准备 组件 版本 OS Ubuntu 16.04.4 LTS fio 2.2.10 三、fio介绍 通过fio测试,能够反映在读写中的状态,我们需要重点关注fio的输出报告中的几个关键指标: slat :是指从 I/O 提交到实际执行 I/O 的时长(Submission latency) clat :是指从 I/O 提交到 I/O 完成的时长(Completion latency) lat :指的是从 fio 创建 I/O 到 I/O 完成的总时长 bw :吞吐量 iops :每秒 I/O 的次数 四、同步写测试 (1)同步随机写 主要采用fio作为测试工具,为了能够看到系统调用,使用strace工具, 命令 看起来是这样: 先来测试一个随机写 strace -f -tt -o /tmp/randwrite.log -D fio -name=randwrite -rw=randwrite \ -direct=1 -bs=4k -size=1G -numjobs=1 -group_reporting

Linux磁盘顺序写、随机写

半城伤御伤魂 提交于 2019-11-28 23:57:00
前言 随机写会导致磁头不停地换道,造成效率的极大降低 顺序写磁头几乎不用换道,或者换道的时间很短 fio 介绍 fio的输出报告中的几个关键指标: slat: 是指从 I/O 提交到实际执行 I/O 的时长(Submission latency) clat: 是指从 I/O 提交到 I/O 完成的时长(Completion latency) lat: 指的是从 fio 创建 I/O 到 I/O 完成的总时长 bw : 吞吐量 iops: 每秒 I/O 的次数 同步写测试 同步随机写 使用strace工具查看系统调用 strace -f -tt -o /tmp/randwrite.log -D fio -name=randwrite -rw=randwrite \ -direct=1 -bs=4k -size=1G -numjobs=1 -group_reporting -filename=/tmp/test.db 提取关键信息 root@wilson-ubuntu:~# strace -f -tt -o /tmp/randwrite.log -D fio -name=randwrite -rw=randwrite \ > -direct=1 -bs=4k -size=1G -numjobs=1 -group_reporting -filename=/tmp/test.db

磁盘测试工具FIO

与世无争的帅哥 提交于 2019-11-28 22:30:16
目前主流的第三方IO测试工具有fio、iometer和Orion,这三种工具各有千秋。 fio在Linux系统下使用比较方便,iometer在window系统下使用比较方便,Orion是oracle的IO测试软件,可在没有安装oracle数据库的情况下模拟oracle数据库场景的读写。 如下是在Linux系统上采用fio工具来对SAN存储进行的IO测试。 1、安装fio 在fio官网下载fio-2.1.10.tar文件,解压后./configure、make、make install之后就可以使用fio了。 2、fio参数解释 FIO工具使用方法: 参数说明: filename=/dev/sdb1 测试文件名称,通常选择需要测试的盘的data目录。 direct=1 测试过程绕过机器自带的buffer。使测试结果更真实。 rw=randwrite 测试随机写的I/O rw=randrw 测试随机写和读的I/O bs=16k 单次io的块文件大小为16k bsrange=512-2048 同上,提定数据块的大小范围 size=5g 本次的测试文件大小为5g,以每次4k的io进行测试。 numjobs=30 本次的测试线程为30. runtime=1000 测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止。 ioengine=psync io引擎使用pync方式

磁盘性能指标--IOPS与吞吐量

我的梦境 提交于 2019-11-28 22:02:25
磁盘性能指标--IOPS ---------------------------------------------------------- IOPS (Input/Output Per Second)即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求数量为单位,I/O请求通常为读或写数据操作请求。 随机读写频繁的应用,如小文件存储(图片)、OLTP数据库、邮件服务器,关注随机读写性能,IOPS是关键衡量指标。 顺序读写频繁的应用,传输大量连续数据,如电视台的视频编辑,视频点播VOD(Video On Demand),关注连续读写性能。数据吞吐量是关键衡量指标。 IOPS和数据吞吐量适用于不同的场合: 读取10000个1KB文件,用时10秒 Throught(吞吐量)=1MB/s ,IOPS=1000 追求IOPS 读取1个10MB文件,用时0.2秒 Throught(吞吐量)=50MB/s, IOPS=5 追求吞吐量 磁盘服务时间 -------------------------------------- 传统磁盘本质上一种机械装置,如FC, SAS, SATA磁盘,转速通常为5400/7200/10K/15K rpm不等。影响磁盘的关键因素是磁盘服务时间,即磁盘完成一个I

linux使用FIO测试磁盘的iops

試著忘記壹切 提交于 2019-11-27 09:59:51
FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等。 fio 官网地址: http://freshmeat.net/projects/fio/ 一,FIO安装 wget http://brick.kernel.dk/snaps/fio-2.2.5.tar.gz yum install libaio-devel tar -zxvf fio-2.2.5.tar.gz cd fio-2.2.5 make make install 二,FIO用法: 随机读:(可直接用,向磁盘写一个2G文件,10线程,随机读1分钟,给出结果) fio -filename=/tmp/test_randread -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest 说明: filename=/dev/sdb1 测试文件名称,通常选择需要测试的盘的data目录。 direct=1

深入理解 linux磁盘顺序写、随机写

谁说我不能喝 提交于 2019-11-27 09:29:53
一、前言 ● 随机写会导致磁头不停地换道,造成效率的极大降低;顺序写磁头几乎不用换道,或者换道的时间很短 ● 本文来讨论一下两者具体的差别以及相应的内核调用 二、环境准备 组件 版本 OS Ubuntu 16.04.4 LTS fio 2.2.10 三、fio介绍 通过fio测试,能够反映在读写中的状态,我们需要重点关注fio的输出报告中的几个关键指标: slat :是指从 I/O 提交到实际执行 I/O 的时长(Submission latency) clat :是指从 I/O 提交到 I/O 完成的时长(Completion latency) lat :指的是从 fio 创建 I/O 到 I/O 完成的总时长 bw :吞吐量 iops :每秒 I/O 的次数 四、同步写测试 (1)同步随机写 主要采用fio作为测试工具,为了能够看到系统调用,使用strace工具,命令看起来是这样: 先来测试一个随机写 strace -f -tt -o /tmp/randwrite.log -D fio -name=randwrite -rw=randwrite \ -direct=1 -bs=4k -size=1G -numjobs=1 -group_reporting -filename=/tmp/test.db 提取关键信息 root@wilson-ubuntu:~# strace -f

Java-I/O流知识点

╄→尐↘猪︶ㄣ 提交于 2019-11-27 05:50:45
** 第一节. IO流 ** 一、 流的作用和原理 *** 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。 二、流的分类 <一> 、字节流 1、字节输入流。 文件输入流FileInputStream: //创建字节文件输入流 FileInputStream fis = new FileInputStream("gp4.txt"); //读取 byte[] buf = new byte[1024]; int len = -1; while ((len = fis.read(buf)) != -1) { for (int i = 0; i <len ; i++) { System.out.print((char) buf[i]); } } //关闭流 fis.close(); }} 2、字节输出流 文件输入流FileInputStream // 创建字节输出流 FileOutputStream fio=new FileOutputStream("gp4.txt"); // 写入 fio.write(1000); fio.write(100); // 把字符串转成数组 String s="this is a dood idea!"; byte[] buf=s