2011-09-23 45 views
2

我正在寫一個MPI程序在局域網上運行。這些機器可以在任何時間由任何學生ssh'd。如何通過局域網自動檢測非繁忙的機器?

雖然我總是在晚上測試我的程序,但是性能一直很不穩定。我的猜測是,當我運行程序時,有些節點很忙。

所以我的問題是:我可以編寫一個腳本來檢測非繁忙的機器和更新機器文件?什麼是寫它的簡單方法?

非常感謝。

+0

這很難完全避免。您的想法檢查機器的負載狀態是好的,但您不能確定有人在您啓動您的設備後不會登錄並開始工作。在某些情況下,您可以嘗試重複每次測試3次,並選擇最快的情況,因爲這通常會反映您的表現(當然,您的程序具有可預測的運行時間)。 – Jan

回答

1

SSH插入每臺機器,然後讀取/ proc/loadavg文件或以其他方式確定「業務」。

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將意味着「真的很忙「,警告可能是」有點忙「,好的意思是」機器閒置「。

你必須注意你必須給予的閾值爲1/5/15分鐘,以提醒和關鍵;例如,一個16核的機器的負載爲3是完全可以的,而在單核機器上的負載爲3意味着它真的很忙。

祝你好運! Alex。

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