Iozone测试
Iozone的参数,常用
-R 产生execl格式的输出日志
-b 将产生二进制的execl的日志文件名。
-s 测试的文件大小
-r 文件块大小
-a 在希望的文件系统上测试,不过只有-a的话会进行全面测试,要花费很长时间,最好用-i指定测试范围。
-g 指定最大测试文件大小
-n 指定最小测试文件大小
-t 启动线程的个数
-f 指定临时测试文件
-F 指定临时测试文件组
-C 显示每个节点的吞吐量。
-c 测试包括文件的关闭时间
-e 测试包括flush时间
-w 测试结束后保留测试时产生的测试文件
-+k 调用文件的总大小
-+n 禁止重复读或者写
-+m 用来测集群时指定的文件
iozone -Cc -e -t 12 -F $file -s 120G -+k -w -i 0 -+n -r 1M -Rb write.xls >> write
测试集群的文件标准:
IP iozone地址 测试路径
线程-t需要与集群的文件内容的数量一致
Vdbench测试
sd=sd1,lun=/dev/rdsk/c0t0d0sx
wd=wd1,sd=sd1,xfersize=4096,rdpct=100
rd=run1,wd=wd1,iorate=100,elapsed=10,interval=1
这是vdbench解压后的一个测试例子,测试裸盘,
sd=default,size=30G,threads=12
sd=sd1,lun=/dev/sdb1,openflags=o_direct
wd=wd1,sd=(sd1,sd6),xfersize=4k,rdpct=75
wd=wd2,sd=(sd7,sd12),xfersize=8k,rdpct=100
rd=default,elapsed=10,interval=1
rd=run1,wd=(wd1,wd2),iorate=100
rd=run2,wd=(wd1,wd2),iorate=200,
在原来的基础上添加了大小,线程。
SD:存储定义
• sd= 标识存储的名称。
• host= 存储所在的主机的 ID。
• lun= 原始磁盘、磁带或文件系统的名称。vdbench 也可为您创建一个磁盘。
• threads= 对 SD 的最大并发 I/O 请求数量。默认为 8。
• hitarea= 调整读取命中百分比的大小。默认为 1m。
• openflags= 用于打开一个 lun 或一个文件的 flag_list,为了贴近真实场景,一般在这里选择o_direct,绕过缓存机制,直接写盘。(但是在使用时,我因为测的一个分区。没有添加,然后报错,才将openflags添上的。)
wd=wd1,sd=(sd1,sd6),xfersize=4k,rdpct=75
WD:工作负载定义
• wd= 标识工作负载的名称。
• sd= 要使用的存储定义的 ID。
• host= 要运行此工作负载的主机的 ID。默认设置为 localhost。
• rdpct= 读取请求占请求总数的百分比。
• rhpct= 读取命中百分比。默认设置为 0。
• whpct= 写入命中百分比。默认设置为 0。
• xfersize= 要传输的数据大小。默认设置为 4k。
• seekpct= 随机寻道的百分比。可为随机值。
• openflags= 用于打开一个 lun 或一个文件的 flag_list。
• iorate= 此工作负载的固定 I/O 速率。
rd=run1,wd=(wd1,wd2),iorate=100
RD:运行定义
• rd= 标识运行的名称。
• wd= 用于此运行的工作负载的 ID。
• iorate= (#,#,...) 一个或多个 I/O 速率。(这里可以控制运行的iops,如果不控制就设置成max)
• elapsed= time:以秒为单位的运行持续时间。默认设置为30。(设置长时间的运行,可能会使得数据更加稳定)
• warmup= time:加热期,最终会被忽略。
• distribution= I/O 请求的分布:指数、统一或确定性。
• pause= 在下一次运行之前休眠的时间,以秒为单位。
• openflags= 用于打开一个 lun 或一个文件的 flag_list。
Fio测试:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=200G
-numjobs=10 -runtime=1000 -group_reporting -name=mytest
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 每个进程生成文件的数量。
顺序读:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
随机写:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
顺序写:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
混合随机读写:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop
借鉴博客:https://blog.youkuaiyun.com/u012114090/article/details/81626430
本文介绍了系统硬件性能测试中常用的三个工具:Iozone、Vdbench和Fio。详细讲解了它们的参数设置及用法,包括Iozone的文件大小、线程数量配置,Vdbench的并发I/O请求和工作负载定义,以及Fio的随机读写、顺序读写和混合模式测试。这些工具可以帮助评估硬盘的读写速度和I/O性能。
3201

被折叠的 条评论
为什么被折叠?



