您的当前位置:首页正文

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 结果输出

读写的吞吐量。

因篇幅问题不能全部显示,请点此查看更多更全内容