fio 分布式/多节点/多客户端 使用方法简介

简介

fio支持在多个节点上并发的测试存储性能,并且可以通过某一个节点进行统一的任务管理以及结果收集, 这种测试方式可以更好的模拟多客户端访问的场景, 产生的 IO 总负载也能突破使用单客户时的内核 IO 限制.

在进行性能和压力测试的时候,往往单台主机无法提供足够的压力以测试后端存储的最佳性能或稳定性,所以有时需要多个系统同时运行fio来提供足够的压力,来得到一个最佳的性能参数或足够的压力。

所以这种模式一般用于共享的NAS后端存储如:NFS/SAMBA/AFP 等,或者可以共享的块设备如ceph的RBD等,所有测试客户端系统都挂载同一个NAS,然后每个系统上都运行一个fio。

当然,对于一套存储提供出来的多个块设备如iSCSI,虽然iSCSI不能共享,但是也可以通过这种测试方法,测试客户端上,每一个主机挂载一个独立iSCSI,每一个测试客户端上的fio,对每一个iSCSI进行读写访问,这样也可以实现对一套后端存储(如磁盘阵列)的性能的测试

基本用法:

如果需要多个系统并发的对某一个后端存储进行测试,需要在所有的安装有fio的测试客户端上运行fio任务监听服务。

命令:

fio --server 

如图:

当运行此命令后,fio将默认监听8765端口(当然也可以监听其它的端口,如何使用就请查看fio的文档吧)。启动后,fio将通过此端口来接收任务。

然后需要一个主机作为主管理节点(可以与启动了 fio --server的主机是同一个主机也可以是另外一台主机)。

命令:

fio --client=host.list fio.job

其中host.list中是按照一定格式组成的一个IP/主机名(主机名需要DNS支持或者/etc/hosts文件支持)的列表

格式如下:

每个测试客户端的IP占一行

fio.job是fio的job文件,如果不知道fio的job文件是啥,那么可以看:“目前还没写完呢”

此命令就上让host.list中的这些主机,运行fio.job这个任务,实际上就是想这些主机上发送fio.job文件(默认是向8765这个端口发)

上面的命令是让所有的测试客户端执行相同的命令,如果你需要不同的主机执行不同的命令,那么你这样用

命令

fio --client=host1.list fio1.job --client=host2.list fio2.job 

这样 host1.list中的主机将会运行 fio1.job ,host2.list中的主机将会运行 fio2.job ,如果你还需要其他的主机执行其他的job的话,那就往后继续添加就行了,每一个host.list中的客户端,都只会执行它后面紧跟着的那个 job。

最终所有客户端的测试结果都会在主管理节点。在主管理节点上可以看到每一个节点的测试结果。在fio生成测试结果文件的最后,有一个ALL标签的章节,内容是所有客户端测试结果的总和,不过这个ALL有一些缺陷,如果你发现ALL中的结果有问题,那是还需要自己处理一下

注意事项:

  1. 所有的fio,包括主管理节点和fio的监听节点都需要安装同一个版本的fio
  2. 对于版本比较老的fio,不支持 host.list 文件,你必须将所有参与测试的客户端的IP 都用 --client=IP1 --client=IP2 --client=IP3 ......这种形式写出来,非常的麻烦啊。
  3. 在本文所述的模式下,每一个fio客户端都会产生独立的文件,并且生成的文件名字中有其创建客户端的IP或主机名。
  4. 注意要关闭防火墙。

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值