我想确保我在 Windows 和 Linux 服务器上正确测量 IOPS。我们正忙于找出最适合我们环境的 SAN,而测量我们服务器上的 IOPS 是我不能出错的事情。采购方面有点偏执。
在 Windows 服务器上,我使用 \PhysicalDisk(_Total)\Disk Reads/sec 和 \PhysicalDisk(_Total)\Disk Writes/sec 性能计数器。在 Linux 服务器上,我运行 vmstat 并查看 bi(读取)和 bo(写入)计数器。我很确定我做对了,并且这两组计数器都等同于 IOPS。
如果这些计数器是正确的,那么我有一个问题。我们要使用的 SAN 可以处理大约 1600 IOPS。我们的两个邮件过滤服务器(运行 MailScanner、MailWatch 和 Sophos)总共达到大约 1500 IOPS。我们的两个 MySQL 服务器总共运行大约 1600 IOPS。我们远远超过了 1600 IOPS 的理论极限。
因此问题是,我的测量正确吗?
大山
答案1
接着上面的评论线索,iostat -dxk 1
将为您提供 r/s 和 w/s(读取和写入请求数/秒)以及读取和写入的千字节数。
答案2
有可能。Raid 5 更新速度很慢。我从未见过 Raid 5 用于高性能设置,除非您将 Raid 0 算在多磁盘 raid 5 之上(Raid 50、60)。最重要的是,认真地说 - 5 磁盘 raid 5 不是“能够处理 100,000 IOPS”的“SAN”。它是最终用户的事情。
注意区别:备份很可能不会随机写出和/或 Raid 上的读取操作比写入速度更快。
答案3
这里有两个重点:
谨慎使用现有数字——根据工作负载,当前使用情况可能反映底层存储的能力。例如,您可能会看到 mysql 现在使用 1600 iops,因为这些磁盘可以做到这一点。如果您将其放在可以执行 3000 iops 的 SAN 上,那么 mysql 可能会开始执行 3000 iops,并且您的查询将返回得更快。与您的供应商讨论以根据您的工作负载正确确定大小。
考虑 iops 和吞吐量 (MBps) 非常重要,因为它们不一定成比例,并且都可能成为 SAN 中各个点的瓶颈——磁盘、控制器、hba、网络等。其中哪一个适用于您取决于您的工作负载和 i/o 大小的顺序性或随机性。再次与您的供应商沟通,根据您的需求确定合适的大小。