存储
什么是IOPS?
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更重要。营销往往引用顺序数字。
IOPS在哪些地方出现
- NVMe 比 SATA SSD 快多少? 随机 IOPS 大约快五倍——约 50 万对 9 万——延迟大约低五倍,低于 0.1 毫秒对约 0.5 毫秒。顺序吞吐量高六到十倍。对于数据库型应用,随机 IOPS 的差距是你实际能感受到的。…
- VPS 的 NVMe 与 SSD 与 HDD NVMe 随机 IOPS 约 500,000,延迟低于 100 微秒;SATA SSD 约 90,000 IOPS;7,200 RPM HDD 约 150。对于任何使用数据库的场景,这一差距就是快速应用与缓慢应用的区别。HDD 仅在一件事上仍合理:按 TB 计价的批量顺序存储。…
- 如何对 VPS 进行基准测试? 测量三个实际会变化的方面:用 sysbench 测单线程 CPU,用 fio 测 4K 随机读写磁盘,用 iperf3 对已知端点测网络。在不同时间段多次运行——单次基准测试测量的是那一分钟的状况,而不是服务器的整体表现。…