fio是一个非常灵活的I/O测试工具,FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,支持多线程或进程模拟等I/O操作来进行压力测试。
包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等。
官网:http://freecode.com/projects/fio
IO性能测试指标
顺序读写(吞吐量,常用单位为MB/s):文件在硬盘上存储位置是连续的,吞吐量高,适用于大文件拷贝。
4K随机读写(IOPS,常用单位为次):在硬盘上随机位置读写数据,每次4KB,适用于OS、软件运行以及数据库等IO密集度较高的应用。
常用命令行参数及说明
开始测试
安装fio
1 | yum install fio |
挂载数据盘
挂载数据盘/dev/vdc1到/data/test(视服务器数据盘标识而定,本文以比格云为例)
(注:这里均以数据盘裸设备(/dev/vdc1)进行测试,测试值更为准确和稳定,但 裸设备测试会造成数据盘文件系统损坏!!!切记切记!!!⚠️,请谨慎操作并注意备份数据,同时注释/etc/fstab 文件中/dev/vdc1挂载点,防止由于数据盘文件系统损坏无法挂载导致OS无法重启动,也可以使用文件进行测试,即指定-filename=/data/test,如以文件进行测试,会受文件系统的影响,测试结果会有偏差和抖动,请知悉。)来自@比格云官方文档(官方文档有部分错误已在此文修改)
1 | # 切记,使用裸设备测试会造成数据盘文件系统损坏!!! 下面的命令中/dev/vdc1等,请保证这些设备中不存在数据,数据无价! |
生成报表
在当前目录下的:
write.throughput
read.throughput
randread.iops
randwrite.iops