Problem:
Auf meinem Server (Fedora Core2) kam es immer dazu, dass OpenOffice mit einer Last von über 90% lief. Dies verzögerte die Anmeldung am Server. Mit folgendem Einzeiler wird OpenOffice (soffice.bin) bei einer Last von über 90% gekillt. Tauscht man soffice.bin gegen ein anderes Programm aus, wird dieses gekillt. Der Befehl läuft als cronjob unter dem Benutzer root.
Lösung:
top -bisS -n 3 | awk '{if (int($9) > 90) if ($12 = "soffice.bin") system("kill " $1)}'
Überseh ich was oder ist o.g. grober Unfug?
Jedes Programm kann kurzzeitig mal 100% CPU benutzen, schlimm ist das nur, wenn das Aufgrund einer Fehlfunktion im Programm permanent auftritt und nicht sinnvoll begründet ist. Selbst ein richtig funktionierendes OpenOffice kann sicher bei manchen völlig korrekt ablaufenden Funktionen bei Verwendung des o.g. Skripts den kill triggern, was den arbeitenden Anwender dann sicher nicht begeistern wird... -- ThomasWaldmann 2005-01-19 11:28:20
Hi Thomas,
Natürlich hast du recht, dass auch ein normales OpenOffice abgeschossen werden kann. Doch ich habe es ein wenig auf unserem Terminalserver beobachtet: Normal arbeitende Nutzer (Schüler) produzieren kaum solche Last. Nur, wenn sie sich falsch Abmelden bleibt das OpenOffice hängen und beginnt es eine Dauerlast von > 95% zu produzieren, die alles lähmt. Als Workaround funktioniert obige Lösung bei uns zur Zeit ganz gut. -- ChristianBorowski
Ich bin sicher, dass es dafür eine bessere Lösung gibt. Kannst du mal die Ausgabe von "ps -ef" schicken, die sowohl "hängende" als auch normale OOo Prozesse zeigt? -- RonnyBuchmann 2005-01-25 15:01:09
Ohne jetzt all eure Mühe vernichten zu wollen, aber es gibt da einen AutoNiceDaemon, der sich um genau das kümmert. Hab ihn noch nie Produktiv eingesetzt, aber mal die Doku überflogen. Siehe and. ("Do we always have to reinvent the wheel?") -- HelmutGrohne 2005-01-26 07:10:52
Ob es wirklich sinnvoll ist, hängende Prozesse auf eine sehr niedrige Priorität zu setzen anstatt sie zu beenden, halte ich doch für sehr fraglich. -- RonnyBuchmann 2005-01-26 12:58:08
Das war auch garnicht gemeint. Positive Werte geben nice values und negative Werte geben kill Signale (wie z.B. -9) an. -- HelmutGrohne 2005-01-26 22:43:19