---
title: fio测试步骤
description: "fio-3.7建议直接使用Yum的方式安装，CentOS 7.6下直接使用以下命令即可安装。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengsdss/testGuide/tstg/ceph-kcc_cszd_009.html
sourcePath: /source/zh/kunpengsdss/testGuide/tstg/ceph-kcc_cszd_009.html
indexId: 014a613f2d94a9348d3bdd56a266e12e58a87c957e1b48c33ed5eb29c0c024fb60
---
# fio测试步骤

#### 安装fio

fio-3.7建议直接使用Yum的方式安装，CentOS 7.6下直接使用以下命令即可安装。

```
yum -y install fio
```

也可以采用以下的方式下载源码包编译安装。


1. 下载fio压缩包到所有client的“/home”目录下。
  获取链接(https://git.kernel.org/pub/scm/linux/kernel/git/axboe/fio.git/snapshot/fio-3.7.tar.gz)

2. 所有客户端解压fio。
  1 cd /home && tar -zxvf fio-3.7.tar.gz

3. 进入fio解压后的目录。
  1 cd fio-3.7

4. 安装rbd引擎依赖。
  1 yum -y install librbd-devel

  安装librbd-devel需要配置ceph源，具体配置方法请参考《Ceph块存储 部署指南（CentOS 7.6&openEuler 20.03）》中“配置部署环境(https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengcephblock_04_0003.html)”相关内容。

5. 编译安装fio。
  1 ./configure && make && make install


#### fio测试模型

fio通过执行工作负载配置文件运行，选取其中一台客户端执行即可，该客户端会通过负载配置文件中的其他客户端IP地址等信息自动登录到其他客户端执行测试。测试前需要先创建若干块设备镜像（image），fio会直接对这些image进行读写测试。


#### 创建fio工作负载

本文以1个Ceph客户端为例，每个客户端映射了3个RBD块设备，每个块设备读写最大容量为20G。下文以client1创建1MB顺序写工作负载为例，需要为每个client同时创建3个image配置文件。

1. 创建第一个image配置文件。
  1 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
```


2. 创建第二个image配置文件。
  1 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
```


3. 创建第三个image配置文件。
  1 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写入的数据可被压缩为一定比例。如果不需要测试压缩，可以将此字段删除。


#### 执行测试用例

1. 启动fio服务。
  1 fio -S &

2. 在client1上执行测试用例（以image1write为例）。
  1 fio --client=client1 ./1024Kclient1_image1write.fio --client=client1 ./1024Kclient1_image2write.fio --client=client1 ./1024Kclient1_image3write.fio --output=./1mwrite.log


#### 查看测试结果

测试完成后会在当前目录下生成1mwrite.log，包含IOPS、时延、带宽等测试数据。
