我们有一个 Linux 集群,其中的工作节点共享一个公共远程文件系统。我们希望优化 I/O,特别是当工作节点从远程文件系统读取时。
起点是测量 I/O 性能。该集群由许多用户使用,他们的作业正在进行密集读取。
我想在一天中多次监控性能以查看它们如何变化(夜间/白天/工作日/硬件升级前后......)。
问题是如何衡量性能。如果可能的话,我想将网络性能与磁盘性能分离。我想测试多种不同类型的读取,大文件、小文件、顺序、随机、访问……避免缓存……
您有进行过此类测试的经验吗?您是否知道一些免费的工具、库、易于与其他实用程序交互(可视化等)?
现在我能做的最聪明的事情就是使用dd
答案1
我用过碘过去测试磁盘时,它有很多选项可以精确配置实时工作负载。更具体地说,你需要确切地知道你将拥有什么样的负载。我建议看看iozone 手册页。
网络问题大致相同。不同类型的工作负载需要不同的测试。根据协议,您可能需要使用截然不同的方法。如果您只想测试原始网络性能,您可以使用平用数据包淹没你的网络。
例如,如果你想测试 HTTP 服务器,你可以使用围城或者閣下要做到这一点。
另一方面,如果你希望在生产过程中监控服务器,则需要使用某种计量工具。最流行的 Linux 计量工具可能是穆宁,仙人掌和收集,但市面上有大量的工具。它们中的大多数都带有可以用 shell 脚本或您喜欢的编程语言轻松编写的插件,但它们还包含许多用于监控 IO 工作负载等的插件。