Как автоматически определять незанятые машины по локальной сети? - PullRequest
2 голосов
/ 23 сентября 2011

Я пишу программу MPI для запуска в локальной сети.Эти машины могут быть доступны любому студенту в любое время.

Хотя я всегда тестирую свою программу ночью, производительность была очень противоречивой.Я предполагаю, что некоторые узлы были заняты, когда я запустил программу.

Итак, мой вопрос: могу ли я написать скрипт для обнаружения незанятых машин и обновления файла машины?Какой простой способ написать это?

Большое спасибо.

Ответы [ 2 ]

1 голос
/ 23 сентября 2011

SSH на каждую машину, затем прочитайте файл / proc / loadavg или определите "бизнес" другим способом.

0 голосов
/ 23 сентября 2011

Я думаю, что самый простой способ - установить скрипт check_load [1] из Nagios на каждый узел, который вы хотите проверить, и вызвать его через 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 будет означать «действительно»занято ", ПРЕДУПРЕЖДЕНИЕ может быть" в некотором роде занято ", и ОК означало бы" машина бездействует ".

Вы должны обратить внимание на пороги, которые вы должны дать как 1/5/15 минуты для предупреждениякритическим;например, машина с 16 ядрами, имеющая нагрузку 3, в порядке, в то время как нагрузка 3 на одноядерную машину означает, что она действительно очень занята.

Удачи!Алекс.

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

...