durchschnittliche Last und Gesamtprozentprozent in%

9267
Tim

Ich dachte, dass die durchschnittliche Auslastung nach Betriebszeit und die Summe der% CPU aller laufenden Prozesse in der oberen Spalte (Spalte # 9) übereinstimmen würden. Aber es scheint nicht wahr zu sein. Hier sind meine kleinen Experimente:

Auf einem Server:

$ top -b -n 1| awk '{ totuse = totuse + $9 } END { print totuse/100 }'; uptime  6.29  22:00:59 up 28 days, 7:03, 9 users, load average: 7.03, 5.81, 4.51` 

Auf einem anderen Server:

$ top -b -n 1| awk '{ totuse = totuse + $9 } END { print totuse/100 }'; uptime  4.93  22:01:37 up 29 days, 8:27, 17 users, load average: 18.83, 16.01, 13.86` 

Warum gibt es so einen Unterschied zwischen den beiden? Welche spiegelt die Verwendung von CPUs mehr wider?

Wenn ich versuche zu ermitteln, wie viel CPU-Auslastung meine laufenden Prozesse verwenden, ist dies ein guter Weg:

top -b -n 1 | grep "tim"| awk '{ totuse = totuse + $9 } END { print totuse/100 }' 

?

Danke und Grüße!

2

1 Antwort auf die Frage

9
baumgart

Der Grund, warum Ihr CPU-Prozentsatz und Ihr Lastdurchschnitt nicht übereinstimmen, liegt darin, dass es sich um zwei völlig unterschiedliche Werte handelt. Die CPU% ist genau der Prozentsatz der CPU, die ein Prozess verwendet. Der Lastdurchschnitt ist der gewichtete Durchschnitt der Prozesse in der Laufwarteschlange über 1, 5 und 15 Minuten.

Wenn Sie sich Gedanken darüber machen, wie viel CPU Sie verwenden (wenn Sie Ihre CPU vollständig auslasten), wird Ihre Abrechnung der Leistung von top gut funktionieren. Sie können das gelegentlich ausführen und den Wert aufzeichnen (oder verwenden sar, was dies für Sie tun wird).

Ein hoher Lastdurchschnitt bedeutet, dass sich viele Prozesse in der Laufwarteschlange befinden - viele Prozesse stehen zur Ausführung bereit. Hohe Auslastung bedeutet nicht automatisch viel CPU-Auslastung.

Wikipedia hat einen guten Artikel, der den Lastdurchschnitt und die Unterschiede zwischen CPU-Auslastung und CPU-Nutzung beschreibt: http://en.wikipedia.org/wiki/Load_Average