安装fio
fio-3.7建议直接使用yum的方式安装,CentOS 7.6下直接使用以下命令即可安装:
也可以采用以下的方式下载源码包编译安装。
- 下载fio压缩包到所有client的“/home”目录下。
下载链接:https://git.kernel.dk/cgit/fio/snapshot/fio-3.7.tar.gz
- 所有客户端解压fio。
|
cd /home && tar -zxvf fio-3.7.tar.gz
|
- 进入fio解压后的目录。
- 安装rbd引擎依赖。
|
yum -y install librbd-devel
|
安装librbd-devel需要配置ceph源,具体配置方法请参考《Ceph块存储 部署指南(CentOS 7.6&openEuler 20.03)》中“配置部署环境”相关内容。
- 编译安装fio。
|
./configure && make && make install
|
fio测试模型
fio通过执行工作负载配置文件运行,选取其中一台客户端执行即可,该客户端会通过负载配置文件中的其他客户端IP地址等信息自动登录到其他客户端执行测试。测试前需要先创建若干块设备镜像(image),fio会直接对这些image进行读写测试。
创建fio工作负载
本文以1个Ceph客户端为例,每个客户端映射了3个RBD块设备,每个块设备读写最大容量为20G为例。下文以client1创建1MB顺序写工作负载为例,需要为每个client同时创建3个image配置文件。
- 创建第一个image配置文件。
|
vi 1024Kclient1_image1write.fio
|
[global]
ioengine=rbd
clientname=admin
pool=vdbench
size=100G
direct=1
numjobs=1
runtime=300
ramp_time=10
log_avg_msec=500
thread
time_based
rbdname=image1
[1024K-write]
bs=1024K
rw=write
iodepth=64
write_bw_log=1024K-write
stonewall
buffer_compress_percentage=40
- 创建第二个image配置文件。
|
vi 1024Kclient1_image2write.fio
|
[global]
ioengine=rbd
clientname=admin
pool=vdbench
size=100G
direct=1
numjobs=1
runtime=300
ramp_time=10
log_avg_msec=500
thread
time_based
rbdname=image2
[1024K-write]
bs=1024K
rw=write
iodepth=64
write_bw_log=1024K-write
stonewall
buffer_compress_percentage=40
- 创建第三个image配置文件。
|
vi 1024Kclient1_image3write.fio
|
[global]
ioengine=rbd
clientname=admin
pool=vdbench
size=100G
direct=1
numjobs=1
runtime=300
ramp_time=10
log_avg_msec=500
thread
time_based
rbdname=image3
[1024K-write]
bs=1024K
rw=write
iodepth=64
write_bw_log=1024K-write
stonewall
buffer_compress_percentage=40
buffer_compress_percentage=40是测试压缩时用到的参数。加上此参数,fio写入的数据可被压缩为一定比例。如果不需要测试压缩,可以将此字段删除。
执行测试用例
- 启动fio服务。
- 在client1上执行测试用例(以image1write为例)。
|
fio --client=client1 ./1024Kclient1_image1write.fio --client=client1 ./1024Kclient1_image2write.fio --client=client1 ./1024Kclient1_image3write.fio --output=./1mwrite.log
|
查看测试结果
测试完成后会在当前目录下1mwrite.log,包含各项测试数据。