做用:用于测试磁盘裸盘或文件系统的IOPS、吞吐量、时延性能指标;centos
centos安装:缓存
yum install libaio -y yum install libaio-devel -y yum install fio -y
经常使用选项:bash
-name:本测试任务的名字;异步
-filename:指定测试文件名或者磁盘名;async
-rw:测试模式ide
randread:随机读性能
randwrite:随机写测试
read:顺序读阿里云
write:顺序写spa
-direct:是否使用缓存或缓冲区,1表示不使用;
-ioengine:libaio,异步I/O;一般使用libaio一次提交一批I/O请求,等待一批的完成,减小交互的次数更有效率;
-iodepth:使用异步 I/O(asynchronous I/O,简称 AIO)时,同时发出的 I/O 请求上限,最大为128;
-bs:表示单次I/O的块文件大小。默认值也是4KiB;
-size:表示测试文件大小;为写时须要指定,读是不须要指定size;
-numjobs:指定测试进程数;
-group_reporting:当numjobs不为1时,合并测试结果;不然每一个进程会分开显示;
-runtime:设置测试时间;
用法示例:
# 随机读 fio -name=randread -filename=/dev/vdb -direct=1 -rw=randread -iodepth=128 -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=60 -group_reporting # 随机写 fio -name=randwrite -filename=/dev/vdb -direct=1 -rw=randread -iodepth=128 -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=60 -group_reporting # 顺序读 fio -name=read -filename=/dev/vdb -direct=1 -rw=read -iodepth=128 -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=60 -group_reporting # 顺序写 fio -name=write -filename=/dev/vdb -direct=1 -rw=write -iodepth=128 -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=60 -group_reporting
阿里ECS测试结果对比:高效云盘100G、SSD100G
SSD云盘裸盘:
随机读:IOPS -> 4800,吞吐量:18.9MiB/s
随机写:IOPS -> 4800,吞吐量:18.9MiB/s
顺序读:IOPS -> 15300,吞吐量:59.8MiB/s
顺序写:IOPS -> 6300,吞吐量:24.9MiB/s
注:注意MB/s和Mbps的关系,Mbps为传输速率,MB为存储单位,1MB=8Mbps;
高效云盘裸盘:
随机读:IOPS -> 2624,吞吐量:10.3MiB/s
随机写:IOPS -> 2624,吞吐量:10.3MiB/s
顺序读:IOPS -> 4500,吞吐量:17.6MiB/s
顺序写:IOPS -> 3800,吞吐量:14.7MiB/s
结论:
1.SSD的综合性能要高效云盘高;
2.无论SSD仍是高效云盘随机读、随机写的性能基本一致;
3.顺序读写的性能要远超随机读写;
4.文件系统和裸盘的IOPS、吞吐量基本一致(在不使用缓存的状况下);
5.自行测试得出的IOPS与阿里云官网给出的结果基本一致;