如何测量和监控 I/O 性能

如何测量和监控 I/O 性能

我们有一个 Linux 集群,其中的工作节点共享一个公共远程文件系统。我们希望优化 I/O,特别是当工作节点从远程文件系统读取时。

起点是测量 I/O 性能。该集群由许多用户使用,他们的作业正在进行密集读取。

我想在一天中多次监控性能以查看它们如何变化(夜间/白天/工作日/硬件升级前后......)。

问题是如何衡量性能。如果可能的话,我想将网络性能与磁盘性能分离。我想测试多种不同类型的读取,大文件、小文件、顺序、随机、访问……避免缓存……

您有进行过此类测试的经验吗?您是否知道一些免费的工具、库、易于与其他实用程序交互(可视化等)?

现在我能做的最聪明的事情就是使用dd

答案1

我用过过去测试磁盘时,它有很多选项可以精确配置实时工作负载。更具体地说,你需要确切地知道你将拥有什么样的负载。我建议看看iozone 手册页

网络问题大致相同。不同类型的工作负载需要不同的测试。根据协议,您可能需要使用截然不同的方法。如果您只想测试原始网络性能,您可以使用用数据包淹没你的网络。

例如,如果你想测试 HTTP 服务器,你可以使用围城或者閣下要做到这一点。

另一方面,如果你希望在生产过程中监控服务器,则需要使用某种计量工具。最流行的 Linux 计量工具可能是穆宁仙人掌收集,但市面上有大量的工具。它们中的大多数都带有可以用 shell 脚本或您喜欢的编程语言轻松编写的插件,但它们还包含许多用于监控 IO 工作负载等的插件。

相关内容