存储

什么是IOPS?

又称: input/output operations per second
定义

IOPS measures how many individual read or write operations a storage device completes per second. Random 4K IOPS at a queue depth of one is the number that predicts database behaviour; sequential throughput is the number that appears in marketing.

为什么IOPS很重要

深度为1时的随机4K IOPS是预测数据库行为的数值;顺序吞吐量是出现在营销中的数值。

IOPS的实际应用

当你实际运行服务器时,IOPS 是查询变慢时你关注的东西。你会查看数据库的随机 4K 读取延迟,判断磁盘是否是瓶颈。如果是,就迁移到 NVMe 或增加更多硬盘。忽视它,你的应用在负载下会爬行,每次慢查询都会让你失去用户。你可以更改存储配置,但并非即时:降级一个层级需要重建,额外 NVMe 作为第二块块设备挂载。出错意味着你的服务器在测试中感觉很快,但生产环境中却会崩溃。

人们对IOPS常见的误解

误解在于认为IOPS是一个固定数字。其实不然;它取决于队列深度和块大小。一块硬盘可以在高队列深度下宣称高IOPS,但对数据库真正重要的是队列深度为1时的随机4K性能。纠正:如果你根据营销数字来比较存储,就会选错设备。要看队列深度为1时的数据。

IOPS —— 常见问题

测试IOPS时应该用多少队列深度?

对于数据库工作负载,使用队列深度1。这个数字能预测真实行为,因为大多数OLTP查询发出的是单个、独立的读取。较高的队列深度可能抬高IOPS数字,但不能反映你的数据库实际访问磁盘的方式。

IOPS和吞吐量有什么不同?

IOPS计算每秒的单个操作数;吞吐量衡量每秒的字节数。像备份这样的顺序传输可能达到高吞吐量但低IOPS,而数据库执行大量小随机读取,所以IOPS更重要。营销往往引用顺序数字。

更多来自存储

NVMe
NVMe是一种存储协议,通过PCIe直接连接固态硬盘,可实现约500,000次随机IOPS,延迟低于100微秒。
RAID 10
RAID 10跨成对的驱动器镜像数据,并在镜像之间条带化,提供冗余和高性能,但成本是原始容量的一半。
快照
快照是虚拟机磁盘的时间点副本,即时创建并存储在同一基础设施上。