Perché il comando "top" mostra un utilizzo della CPU del 799%?


47

Sto eseguendo un processo in un server Ubuntu a 4 core. Tuttavia, il topcomando mostra che l'utilizzo della CPU è sempre del 799%.

Come può essere possibile? Lo so per le CPU multi core, è previsto un utilizzo della CPU superiore al 100%, ma il 799% rappresenta un valore davvero elevato.

Qualcuno può spiegarmi perché e quando ciò potrebbe accadere?

Modificare:

Come da suggerimento di Gregory MOUSSAT, usando htop ho ottenuto quanto segue:

inserisci qui la descrizione dell'immagine


1
I 4 core hanno 2 thread ciascuno (ad esempio Intel Core i7)?
Renan,

@Renan, lo sto eseguendo su un singolo thread.
Arpssss,

Va bene allora. Perché l'ho visto accadere su alcuni sistemi i7.
Renan,

1
Ma JVM è a thread singolo?
Ignacio Vazquez-Abrams,

6
Sembra davvero un i7 a pieno carico, di solito ottengo questo durante la codifica del video
nohillside

Risposte:


65

La scala utilizzata da topè del 100% quando un nucleo è completamente utilizzato. O quando un core è del 20% e un secondo è dell'80%. Ciò porta a strani risultati sui computer multicore perché può facilmente superare il 100%.
Se si dispone di 8 core, è toppossibile visualizzare dallo 0% (sistema inattivo) all'800% (piena potenza).

Il tuo programma sta semplicemente usando i tuoi 4 core con hyperthreading (quindi 8 core virtuali) alla massima capacità. Quindi top ti dà quasi 8 x 100% = 800%.

Non puoi dire esplicitamente a JVM di usare un singolo thread, userà più thread per fare il suo lavoro, anche se usi solo un singolo thread nella tua applicazione.

È possibile utilizzare l' htoputilità come topalternativa migliore . Vedrai il tuo programma usando tutti gli 8 core.


È possibile limitare qualsiasi set di processi a un set di core o limitare la% di CPU. Tuttavia non ricordo i comandi. (uno è cpulimit)
ctrl-alt-delor

+1 per htop, molto meglio di sopra o in alto
CodeLikeBeaker

+1 per htop. Questo mi ha aiutato a inchiodare due thread affamati di CPU!
Arun,

3
Tutti grandinehtop
fragamemnon il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.