一、基本测试(dd):

dd只能提供一个大概的测试结果,而且是连续IO 而不是随机IO

(1)读测试

# time dd if=/dev/sda2 of=/dev/null bs=8k count=8388608

8388608+0 records in

8388608+0 records out

68719476736 bytes (69 GB) copied, 516.547 seconds, 133 MB/s

real 8m36.926s

user 0m0.117s

sys 0m55.216s

(2)写测试

# time dd if=/dev/zero f=/opt/iotest bs=8k count=8388608

8388608+0 records in

8388608+0 records out

68719476736 bytes (69 GB) copied, 888.398 seconds, 77.4 MB/s

real 14m48.743s

user 0m3.678s

sys 2m47.158s

二、带宽测试(iozone):

复杂测试案例:

iozone -a -g 16G -i 0 -i 1 -i 2 -f /opt/iozone -Rb iotestresult.xls 
含义:进行全面测试.最大测试文件为 16G,从 64K 开始。测试 write/rewrite, read/re-read,random-read/write。测试地方在/opt/iozone。输出文件到 iotestresult.xls 中,iozone将测试结果放在Excel中。

参数介绍

  1. -a                    全自动模式测试。测试记录块大小从4k到16M,测试文件从64k到512M
  2. -f filename      指定用来测试临时文件,在测试完成后将被自动删除
  3. -i                     指定运行于哪种模式测试。可以使用-i # -i # -i #进行多个测试(0=write/rewrite 1=read/re-read  2=random read/random write  3=backwards read    4=re-write-record   5=stride-read   6=fwirte/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)
  4. -R                   使用Excel显示结果

三、IOPS测试(Fio):

FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持19种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等。

随机读:(randread )
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

顺序读:(read )
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest

随机写:(randwrite) 
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest

顺序写:(write) 
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest

混合随机读写:(randrw)
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest -ioscheduler=noop

说明:
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方式
rwmixwrite=30            在混合读写的模式下,写占30%
group_reporting          关于显示结果的,汇总每个进程的信息。
lockmem=1g               只使用1g内存进行测试。
zero_buffers               用0初始化系统buffer。
nrfiles=8                     每个进程生成文件的数量。

linux gpu计算能力测试程序 linux 性能测试_文件大小

四、OPS测试(postmark):

1、Postmark原理

Postmark是由著名的NAS提供商NetApp开发,用来测试其产品的后端存储性能。

Postmark主要用于测试文件系统在邮件系统或电子商务系统中性能,这类应用的特点是:需要频繁、大量地存取小文件。

Postmark的测试原理是创建一个测试文件池。文件的数量和最大、最小长度可以设定,数据总量是一定的。创建完成后,Postmark对文件池进行一系列的事务(transaction)操作,根据从实际应用中统计的结果,设定每一个事务包括一次创建或删除操作和一次读或添加操作,在有些情况下,文件系统的缓存策略可能对性能造成影响,Postmark可以通过对创建/删除以及读/添加操作的比例进行修改来抵消这种影响。事务操作进行完毕后,Post对文件池进行删除操作,并结束测试,输出结果。

Postmark是用随机数来产生所操作文件的序号,从而使测试更加贴近于现实应用。

输出结果中比较重要的输出数据包括测试总时间、每秒钟平均完成的事务数、在事务处理中平均每秒创建和删除的文件数,以及读和写的平均传输速度。

2、Postmark使用方法(两种):

(1)使用配置文件

./postmark XXX.cfg

    配置文件方式,是将所有配置命令及run放入文件中,由postmark自动读取

配置文件示例:

set size 10000 50000

set transactions 5000

set number 5000

run

quit

(2)命令行模式

./postmark

    进入命令行模式,然后打入相应命令,进行配置,run命令按当前配置运行postmark

    将上面配置文件中的命令在命令行中依次执行,结果是相同的,没有任何区别

例如:

[root@msns719 pm-test]# ./postmark-1.51 
PostMark v1.51 : 8/14/01
pm>set size 10000 20000
pm>set number 1000
pm>set transactions 50000
pm>run

3、命令解析

set size min_size max_size     设置文件大小的上下限

set number XXX        设置并发文件数

set seed XXX        设置随机数种子

set transactions XXX         设置事务数

set location 设置工作目录,应该是已有目录,默认为当前目录

+ name weight

- name

name weight 将原有目录全部删除,然后添加参数中的目录

set subdirectory n n 为每个工作目录下的子目录个数

set read n

set write n 设置读写块大小

set buffering true/false

           true buffered(defoult)

           false nobuffered

set bias read n   n为read/append中read所占比例 n/10

set bias create n    create/delete中create所占比例 n/10

set report verbose(default)/terse       设置报告模式,terse模式的输出没有文字说明,便于通过批处理运行多个测试之后,使用excel对结果进行分析

run [filename] 运行postmark,结果输出到stdout或者文件filename

show [filename] 输出当前设置

help

quit

4、实例测试:

配置文件pm.config如下:

set location /mnt/testaudit/pm-test
set subdirectories 1
set size 10000 50000
set transactions 5000
set number 5000
run
quit

[root@msns719 pm-test]# ./postmark-1.51 pm.config 
PostMark v1.51 : 8/14/01
Reading configuration from file 'pm.config'
Creating files...Done
Performing transactions..........Done
Deleting files...Done
Time:
        20 seconds total
        12 seconds of transactions (416 per second)

Files:
        7455 created (372 per second)
                Creation alone: 5000 files (1666 per second)
                Mixed with transactions: 2455 files (204 per second)
        2553 read (212 per second)
        2447 appended (203 per second)
        7455 deleted (372 per second)
                Deletion alone: 4910 files (982 per second)
                Mixed with transactions: 2545 files (212 per second)

Data:
        77.04 megabytes read (3.85 megabytes per second)
        234.28 megabytes written (11.71 megabytes per second)