系统硬件相关测试

本文介绍了系统硬件性能测试中常用的三个工具:Iozone、Vdbench和Fio。详细讲解了它们的参数设置及用法,包括Iozone的文件大小、线程数量配置,Vdbench的并发I/O请求和工作负载定义,以及Fio的随机读写、顺序读写和混合模式测试。这些工具可以帮助评估硬盘的读写速度和I/O性能。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值