fio 是测试 IOPS 的非常好的工具,用来对磁盘进行压力测试和验证。磁盘 IO 是检查磁盘性能的重要指标,可以按照负载情况分成照顺序读写,随机读写两大类。FIO 是一个可以产生很多线程或进程并执行用户指定的特定类型 I/O 操作的工具,FIO 的典型用途是编写和模拟的 I/O 负载匹配的作业文件。也就是说 FIO 是一个多线程 io 生成工具,可以生成多种 IO 模式,用来测试磁盘设备的性能(也包含文件系统:如针对网络文件系统 NFS 的 IO 测试)。
语法格式:fio [参数]
常用参数:
filename | 测试文件名称,通常选择需要测试的盘的 data 目录 |
rw=randwrite | 测试随机写的 I/O |
rw=randrw | 测试随机写和读的 I/O |
bs | 指定单次 io 的块文件大小 |
bsrange | 提定数据块的大小范围 |
size | 指定每个线程读写的数据量 |
参考实例
测试随机读写:
[root@xtuos.com ~]# fio --filename=/bdata/test.big -iodepth=64 -ioengine=libaio -direct=1 -rw=randwrite -bs=4k -size=2G -numjobs=64 -runtime=20-group_reporting -name=test-rand-write
测试顺序读取:
[root@xtuos.com ~]# fio --filename=/bdata/test.big -iodepth=64 -ioengine=libaio --direct=1 --rw=read --bs=1m --size=2g --numjobs=4 --runtime=10 --group_reporting --name=test-read
测试顺序写入:
fio --filename=/bdata/test.big -iodepth=64 -ioengine=libaio -direct=1 -rw=write -bs=1m -size=2g -numjobs=4 -runtime=20 -group_reporting -name=test-write