admin 发表于 2022-7-26 11:41:21

fio test

目前主流的第三方IO测试工具有fio、iometer和Orion,这三种工具各有千秋。
fio在Linux系统下使用比较方便,iometer在window系统下使用比较方便,Orion是oracle的IO测试软件,可在没有安装oracle数据库的情况下模拟oracle数据库场景的读写。
100%随机,100%读, 4K
fio -filename=/dev/emcpowerb -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=4k -size=1000G -numjobs=50 -runtime=180 -group_reporting -name=rand_100read_4k
100%随机,100%写, 4K
fio -filename=/dev/emcpowerb -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=4k -size=1000G -numjobs=50 -runtime=180 -group_reporting -name=rand_100write_4k
100%顺序,100%读 ,4K
fio -filename=/dev/emcpowerb -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=4k -size=1000G -numjobs=50 -runtime=180 -group_reporting -name=sqe_100read_4k
100%顺序,100%写 ,4K
fio -filename=/dev/emcpowerb -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=4k -size=1000G -numjobs=50 -runtime=180 -group_reporting -name=sqe_100write_4k
100%随机,70%读,30%写 4K
fio -filename=/dev/emcpowerb -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=4k -size=1000G -numjobs=50 -runtime=180 -group_reporting -name=randrw_70read_4k
参数说明:
filename=/dev/sdc      支持文件系统或者裸设备,压测多个磁盘 --filename=/dev/sda:/dev/sdb
direct=1               测试过程绕过机器自带的buffer,使测试结果更真实
rw=randwread             测试随机读的I/O
rw=randwrite             测试随机写的I/O
rw=randrw                测试随机混合写和读的I/O
rw=read                  测试顺序读的I/O
rw=write               测试顺序写的I/O
rw=rw                  测试顺序混合写和读的I/O
bs=4k                  单次io的块文件大小为4k
bsrange=512-2048         同上,指定定数据块的大小范围
size=50g               本次的测试文件大小为50g,以每次4k的io进行测试
numjobs=30               本次的测试线程为30
runtime=1000             测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止
ioengine=psync         io引擎使用pync方式,如果要使用libaio引擎,需要yum install libaio-devel包
rwmixwrite=30            在混合读写的模式下,写占30%
group_reporting          关于显示结果的,汇总每个进程的信息
此外其他参数
lockmem=1g               只使用1g内存进行测试
zero_buffers             用0初始化系统buffer
nrfiles=8                每个进程生成文件的数量

磁盘读写常用测试点:
1. Read=100% Ramdon=100% rw=randread (100%随机读)
2. Read=100% Sequence=100% rw=read (100%顺序读)
3. Write=100% Sequence=100% rw=write (100%顺序写)
4. Write=100% Ramdon=100% rw=randwrite (100%随机写)
5. Read=70% Sequence=100% rw=rw, rwmixread=70, rwmixwrite=30(70%顺序读,30%顺序写)
6. Read=70% Ramdon=100% rw=randrw, rwmixread=70, rwmixwrite=30 (70%随机读,30%随机写)

https://docs.oracle.com/en-us/iaas/Content/Block/References/samplefiocommandslinux.htm

1.安装fio
# yum install fio

Installed:
fio.x86_64 0:3.7-2.el7                                                                                                                                                

Dependency Installed:
boost-iostreams.x86_64 0:1.53.0-28.el7      boost-random.x86_64 0:1.53.0-28.el7      boost-system.x86_64 0:1.53.0-28.el7      boost-thread.x86_64 0:1.53.0-28.el7   
libibverbs.x86_64 0:22.4-6.el7_9            libpmem.x86_64 0:1.5.1-2.1.el7         libpmemblk.x86_64 0:1.5.1-2.1.el7      librados2.x86_64 1:10.2.5-4.el7         
librbd1.x86_64 1:10.2.5-4.el7               librdmacm.x86_64 0:22.4-6.el7_9          pciutils.x86_64 0:3.5.1-3.el7            rdma-core.x86_64 0:22.4-6.el7_9         

Complete!2.IOPS Performance Tests
2.1 随机读
# sudo fio --filename=/dev/sda --direct=1 --rw=randread --bs=4k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=4 --time_based --group_reporting --name=iops-test-job --eta-newline=1 --readonly
iops-test-job: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=256
...
fio-3.7
Starting 4 processes
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
iops-test-job: (groupid=0, jobs=4): err= 0: pid=10509: Tue Jul 26 11:18:23 2022
   read: IOPS=39.0k, BW=153MiB/s (160MB/s)(17.9GiB/120003msec)
    slat (nsec): min=1330, max=73194k, avg=93753.02, stdev=823434.15
    clat (usec): min=8, max=211596, avg=26111.13, stdev=17562.51
   lat (usec): min=418, max=211700, avg=26205.41, stdev=17613.60
    clat percentiles (msec):
   |1.00th=[    7],5.00th=[    7], 10.00th=[    8], 20.00th=[   13],
   | 30.00th=[   15], 40.00th=[   18], 50.00th=[   22], 60.00th=[   26],
   | 70.00th=[   32], 80.00th=[   39], 90.00th=[   49], 95.00th=[   61],
   | 99.00th=[   87], 99.50th=[   97], 99.90th=, 99.95th=,
   | 99.99th=
   bw (KiB/s): min=10083, max=116792, per=24.85%, avg=38803.98, stdev=16341.03, samples=956
   iops      : min= 2520, max=29198, avg=9700.67, stdev=4085.27, samples=956
lat (usec)   : 10=0.01%, 500=0.01%, 750=0.01%, 1000=0.01%
lat (msec)   : 2=0.01%, 4=0.01%, 10=15.23%, 20=30.60%, 50=44.87%
lat (msec)   : 100=8.90%, 250=0.40%
cpu          : usr=1.23%, sys=44.62%, ctx=40436, majf=0, minf=1169
IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
   submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
   complete: 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.1%
   issued rwts: total=4685150,0,0,0 short=0,0,0,0 dropped=0,0,0,0
   latency   : target=0, window=0, percentile=100.00%, depth=256

Run status group 0 (all jobs):
   READ: bw=153MiB/s (160MB/s), 153MiB/s-153MiB/s (160MB/s-160MB/s), io=17.9GiB (19.2GB), run=120003-120003msec

Disk stats (read/write):
sda: ios=4682667/157, merge=3/10, ticks=2734007/121, in_queue=2732223, util=100.00%2.2 文件随机读写
# sudo fio --filename=/app/fio --size=10GB --direct=1 --rw=randrw --bs=4k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=4 --time_based --group_reporting --name=iops-test-job --eta-newline=1
iops-test-job: (g=0): rw=randrw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=256
...
fio-3.7
Starting 4 processes
iops-test-job: Laying out IO file (1 file / 10240MiB)
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):    
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):    
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
Jobs: 4 (f=4):
iops-test-job: (groupid=0, jobs=4): err= 0: pid=15955: Tue Jul 26 11:30:17 2022
   read: IOPS=11.6k, BW=45.2MiB/s (47.4MB/s)(5428MiB/120005msec)
    slat (nsec): min=1805, max=64962k, avg=135084.14, stdev=633735.09
    clat (usec): min=266, max=201859, avg=43959.32, stdev=16345.61
   lat (usec): min=345, max=201925, avg=44094.87, stdev=16391.37
    clat percentiles (msec):
   |1.00th=[   22],5.00th=[   26], 10.00th=[   29], 20.00th=[   32],
   | 30.00th=[   35], 40.00th=[   37], 50.00th=[   40], 60.00th=[   43],
   | 70.00th=[   48], 80.00th=[   55], 90.00th=[   67], 95.00th=[   79],
   | 99.00th=[   96], 99.50th=, 99.90th=, 99.95th=,
   | 99.99th=
   bw (KiB/s): min= 4134, max=18048, per=24.99%, avg=11576.08, stdev=3416.91, samples=959
   iops      : min= 1033, max= 4512, avg=2893.94, stdev=854.25, samples=959
write: IOPS=11.6k, BW=45.2MiB/s (47.4MB/s)(5429MiB/120005msec)
    slat (usec): min=2, max=51335, avg=197.77, stdev=727.42
    clat (usec): min=6, max=200588, avg=44095.02, stdev=16439.35
   lat (usec): min=231, max=201897, avg=44293.40, stdev=16500.81
    clat percentiles (msec):
   |1.00th=[   22],5.00th=[   26], 10.00th=[   29], 20.00th=[   32],
   | 30.00th=[   35], 40.00th=[   37], 50.00th=[   40], 60.00th=[   44],
   | 70.00th=[   48], 80.00th=[   55], 90.00th=[   67], 95.00th=[   79],
   | 99.00th=[   96], 99.50th=, 99.90th=, 99.95th=,
   | 99.99th=
   bw (KiB/s): min= 4468, max=17776, per=24.99%, avg=11578.11, stdev=3430.21, samples=959
   iops      : min= 1117, max= 4444, avg=2894.44, stdev=857.57, samples=959
lat (usec)   : 10=0.01%, 250=0.01%, 500=0.01%, 750=0.01%, 1000=0.01%
lat (msec)   : 2=0.01%, 4=0.01%, 10=0.09%, 20=0.53%, 50=72.54%
lat (msec)   : 100=26.19%, 250=0.64%
cpu          : usr=1.69%, sys=28.76%, ctx=2496870, majf=0, minf=133
IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
   submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
   complete: 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.1%
   issued rwts: total=1389668,1389930,0,0 short=0,0,0,0 dropped=0,0,0,0
   latency   : target=0, window=0, percentile=100.00%, depth=256

Run status group 0 (all jobs):
   READ: bw=45.2MiB/s (47.4MB/s), 45.2MiB/s-45.2MiB/s (47.4MB/s-47.4MB/s), io=5428MiB (5692MB), run=120005-120005msec
WRITE: bw=45.2MiB/s (47.4MB/s), 45.2MiB/s-45.2MiB/s (47.4MB/s-47.4MB/s), io=5429MiB (5693MB), run=120005-120005msec

Disk stats (read/write):
    dm-2: ios=1388779/1389063, merge=0/0, ticks=2476155/1879075, in_queue=4358558, util=98.85%, aggrios=1389737/1390083, aggrmerge=5/15, aggrticks=2436837/1823174, aggrin_queue=4259155, aggrutil=98.73%
sda: ios=1389737/1390083, merge=5/15, ticks=2436837/1823174, in_queue=4259155, util=98.73%



页: [1]
查看完整版本: fio test