如何找到物理磁盘可以支持的最大I/O?
我的应用程序正在执行 I/O,我可以找到实际的使用 Linux 命令的吞吐量 (Blk_wrtn/s)。但我怎样才能找到我可以达到的最大限制呢?我想知道是否可以进一步加载。
答案1
显然,使用 Unix 工具是最简单的方法。您可以通过创建测试用例来测量最大操作,并使用适当的工具来测量其性能。可以在这里找到一个很好的资源:LINUX - 测试存储的读写速度
sudo hdparm -tT /dev/sdX
例如作为阅读测试。
并测量写:
dd if=/dev/random of=<some file on the hd> bs=8k count=10000; sync;
# Hit CONTROL-C after 5 seconds to get results
# 65994752 bytes (66 MB) copied, 21.8919 s, 3.0 MB/s
flag
笔记
正如评论中指出的,该dd
命令还测量文件系统甚至/dev/random
.它确实测量环境的写入性能,但这在很大程度上取决于硬盘性能。
答案2
Blk_wrtn/s 实际上取决于工作负载的类型。线性写入要快得多,随机写入可能会很慢。所以你无法说出一个数字,但是有很多工具可以模拟和基准测试不同的工作负载,例如 iozone、dbench。
现在为了监控当前的工作负载,我通常使用iostat。例如:
iostat -x 10
最后一列是 %util,如果它低于 100,您仍然可以在那里放置一些 IO 负载。当然,您总是希望有一些储备,因此根据工作负载的稳定性和所需的响应能力,60-90% 是一个现实的目标。
答案3
您可以使用基准测试工具,例如邦妮++
从手册页
Bonnie++ 是一个测试硬盘驱动器和文件系统性能或缺乏性能的程序。有许多不同类型的文件系统操作,不同的应用程序使用不同程度的文件系统操作。 Bonnie++ 测试了其中的一些,并且对于每个测试给出了每秒完成的工作量以及所花费的 CPU 时间百分比的结果。对于性能结果而言,数字越高越好,对于 CPU 使用率而言,数字越低越好(注意,就 CPU 使用率而言,性能结果得分为 2000、CPU 结果为 90% 的配置比性能结果为 1000、CPU 使用率为 60 的配置要好%)。