我在由 32 个节点/机器组成的集群上运行测量。我不需要所有节点,例如只需要 4 个。问题是大多数时候,节点正忙于其他人在其上运行繁重的工作。因此,为了找到空闲节点以获得良好的结果,我top
从第一台机器开始在每台机器上运行该命令,直到找到 4 个空闲节点。
有没有办法同时测试多台机器上的 cpu 负载/利用率,如果可能的话,列出那些不太繁忙的机器?
答案1
虽然 @wnoise 的答案是一个更好的解决方案,但您可能无法实现它(即您管理集群吗?)...所以,为什么不看看
- “集群 SSH”解决方案之一@Chaleb这里提到(pssh、pdsh、clustersh、clusterit)或
- 织物(@Crankyadmin 在这个帖子中也提到了)
收集使用情况统计数据。
添加一点脚本A评估您在每个主机上收集的统计数据,您应该可以开始了。
(A)根据您的喜好,提到的一个或另一个工具可能会更方便,即 Fabric 是一个 Python 框架,所以如果您想在 Python 中进行评估,它可能很适合(而任何 Perl/Bash /无论什么脚本语言都一样好)。
答案2
rstatclient 包中的命令rup
将轮询子网上的所有计算机以获取信息,包括它们的平均负载。机器必须运行rstatd
才能提供该信息,我希望tcpwrapper
它只响应您的管理桌面。您还可以指定要从中收集数据的单个计算机。通过在远程计算机上运行 rstatd,您还可以xmeter
直观地监视其历史负载平均值。
答案3
有许多“批处理系统”旨在处理此类问题。一种专门用于处理来自其他空闲系统的“循环窃取”的方法是秃鹰是威斯康星大学长期运行的研究项目。
答案4
您应该使用该命令mdiag -n
来检查节点是否空闲或繁忙。