Ich werde untersuchen, warum wir kritische Swap-Warnungen erhalten, und ich werde etwas finden wie:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ SWAP COMMAND
14683 user1 30 10 16.0g 772m 744 S 0.3 0.3 277:24.87 6.5g MATLAB
14576 user1 30 10 8125m 1.1g 736 S 0.3 0.4 261:16.73 4.1g MATLAB
Dabei wird die Spalte TIME + für diese Prozesse eingefroren.
Meine Frage ist oben, was bedeutet das?
Nach meinem Verständnis bedeutet angehaltene Zeit, dass es sich um einen ruhenden Prozess handelt, der nicht von der CPU verarbeitet wird. Das obige Beispiel zeigt jedoch eine CPU-Auslastung von 0,3%. Sollte die Zeitspalte trotz der Tatsache, dass sie sehr klein ist, nicht weiter erhöht werden?
Sind diese Prozesse "abgeschlossen"? In welchem Fall werden sie aufgeräumt? Muss der Benutzer, der sie gestartet hat, sie bestätigen oder etwas, damit diese Ressourcen freigegeben werden?
Antworten:
Wenn Sie einen gefälschten Job wie ausführen
sleep 120
und ihn dann ansehen, werdenhtop
Sie feststellen, dass sein Status alsS
"SLEEP" bezeichnet wird und derTIME
Prozess für die Dauer bei 0: 00.00 bleibt.Dies liegt daran, dass dieser Prozess 0 CPU-Zeit verbraucht, was die Absicht der
TIME
Spalte ist. Es verfolgt die CPU-Zeit, die ein bestimmter Prozess verwendet hat.Diese Anzahl kann manchmal verwirrend sein, wenn ein Prozess auf mehreren CPU-Kernen ausgeführt werden kann, da er scheinbar mehr Zeit verbraucht als verfügbar ist. Alles, was dort vor sich geht, ist, dass wenn Sie X Kerne haben, Ihre Zeit als X * ZEIT angezeigt werden kann.
quelle
Der Grund, warum Sie möglicherweise eine solche Ungleichheit erhalten, ist, dass die Spalte TIME + die CPU-Zeit nicht berücksichtigt, die von toten Kindern des aufgelisteten Prozesses verwendet wird. Ich würde mir also vorstellen, dass die von Ihnen angezeigten Zeilen auf eine Anwendung hinweisen, die (möglicherweise schnell) ist. laichende Kinder, die fast sofort sterben ..
So, the CPU usage is due to spawned children which do not count in the TIME+ column.
Sie können oben wechseln, um die kumulative Zeit über den Schalter 'S' zu berechnen.Aber ich denke, Sie suchen nach den falschen Indikatoren für das, was Sie untersuchen möchten.
strace -p <pid>
ist dein Freund hier und ermöglicht dir einen Blick in den laufenden Prozess und was genau er tut.Strace hat eine Vielzahl von Möglichkeiten. Einige bemerkenswerte Optionen sind -f, -ff, -i, v usw. Strace ist ein äußerst nützliches Tool. Am besten tun Sie dies
man strace
und überzeugen Sie sich selbst von den Optionen, die es Ihnen zur Fehlerbehebung bei solchen Problemen bietetquelle