Wie verwende ich top (oder gleichwertig), um festzustellen, ob sich ein Prozess schlecht verhält?

509
Usagi

Gibt es Anzeichen dafür, wann ein Prozess "zur dunklen Seite übergegangen ist"?

Ich bin der Meinung, dass allein die Verwendung von MEM% und CPU% schlechte Indikatoren für das Erkennen von Dingen wie Speicherverlusten (oder andere Probleme, entschuldigen Sie mein begrenztes Vokabular) ist, weil es schwer ist, ohne ausreichende Kenntnisse des Programms zu wissen, wie viel Speicher oder CPU das Programm hat "sollte nutzen.

Wie untersuche ich wirklich schlechte Prozesse gegenüber bloß teuren?

0
"Zur dunklen Seite gegangen" ???? Wenn Sie nicht genau angeben, was Sie damit meinen, wie können Sie von "top" erwarten, um Ihnen zu helfen? MariusMatutiae vor 7 Jahren 0

2 Antworten auf die Frage

0
Simon MC. Cheng

Ich denke, es ist schwer zu wissen, wie viel Ressourcen ein Programm "verwenden" sollte, aber es gibt einige Indikatoren, die Sie überprüfen können, ob Ihr System über genügend Ressourcen verfügt, um mit dem Programm umgehen zu können.

Zuerst überprüfen wir die PID für den Prozess durch (zB der Prozessname ist dataserver):

ps aux | grep dataserver sybxxx 795 52.9 0.0 1190088 22548 ? S<sl Jun06 38192:51 /sybase/XXX/ASE-16_0/bin/dataserver 

Hier wissen wir, dass die Prozess-ID 795 ist. Daher verwenden wir den Befehl pidstat :

pidstat -h -r -u -p 795 5 Time PID %usr %system %guest %CPU CPU minflt/s majflt/s VSZ RSS %MEM Command 1469520679 795 242.80 5.00 0.00 247.80 24 0.00 0.00 53618888 22548 0.02 dataserver 

Aus der Ausgabe wissen wir, dass der Prozess einen CPU-Kern von etwa 2,4 verwendet, während das System 24 Kerne installiert hat. Der prozentuale Anteil des verwendeten Speichers beträgt 0,02% der gesamten installierten Speichermenge.

Abgesehen von solchen Informationen denke ich, dass es sich lohnt, eine allgemeine Systemprüfung durchzuführen, um einen Ressourcenmangel zu vermeiden.

Um die CPU-Auslastung zu überprüfen, können Sie zunächst den Befehl sar verwenden . Um die schlechte Leistung eines Systems zu ermitteln, prüfen Sie die folgende Ausgabe.

Im Normalfall wäre die Ausgabe von Iostat wie folgt:

sar 12:00:01 AM CPU %user %nice %system %iowait %steal %idle 12:10:01 AM all 0.70 0.00 0.15 0.01 0.00 99.13 

Der Wert für% idle sollte hoch bleiben, während der Wert von% user,% system und% iowait für ein nicht ausgelastetes System niedrig sein sollte.

Für das Festplatten-E / A- Problem können Sie das Ergebnis von iostat -x überprüfen :

Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 0.07 1.58 0.27 1.04 13.72 20.87 26.54 0.01 7.50 3.33 0.43 sdc 4.09 252.47 483.10 5.90 18616.61 2148.57 42.46 5.88 12.03 1.99 97.29 

Dies ist ein schlechtes Beispiel, da sich der Prozentsatz der Auslastung des Geräts sdc auf 97,29% erhöht, was auf ein Problem mit der Festplatten-E / A hinweist.

Um zu überprüfen, ob wir über genügend Speicher für das System verfügen, schauen Sie sich die Paging-Nutzung an:

sar -B 10:30:01 AM pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff 10:40:01 AM 8524.25 47.12 856.03 0.00 263.76 0.00 0.00 0.00 0.00 10:50:01 AM 8391.64 82.94 1116.50 0.08 377.87 0.00 0.00 0.00 0.00 

Da wir sehen, dass das Paging pro Sekunde für diesen Server sehr hoch ist, können wir vermuten, dass das System über genügend Arbeitsspeicher verfügt.

0
Eamonn Kenny

Normalerweise schaue ich zuerst auf die Ladung. Wenn 2 der 3 Zahlen über 3 liegen, gehen Sie in die falsche Richtung. Eine Belastung von mehr als 8 für eine der drei Zahlen ist ein ernstes Problem, dh Sie führen mehrere Gabeln eines Prozesses aus, oder Ihre Maschine ist nicht für das, was Sie zu tun versuchen, gerüstet. Beispiel: Ausführen eines Torque-Batch-Servers mit vielen Jobs mit zu wenigen Kernen.

Wenn einer Ihrer Prozesse einen zunehmenden Anteil der CPU verwendet, ist dies auch ein schlechtes Anzeichen für Probleme mit Speicherverlusten, oder es könnte auch sein, dass Sie Komponenten verwenden, die als Chrome / Firefox bezeichnet werden. Tatsächlich hat Firefox die Verwendung von Attachments stark gelitten Plugins wie Skype, die in älteren Versionen zu Überläufen führen.

Ein weiterer Indikator ist eine große Anzahl übergreifender Prozesse desselben Typs, die jedoch nicht immer ein Problem darstellen.

Und einer der ersten Anzeichen von Problemen ist ein Prozess, der als [defunct] bezeichnet wird, da er dann, wie die meisten Leute, die ich kenne, nicht funktioniert.