fio压测
简介
FIO工具测试块存储性能,包括IOPS、吞吐量、时延等。
操作
#查询块存储设备是否已经4KiB对齐。
sudo fdisk -lu
返回的结果中,Start值能被8整除即是4KiB对齐。否则,请完成4KiB对齐后再继续性能测试。
#安装libaio和FIO。
yum install libaio -y
yum install libaio-devel -y
yum install fio -y
#压测
注意!!!测试裸盘可以获得真实的块存储盘性能,但会破坏文件系统结构,建议压测文件,不要压测裸盘。
随机写IOPS:
fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/your_dir -name=Rand_Write_Testing
随机读IOPS:
fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/your_dir -name=Rand_Read_Testing
顺序写吞吐量:
fio -direct=1 -iodepth=64 -rw=write -ioengine=libaio -bs=1024k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/your_dir -name=Write_PPS_Testing
顺序读吞吐量:
fio -direct=1 -iodepth=64 -rw=read -ioengine=libaio -bs=1024k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/your_dir -name=Read_PPS_Testing
随机写时延:
fio -direct=1 -iodepth=1 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 -group_reporting -filename=/dev/your_dir -name=Rand_Write_Latency_Testing
随机读时延:
fio -direct=1 -iodepth=1 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -group_reporting -filename=/dev/your_dir -name=Rand_Read_Latency_Testing
#参数
参数 | 说明 |
-direct=1 | 表示测试时忽略I/O缓存,数据直写。 |
-iodepth=128 | 表示使用异步I/O(AIO)时,同时发出I/O数的上限为128。 |
-rw=randwrite |
表示测试时的读写策略为随机写(random writes)。其它测试可以设置为:
|
-ioengine=libaio |
表示测试方式为libaio(Linux AIO,异步I/O)。应用程序使用I/O通常有两种方式:
|
-bs=4k |
表示单次I/O的块文件大小为4 KiB。默认值也是4 KiB。
|
-size=1G | 表示测试文件大小为1 GiB。 |
-numjobs=1 | 表示测试线程数为1。 |
-runtime=1000 | 表示测试时间为1000秒。如果未配置,则持续将前述-size指定大小的文件,以每次-bs值为分块大小写完。 |
-group_reporting | 表示测试结果里汇总每个进程的统计信息,而非以不同job汇总展示信息。 |
-filename=/dev/your_device | 指定的云盘设备名,例如/dev/your_device。 |
-name=Rand_Write_Testing | 表示测试任务名称为Rand_Write_Testing,可以随意设定。 |