存储性能定义的三个核心指标:IOPS、Throughput、await
- IOPS的含义是:存储每秒钟可以处理的IO的个数;
- Throughput吞吐量(带宽)的含义是:存储每秒能处理的数据的总量,单位是MB/S;
- Await响应时间:单位时间内I/O延时。
有些人就会说了,你说定义是否正确?不会胡说八道吧!上图说话:
第一张图:
- 业界存储技术性能天花板企业宣传说IOPS能达到 2100000(存储在所有磁盘写满的情况下每一秒的IO处理能力),我相信对于一个世界500强企业能说这样话,肯定做个相关业务压测才能输出结果,数据来源应该可靠。
- 从业界存储技术性能天花板企业指标监控图可以看出,决定存储性能的三个指标就是IOPS、Throughput、await
第二张图:
- 开源的FIO性能指标也是三个指标,按单个磁盘、8KB块、读测试指标信息,看方框的数据:
IOPS:存储每秒钟可以处理的IO的个数iops=35639
Throughput:bw=285116KB/S=278MB/S
Await:lat(usec代表微妙) ,平均响应时间avg=223.73微妙=0.2毫秒
应用场景:
- 小文件随机读写的应用要求存储具有足够的I/O能力,所以要求较高的IOPS,在乎的是处理个数;
- 大文件持续传输型的应用需要的是存储具有充分的带宽(Throughput吞吐量)性能,在乎处理时长;
- 读写需要快速响应,那就关注磁盘await响应时间。
FIO测试案例:
使用FIO进行读写操作为高危操作,请务必提前查询和确认好用于FIO测试的卷挂载详情,并在后续测试过程中,严格使用查询到的测试卷设备名,避免出现对系统盘或者其他业务数据卷进行误操作。
- 小块8K随机读:fio -filename=/dev/sdb -direct=1 -rw=randread -bs=8K -numjobs=8 -runtime=180 -group_reporting -name=8KB_write_sdb -output=/tmp/8K_read_sdb.log -randrepeat=0 -norandommap&
- 小块8K随机写:fio -filename=/dev/sdb -direct=1 -rw=write -bs=8K -numjobs=8 -runtime=180 -group_reporting -name=8KB _write_sdb -output=/tmp/8K _write_sdb.log -randrepeat=0 -norandommap&
- 大块1M顺序读:fio -filename=/dev/sdb -direct=1 -rw=randread -bs=1m -numjobs=8 -runtime=180 -group_reporting -name=1M_write_sdb -output=/tmp/1M _read_sdb.log -randrepeat=0 -norandommap&
- 大块1M顺序写:fio -filename=/dev/sdb -direct=1 -rw=write -bs=1m -numjobs=8 -runtime=180 -group_reporting -name=1M_write_sdb -output=/tmp/1M_write_sdb.log -randrepeat=0 -norandommap&