iozone测试文件系统IO性能

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 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Linux系统中,有多个工具可以用于测试IO性能,以下是其中一些常用的工具: 1. **dd命令**:`dd`是一个常用的Linux命令,可以用于复制文件和块设备,也可以用于测试IO性能。可以使用`dd`命令来生成一个特定大小的文件,同时记录复制过程的时间,计算出数据传输的速度。例如,`dd if=/dev/zero of=testfile bs=1M count=1000 conv=fdatasync`将创建一个名为testfile的1GB文件,并记录数据传输速度。在使用`dd`时,请注意选择正确的块大小以获得最佳性能。 2. **fio工具**:`fio`是一个用于测试磁盘性能的工具,可以模拟不同的IO负载和场景。它可以测试各种IO引擎和文件系统,并生成详细的报告。`fio`支持多线程、异步IO和随机IO等,可以根据需要进行配置。例如,`fio --name=randwrite --ioengine=libaio --rw=randwrite --bs=4k --numjobs=8 --size=2G --runtime=300 --time_based`将测试8个进程在2GB的文件上进行随机写入,每个进程使用4KB块大小,运行时间为300秒。 3. **bonnie++工具**:`bonnie++`是一个基于文件系统的基准测试工具,可测试文件的创建、删除、读取和写入等操作的性能。`bonnie++`支持多线程和随机IO等,并可以生成详细的报告。例如,`bonnie++ -d /path/to/test/dir -s 2048 -r 1024`将在指定目录中测试2GB文件的创建、读取和写入,使用1KB块大小进行随机读写,同时记录操作的时间并计算数据传输速度。 4. **iozone工具**:`iozone`是另一个常用的基准测试工具,可测试文件和文件系统IO性能。它可以测试顺序读取、顺序写入、随机读取、随机写入等操作,并支持多线程和异步IO等。例如,`iozone -a -i 0 -i 1 -i 2 -s 1G -r 4k -t 32`将测试1GB文件的顺序读写和随机读写,每次读写使用4KB块大小,并使用32个线程进行测试。 以上这些工具都可以用于测试IO性能,但在使用它们时需要了解自己的测试需求和测试环境,选择合适的工具和参数进行测试
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值