2013-06-27 76 views
0

我的應用程序啓動了數百個發送給SGE的子進程。由於哪些工作失敗,其中很少會佔用大量內存。 我需要一些方法來監視來自主進程的客戶端的內存使用情況,並重新啓動/重新提交給具有更高內存要求的網格,以防出現此類作業故障。 我已經聽說過有關失蹤心跳算法的一些要求,但我並不是很瞭解他們。 這裏的專家可以幫助我找到一個很好的解決方案嗎?我的應用程序是Linux/Solaris上的C++應用程序。客戶機丟失心跳

由於 魯奇

回答

0

我以前使用的解決方案是爲具有捕獲來自qstat -command的輸出(在我的情況下,使用RSH)的腳本。我過濾了我的工作,並將我需要的信息(在我的情況下是CPU)存儲在不斷更新的列表中。當一項工作中止或遇害時,很容易回頭查看CPU使用情況。它不是100%實時的,但對我來說足夠好。

我選擇的語言是Python,因爲它包含易於使用的庫,用於捕獲輸出並登錄到遠程計算機。但是,應該很容易實現在C++中捕獲rsh-output。例如,您可以使用popen()將輸出傳送到您的應用程序中。我希望這有幫助。