如何查找由多个节点组成的集群上哪些机器处于空闲状态

如何查找由多个节点组成的集群上哪些机器处于空闲状态

我在由 32 个节点/机器组成的集群上运行测量。我不需要所有节点,例如只需要 4 个。问题是大多数时候,节点正忙于其他人在其上运行繁重的工作。因此,为了找到空闲节点以获得良好的结果,我top从第一台机器开始在每台机器上运行该命令,直到找到 4 个空闲节点。

有没有办法同时测试多台机器上的 cpu 负载/利用率,如果可能的话,列出那些不太繁忙的机器?

答案1

虽然 @wnoise 的答案是一个更好的解决方案,但您可能无法实现它(即您管理集群吗?)...所以,为什么不看看

  1. “集群 SSH”解决方案之一@Chaleb这里提到(pssh、pdsh、clustersh、clusterit)或
  2. 织物@Crankyadmin 在这个帖子中也提到了

收集使用情况统计数据。

添加一点脚本A评估您在每个主机上收集的统计数据,您应该可以开始了。

A)根据您的喜好,提到的一个或另一个工具可能会更方便,即 Fabric 是一个 Python 框架,所以如果您想在 Python 中进行评估,它可能很适合(而任何 Perl/Bash /无论什么脚本语言都一样好)。

答案2

rstatclient 包中的命令rup将轮询子网上的所有计算机以获取信息,包括它们的平均负载。机器必须运行rstatd才能提供该信息,我希望tcpwrapper它只响应您的管理桌面。您还可以指定要从中收集数据的单个计算机。通过在远程计算机上运行 rstatd,您还可以xmeter直观地监视其历史负载平均值。

答案3

有许多“批处理系统”旨在处理此类问题。一种专门用于处理来自其他空闲系统的“循环窃取”的方法是秃鹰是威斯康星大学长期运行的研究项目。

答案4

您应该使用该命令mdiag -n 来检查节点是否空闲或繁忙。

相关内容