Linux文件系统测试工具集
Ceph相关的测试工具整理
1 对象读写性能
1.1 rados bench工具
1.1.1 测试参数
rados bench seconds –p pool –b objsize –t threads mode 参数:
seconds:测试多长时间
pool:数据写入的pool,不指定写入到data的pool中
objsize:每次写入的对象大小,默认为4M
threads:并发的线程数,默认为16
mode:目前只支持write和seq read
与pool相关的参数:pool的PG numbers,pool的副本数。
1.1.2 结果输出
Total time run: 60.367271
Total writes made: 733
Write size: 4194304
Bandwidth (MB/sec): 48.569
Stddev Bandwidth: 22.6446
Max bandwidth (MB/sec): 84
Min bandwidth (MB/sec): 0
Average Latency: 0.164709
Stddev Latency: 0.320465
Max latency: 4.11992
Min latency: 0.0647
1.1.3 测试步骤
1、创建pool,对pool设置相应的属性,包括pg数量和副本数。
2、在Ceph集群的客户端执行rados bench 命令,如rados bench 60 write
3、输出整理测试结果
4、改变rados bench的参数,如对象大小,再次执行测试
说明:
1)指定配置文件时使用rados –c 配置文件路径。
2)如果还需要测试读,数据保留,在write后面添加 –no-cleanup
3)读操作完成后,使用下述命令手工清理测试数据:
rados -p pool cleanup benchmark_data_
rados -p pool rm benchmark_last_metadata
2 IOPS测试
2.1 FIO测试工具
2.1.1 测试参数
FIO 磁盘IOPS测试
fio -filename=/dev/rbd1
-bs=128k
-direct=1 -iodepth 5 -thread -rw=write
-ioengine=libaio -size=512M -numjobs=64 -runtime=100
-group_reporting -name=mytest1参数:
filename=/dev/sdb1 测试文件名称,通常选择需要测试的盘的data目录,如/dev/rbd1
direct=1 测试过程绕过机器自带的buffer。使测试结果更真实。
rw=write测试写的IO
ioengine= libaio引擎使用libaio方式
bs=16k 单次io的块文件大小为16k
size=5g 本次的测试文件大小为5g,以每次4k的io进行测试。
numjobs=30 本次的测试线程为30.
runtime=100测试时间为100秒,如果不写则一直将5g文件分4k每次写完为止。
group_reporting 关于显示结果的,汇总每个进程的信息。
2.1.2 结果输出
输出:bw、iops,表示当前测试模式下的带宽和IOPS.
2.1.3 测试步骤
2.2 dd测试工具
使用dd来测试硬盘读写速度,dd只能提供一个大概的测试结果,而且是连续IO 而不是随机IO ,理论上文件规模越大,测试结果越准确。
2.2.1 测试参数
if =输入文件(或设备名称)如/dev/zero
of =输出文件(或设备名称)如/dev/null
oflag与iflag指定读写的模式,如ifalg=direct,nonblack。direct 模式就是把写入请求直接封装成io 指令发到磁盘,而不使用文件系统的buffer cache
bs表示一次io读的规模,理论上bs越大,所测得性能越高
count是读多少个\"bs\"
例子:
读性能测试
# time dd iflag=direct,nonblock if=/dev/sda2 of=/dev/null bs=8k count=8388608
因为/dev/sda2是一个物理分区,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在/dev/sdb1上,也相当于测试磁盘的读能力。
写测试
# time dd oflag=direct,nonblock if=/dev/zero f=/opt/iotest bs=8k count=8388608
因为/dev/zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。
读写测试
# time dd iflag=direct,nonblock oflag=direct,nonblock if=/dev/sda2 f=/opt/iotest bs=8k count=8388608
2.2.2 结果输出
读写的带宽
3 文件系统读写性能
3.1 IOzone测试工具
3.1.1 测试参数
-r指定一次写入/读出的块大小
-t以吞吐量模式运行Iozone。这一选项允许用户指定测试时使用多少个线程或者进程。
-s指定测试文件的大小,这里测试文件大小为70G
-i 用来选择测试项,0表示测试read 1表示测试write
-Rb产生excel输出到指定文件上.
3.1.2 结果输出
读写的吞吐量。
因篇幅问题不能全部显示,请点此查看更多更全内容