perché il contatore htop mostra> 90% mentre la tabella è 0,0%?


12

Perché i misuratori di progresso nella parte superiore dello schermo htopmostrano un utilizzo della CPU costantemente superiore a> 90%, mentre i numeri nella tabella seguente mostrano un sistema quasi inattivo con utilizzo della CPU e un carico medio dello 0,0%?

afferrare lo schermo parziale parziale


1
Ho lo stesso identico problema e sono anche su un Dreamhost VPS (server privato virtuale).
dualità_

A proposito, guarda il mio esempio, è ancora peggio: demo.ddesign.si/temp/dh3.png
dualità_

Risposte:


6

htopignora che è in esecuzione su un ambiente virtualizzato a livello di kernel ( Dreamhost VPS utilizza la tecnologia VServer ). Mostra quindi l'utilizzo della CPU per tutte le istanze del sistema operativo che condividono lo stesso kernel, non solo il tuo.

Dai un'occhiata vtopall'output che mostra tutti i processi che condividono le CPU, non solo quelli nel tuo contenitore.

Se vtopnon è installato, e questo è probabilmente previsto per una soluzione commerciale in quanto non si vorrebbe che un cliente vedesse quali processi eseguono altri clienti, non c'è modo di risolvere il problema all'interno del proprio contenitore, a meno che non si ricalchi l' toporigine della patch da calcolare Utilizzo della CPU invece di ottenerlo dalle statistiche del kernel.

Potrebbe farlo riassumendo l'utilizzo della CPU di tutti i processi in esecuzione nel VServer, ad esempio:

ps aux | awk '
    {cpu+=$3; ram+=$6} 
    END {printf("cpu: %d%%, RAM: %.2f MiB\n",cpu,ram/1024) }'

+1 per la spiegazione; topriporta in modo simile a htop su questa macchina. Vtop non testato come non installato. Contrassegnando questo come accettato perché risponde "perché?", Sebbene non affronti l'implicito "e cosa si può fare al riguardo?",
Poiché

4

Questo tipo di incoerenza è generalmente indicativo di un elevato utilizzo del processore da parte dei thread del kernel, che non sono visualizzati htopper impostazione predefinita. Per visualizzarli, htopvai su Setup, quindi Display options, quindi deseleziona Hide kernel threads. Ciò dovrebbe consentire di vedere i thread che sono responsabili.

È inoltre possibile disabilitare questo comportamento impostando hide_kernel_threadssu 0 in ~/.htoprc.


2
grazie Chris. L'ho fatto ma i valori della tabella sono ancora 0%. Forse questo è qualcosa di peculiare nell'esecuzione in una macchina virtuale? L'host è Virtual Private Server (su Dreamhost.com).
Matt Wilkie,

Per me, questa è la risposta più corretta. Avevo un processo che occupava molta CPU dal kernel e non si stava manifestando nei processi dello spazio utente.
Patrick Chu,

... tranne che i misuratori di CPU HTop mostrano il tempo del kernel in rosso e il tempo dell'utente in verde, e possiamo vedere chiaramente che è quasi tutto verde.
MathematicalOrchid,

1

Prova a lanciarlo htopcon sudo. È necessario l'accesso come root per vedere quei thread attivi nella tabella.


Non so quanto funzioni o meno su normali ambienti virtualizzati, se esiste qualcosa di normale, ma non funziona su Dreamhost VPS.
Matt Wilson
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.