Ich führe einen Prozess auf einem 4-Kern-Ubuntu-Server aus. Der top
Befehl zeigt jedoch, dass die CPU-Auslastung ständig 799% beträgt.
Wie kann das möglich sein? Ich weiß, dass für Multi-Core-CPUs eine CPU-Auslastung von mehr als 100% erwartet wird, aber 799% sind ein wirklich hoher Wert.
Kann mir jemand erklären, warum und wann dies passieren könnte?
Bearbeiten:
Laut Vorschlag von Gregory MOUSSAT habe ich mit htop folgendes bekommen:
linux
ubuntu
multi-core
top
Arpssss
quelle
quelle
Antworten:
Die von verwendete Skala
top
ist 100%, wenn ein Kern voll ausgelastet ist. Oder wenn ein Kern 20% und ein zweiter 80% beträgt. Dies führt auf Multicore-Computern zu merkwürdigen Ergebnissen, da es leicht 100% überschreiten kann.Wenn Sie 8 Kerne haben,
top
können Sie von 0% (Leerlaufsystem) bis 800% (volle Leistung) anzeigen.Ihr Programm verwendet nur Ihre 4 Kerne mit Hyperthreading (also 8 virtuelle Kerne) mit maximaler Kapazität. Top ergibt also fast 8 x 100% = 800%.
Sie können der JVM nicht explizit anweisen, einen einzelnen Thread zu verwenden. Sie verwendet mehrere Threads, um ihre Arbeit zu erledigen, selbst wenn Sie in Ihrer Anwendung nur einen einzigen Thread verwenden.
Sie können das
htop
Dienstprogramm als besseretop
Alternative verwenden. Sie sehen Ihr Programm mit allen 8 Kernen.quelle
htop