Diese Frage ist alt, aber meiner Meinung nach ist die Antwort falsch. ps und top berechnen die CPU-Auslastung mit unterschiedlichen Methoden.
von oben:
- %CPU – CPU-Auslastung Der Anteil der Aufgabe an der verstrichenen CPU-Zeit seit der letzten Bildschirmaktualisierung , ausgedrückt als Prozentsatz der gesamten CPU-Zeit.
von man ps:
Die CPU-Auslastung wird derzeit als Prozentsatz der Zeit, die mit der Ausführung während der gesamten Lebensdauer eines Prozesses verbracht wurde ausgedrückt .
Nehmen wir also an, Sie haben einen Prozess, der vor einer Woche gestartet wurde und während dieser Zeit durchschnittlich 2,2 % der CPU-Zeit verbraucht hat. Wenn es plötzlich CPU-intensiv werden würde (kontinuierlich 100 % verbrauchend), würden Sie in den ersten paar Stunden dieselben 2,2 % beobachten.
Der wahrscheinlichste Grund ist dieser top
zeigt die Prozentwerte als Prozentsatz eines einzelnen an CPU während ps
zeigt den Prozentsatz der insgesamt verfügbaren CPU-Leistung. Versuchen Sie, oben zu laufen und Shift zu drücken Ich während es läuft, um den Prozentsatz aller Kerne anzuzeigen.
Wenn es sich um einen Servercluster mit vielen CPUs handelt, ist das von Ihnen beschriebene normale Verhalten. Siehe auch hier.