iozone是一个文件系统的benchmark工具,可以测试不同的操作系统中文件系统的读写性能。 可以测试 Read, write, re-read,re-write, read backwards, read strided, fread, fwrite, random read, pread, mmap, aio_read, aio_write 等等不同的模式下的硬盘的性能。 测试的时候请注意,设置的测试文件的大小一定要大过你的内存(最佳为内存的两倍大小),不然linux会给你的读写的内容进行缓存。会使数值非常不真实。
官网下载iozone地址:
https://www.iozone.org/src/current/
建议解压到/opt下
进入下面文件地址后,执行安装:
/opt/iozone3_491/src/current
make linux
iozone参数说明:
-a 全面测试,比如块大小它会自动加,块从4k到16M,测试文件大小从64k到512M
-i N 用来选择测试项, 比如Read/Write/Random 比较常用的是0 1 2,可以指定成-i 0 -i 1 -i2.这些别的详细内容请查man
0=write/rewrite
1=read/re-read
2=random-read/write
3=Read-backwards
4=Re-write-record
5=stride-read
6=fwrite/re-fwrite
7=fread/Re-fread
8=random mix
9=pwrite/Re-pwrite
10=pread/Re-pread
11=pwritev/Re-pwritev
12=preadv/Re-preadv
-r block size 指定一次写入/读出的块大小
-s file size 指定测试文件的大小
-f filename 指定测试文件的名字,完成后会自动删除(这个文件必须指定你要测试的那个硬盘中)
-F file1 file2... 指定多线程下测试的文件名;
批量测试项:
-g -n 指定测试文件大小范围,最大测试文件为4G,可以这样写 -g 4G
-y -q 指定测试块的大小范围;
输出:
下面是几个日志记录的参数.好像要输出成图象进行分析,需要指定-a的测试才能输出
-R 产生Excel到标准输出
-b 指定输出到指定文件上. 比如 -Rb ttt.xls
Write: 测试向一个新文件写入的性能。当一个新文件被写入时,不仅仅是那些文件中的数据需要被存储,还包括那些用于定位数据存储在存储介质的具体位置的额外信息。这些额外信息被称作“元数据”。它包括目录信息,所分配的空间和一些与该文件有关但又并非该文件所含数据的其他数据。拜这些额外信息所赐,Write的性能通常会比Re-write的性能低。
Re-write: 测试向一个已存在的文件写入的性能。当一个已存在的文件被写入时,所需工作量较少,因为此时元数据已经存在。Re-write的性能通常比Write的性能高。
Read: 测试读一个已存在的文件的性能。
Re-Read: 测试读一个最 近读过的文件的性能。Re-Read性能会高些,因为操作系统通常会缓存最 近读过的文件数据。这个缓存可以被用于读以提高性能。
Random Read: 测试读一个文件中的随机偏移量的性能。许多因素都可能影响这种情况下的系统性能,例如:操作系统缓存的大小,磁盘数量,寻道延迟和其他。
Random Write: 测试写一个文件中的随机偏移量的性能。同样,有许多因素可能影响这种情况下的系统性能,例如:操作系统缓存的大小,磁盘数量,寻道延迟和其他。
测试例句:
./iozone -a -s 4g -i 0 -i 1 -i 2 -Rb output.xls
-a 全面测试,按照测试块从小到大都测试一遍;
-s 指定测试文件大小,建议设置为cache的2倍;
-i 选择测试项,建议测试读、写及随机读写;
-Rb 指定输出到xls文件内,便于后期画图及参看结果。
执行结果:
[root@nntest current]# ./iozone -a -s 4g -i 0 -i 1 -Rb output.xls
Iozone: Performance Test of File I/O
Version $Revision: 3.491 $
Compiled for 64 bit mode.
Build: linux
Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
Al Slater, Scott Rhine, Mike Wisner, Ken Goss
Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
Vangel Bojaxhi, Ben England, Vikentsi Lapa,
Alexey Skidanov, Sudhir Kumar.
Run began: Tue Mar 8 13:49:09 2022
Auto Mode
File size set to 4194304 kB
Excel chart generation enabled
Command line used: ./iozone -a -s 4g -i 0 -i 1 -Rb output.xls
Output is in kBytes/sec
Time Resolution = 0.000001 seconds.
Processor cache size set to 1024 kBytes.
Processor cache line size set to 32 bytes.
File stride size set to 17 * record size.
random random bkwd record stride
kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
4194304 4 1333956 1745994 5382439 5423306
4194304 8 1597447 2205800 6382333 6474268
4194304 16 1763401 2499121 6651014 6747439
4194304 32 1873963 2771854 7022316 7129328
4194304 64 2025248 2955585 7218527 7340256
4194304 128 1984941 2995741 6477708 6585405
4194304 256 2042969 3096798 6369540 6491967
4194304 512 2074248 3137495 6458031 6574245
4194304 1024 2052498 2535356 4984613 5027442
4194304 2048 2028430 3080004 6385298 6491172
4194304 4096 2057448 3085016 6377123 6484410
4194304 8192 2052417 3060711 6348485 6477987
4194304 16384 1882907 2697010 4732242 4798811
iozone test complete.
Excel output is below:
"Writer report"
"4" "8" "16" "32" "64" "128" "256" "512" "1024" "2048" "4096" "8192" "16384"
"4194304" 1333956 1597447 1763401 1873963 2025248 1984941 2042969 2074248 2052498 2028430 2057448 2052417 1882907
"Re-writer report"
"4" "8" "16" "32" "64" "128" "256" "512" "1024" "2048" "4096" "8192" "16384"
"4194304" 1745994 2205800 2499121 2771854 2955585 2995741 3096798 3137495 2535356 3080004 3085016 3060711 2697010
"Reader report"
"4" "8" "16" "32" "64" "128" "256" "512" "1024" "2048" "4096" "8192" "16384"
"4194304" 5382439 6382333 6651014 7022316 7218527 6477708 6369540 6458031 4984613 6385298 6377123 6348485 4732242
"Re-Reader report"
"4" "8" "16" "32" "64" "128" "256" "512" "1024" "2048" "4096" "8192" "16384"
"4194304" 5423306 6474268 6747439 7129328 7340256 6585405 6491967 6574245 5027442 6491172 6484410 6477987 4798811