如何自动检测局域网上的非繁忙机器?

时间:2011-09-23 11:31:56

标签: shell network-programming mpi parallel-processing

我正在编写一个在局域网上运行的MPI程序。任何学生都可以随时使用这些机器。

虽然我总是在晚上测试我的程序,但性能却非常不一致。我的猜测是,当我运行程序时,有些节点很忙。

所以我的问题是:我可以编写一个脚本来检测非繁忙的机器并更新机器文件吗?写一个简单的方法是什么?

非常感谢。

2 个答案:

答案 0 :(得分:1)

SSH到每台机器,然后读取/ proc / loadavg文件或以其他方式确定“业务”。

答案 1 :(得分:0)

我认为最简单的方法是将Nagios的check_load [1]脚本安装到您​​要检查的每个节点,并通过带有一些合理参数的ssh调用它:

# /usr/lib64/nagios/plugins/check_load -w 1,2,3 -c 3,4,5
OK - load average: 0.20, 0.43, 0.50|load1=0.200;1.000;3.000;0; load5=0.430;2.000;4.000;0; load15=0.500;3.000;5.000;0;
# /usr/lib64/nagios/plugins/check_load -w 0.1,2,3 -c 3,4,5
WARNING - load average: 0.18, 0.43, 0.50|load1=0.180;0.100;3.000;0; load5=0.430;2.000;4.000;0; load15=0.500;3.000;5.000;0;
# /usr/lib64/nagios/plugins/check_load -w 0.01,2,3 -c
0.1,4,5
CRITICAL - load average: 0.41, 0.46, 0.51|load1=0.410;0.010;0.100;0; load5=0.460;2.000;4.000;0; load15=0.510;3.000;5.000;0;

CRITICAL意味着“真的很忙”,警告可能“有点忙”而OK就意味着“机器闲置”。

你必须注意你必须提供的门槛为1/5/15分钟以发出警告和严重;例如,一台16核的负载为3的机器是完全可以的,而单核机器上的3负载意味着它真的很忙。

祝你好运! 亚历克斯。

[1] http://nagiosplugins.org/man/check_load