针对磁盘性能测试,通常涉及如下指标:
Bandwidth(带宽)
吞吐量,指单位时间内可以成功传输的数据数量。在存储中,吞吐量通常是指系统每秒可以读取或写入的实际字节数,单位为 MB/s;
块的大小和数据传输速率会影响吞吐量。磁盘块容量越大,数据传输速率越高;
应用场景
如果您需要部署大量顺序读写的应用,例如Hadoop离线计算型业务等典型场景,需要关注吞吐量。
IOPS(每秒读写数)
IOPS,指每秒能处理的 I/O 个数,表示块存储处理读写(输出/输入)的能力,单位为次。
针对系统每秒处理的读写请求数,在很大程度上取决于存储设备的功能和应用程序。当应用程序发出请求时,操作系统会将请求传输到设备,并等待处理直到完成。
常用的IOPS指标
指标 描述 数据访问方式
总IOPS 每秒执行的I/O操作总次数 对硬盘存储位置的不连续访问和连续访问
随机读IOPS 每秒执行的随机读I/O操作的平均次数 对硬盘存储位置的不连续访问
随机写IOPS 每秒执行的随机写I/O操作的平均次数
顺序读IOPS 每秒执行的顺序读I/O操作的平均次数 对硬盘存储位置的连续访问
顺序写IOPS 每秒执行的顺序写I/O操作的平均次数
应用场景
如果您需要部署事务密集型应用,例如数据库类应用等典型场景,需要关注IOPS性能。
在部分厂商中,只有挂载到I/O优化的实例时,SSD云盘才能获得期望的IOPS性能。挂载到非I/O优化的实例时,SSD云盘无法获得期望的IOPS性能。
Latency(延时)
访问时延,是指块存储处理一个 I/O 需要的时间,单位为 s、ms、μs。过高的时延会导致应用性能下降或报错。
Q:磁盘延迟 vs 响应时长 是两个概念?
A:磁盘延迟,其涉及设备功能;响应时长,其涉及整个服务器功能;
对于使用旋转盘片的硬盘驱动器,磁盘延迟包括两个部分:搜索时间、旋转等待时间;
1)搜索时间:驱动器磁头放置在盘片的正确轨道上所花费的时间,通常为 0.2~0.8ms;
2)旋转等待时间:该轨道上,正确的起始扇区在驱动器磁头下通过所花费的时间,该值取决于驱动速度。对于 5400 RPM 硬盘,旋转等待时间为 5.6ms;对于 7200 RPM 硬盘,旋转等待时间为 4.2ms;对于 10000 RPM 硬盘,旋转等待时间为 3ms;对于 15000RPM 硬盘,旋转等待时间为 2ms;
驱动器在定位磁头后向磁盘传输数据,数据传输速率很重要。对于固态驱动器(SSD),等效指标是存储的随机访问延迟,通常低于毫秒;
应用场景
1)如果您的应用对高时延比较敏感,例如数据库应用,建议您使用高性能类产品。
2)如果您的应用偏重数据吞吐能力,对时延相对不太敏感,例如Hadoop离线计算等吞吐密集型应用,建议使用能够满足性能要求的产品;
Capacity(容量)
容量是指存储空间大小,单位为TiB、GiB、MiB或者KiB。块存储容量按照二进制单位计算,表示1024进位的数据大小,例如,1 GiB=1024 MiB。
容量无法衡量块存储性能,但对于存储设备而言,不同的容量能达到的性能不同。容量越大,存储设备的数据处理能力越强。相同类型块存储产品的单位容量的I/O性能均一致,但云盘性能随容量增长而线性增长,直至达到该类型块存储的单盘性能上限。
应用场景
云厂商云盘在不同容量范围内还能选择不同的性能等级。
补充说明
此仅讨论磁盘本身的性能,需要与操作系统相关的 IO 性能指标进行区分;
参考文献