/ / Fehlender Takt des Client-Computers - c ++, Linux

Fehlender Heartbeat des Client-Rechners - C ++, Linux

Meine Anwendung startet Hunderte von KindernProzesse an SGE gesendet. Nur wenige von ihnen benötigen viel Speicher, aufgrund dessen die Jobs fehlgeschlagen sind. Ich brauche einen Weg, um die Speicherauslastung der Clients vom Hauptprozess aus zu überwachen und sie erneut an das Netz mit einem höheren Speicherbedarf weiterzuleiten, falls solche Jobs ausfallen. Ich habe etwas von fehlendem Heartbeat-Algo für solche Anforderungen gehört, aber ich bin mir dessen nicht sehr bewusst. Können mir Experten hier helfen, eine gute Lösung für dieses Problem zu finden? Meine Anwendung ist eine C ++ - Anwendung unter Linux / Solaris.

Vielen Dank Ruchi

Antworten:

0 für die Antwort № 1

Eine Lösung, die ich zuvor verwendet habe, ist ein Skript, das die Ausgabe aus dem qstat-Befehl (in meinem Fall mit rsh). Ich filte nach meinen Jobs und speichere die Informationen, die ich brauche (in meinem Fall war es die CPU) in einer ständig aktualisierten Liste. Wenn ein Job abgebrochen wurde oder abgebrochen wurde, war es leicht, die CPU-Auslastung zu überprüfen. Es ist nicht 100% Echtzeit, aber gut genug für mich.

Meine bevorzugte Sprache war Python, wie sie enthältbenutzerfreundliche Bibliotheken zum Erfassen von Ausgaben und Anmelden an entfernten Maschinen Es sollte jedoch einfach sein, etwas wie das Erfassen von rsh-output in C ++ zu implementieren. Sie können zum Beispiel verwenden popen () um die Ausgabe in Ihre Anwendung zu leiten. Ich hoffe das hilft.