Der Befehl top auf der Ubuntu Multicore-CPU zeigt die CPU-Auslastung> 100% an

14

Geben Sie hier die Bildbeschreibung ein

Ich habe Ubuntu auf einer Multi-Core-CPU mit 32 Kernen laufen. Wenn ich die CPU-Auslastung mit dem Befehl top überprüfe, werden manchmal mehr als 100% angezeigt, z. B. 340%, 650% usw. Ich habe einige Untersuchungen durchgeführt und festgestellt, dass es sich tatsächlich um eine Summe der Verwendungen über verschiedene Kerne hinweg handelt. Wenn zum Beispiel die 1. CPU-Auslastung 20%, die 2. 30%, die 3. 40% und die verbleibenden 0% beträgt, zeigt 'top' 20 + 30 + 40 = 90%.

Es ist etwas verwirrend und irreführend. Ich glaube, der oberste Befehl sollte die CPU-Auslastung zwischen 0 und 100 anzeigen, indem die Auslastung über alle Kerne berechnet wird. In meinem obigen Beispiel würde ich erwarten - (90 * 100) / 3200 = 2,8125%. Ist das ein Fehler mit Top-Befehl? sollte es als Erweiterung für zukünftige Versionen betrachtet werden? Bitte beraten

Poonam Srivatava
quelle
Es ist kein Fehler, dies ist Standardverhalten top, und es ist wahrscheinlich zu lte, um es zu ändern. Nichts
hindert
1
Welche CPU ist das aus Neugier? Eines dieser neuen ARM64-Systeme?
0xF2
CPU1 & CPU2 - Intel (R) Xeon (R) CPU E5-2670 bei 2,60 GHz (8 Kerne)
Poonam Srivatava

Antworten:

20

Standardmäßig wird topdie CPU-Auslastung als Prozentsatz einer einzelnen CPU angezeigt . Auf Mehrkernsystemen können Sie feststellen, dass der Prozentsatz der CPU-Auslastung mehr als 100% beträgt. Sie können dieses Verhalten umschalten, indem Sie Shift+ drücken, iwährend top ausgeführt wird, um den Gesamtprozentsatz der verfügbaren CPUs anzuzeigen.

htopist eine bessere Alternative von top. In htopkönnen Sie sehen, wie Ihre Programme alle 32 Kerne verbrauchen.

Tung Tran
quelle
Hallo - danke für diesen Einblick. Ich bin neu in der Arbeit an einem Multi-Core-System und frage mich daher, warum in diesem Fall alle Kerne verwendet werden. Ich habe manchmal ein ähnliches Verhalten, wenn ich keine parallelisierten Operationen durchführe. Es scheint abhängig von der Größe meines Betriebs und dem benötigten Speicher zu sein (ich arbeite mit R). Alles scheint sich zu verlangsamen, wenn dieses Übergreifen auf andere CPUs auftritt.
Marc in der Box
1

Es sieht so aus, als hätte ich einen Weg gefunden :-) Wenn ich beim Ausführen des Befehls top in den Solaris-Modus wechsle, wird die korrekte CPU-Auslastung angezeigt. Um in den Solaris-Modus zu wechseln, führen Sie zuerst den Befehl top aus und drücken Sie dann Shift + i

Referenzartikel

https://help.gnome.org/users/gnome-system-monitor/stable/solaris-mode.html.de /unix/15733/why-process-cpu-usage-larger -dann-Gesamt-CPU-Zeit

Poonam Srivatava
quelle