pourquoi le compteur htop affiche-t-il> 90% alors que le tableau est à 0,0%?

12

Pourquoi les indicateurs de progression en haut de l'écran htopaffichent-ils une utilisation du processeur constamment supérieure à> 90% alors que les chiffres dans le tableau ci-dessous montrent un système presque inactif avec une utilisation du processeur et une charge moyenne à 0,0%?

saisie d'écran partielle htop

Matt Wilkie
la source
1
J'ai exactement le même problème et je suis également sur un Dreamhost VPS (serveur privé virtuel).
duality_
BTW, regardez mon exemple, c'est encore pire: demo.ddesign.si/temp/dh3.png
duality_

Réponses:

6

htopne sait pas qu'il s'exécute sur un environnement virtualisé au niveau du noyau ( Dreamhost VPS utilise la technologie VServer ). Il montre ensuite l'utilisation du processeur pour toutes les instances de système d'exploitation partageant le même noyau, pas seulement la vôtre.

Jetez un œil à la vtopsortie qui montre tous les processus partageant les CPU, pas seulement ceux de votre conteneur.

Si vtopn'est pas installé, et cela est probablement prévu pour une solution commerciale, car on ne voudrait pas qu'un client voit quels processus exécutent d'autres clients, il n'y a aucun moyen de résoudre le problème depuis l'intérieur de votre conteneur, à moins de corriger la topsource pour calculer Utilisation du processeur au lieu de l'obtenir à partir des statistiques du noyau.

Il peut le faire en résumant l'utilisation du processeur de tous les processus en cours d'exécution dans votre VServer, par exemple:

ps aux | awk '
    {cpu+=$3; ram+=$6} 
    END {printf("cpu: %d%%, RAM: %.2f MiB\n",cpu,ram/1024) }'
jlliagre
la source
+1 pour l'explication; topsignale de manière similaire à htop sur cette machine. Vtop non testé car non installé. Marquer cela comme accepté parce qu'il répond "pourquoi?", Bien qu'il ne traite pas de l'implicite "et que peut-on faire à ce sujet?",
Car
4

Ce type d'incohérence indique généralement une utilisation élevée du processeur par les threads du noyau, qui ne sont pas affichés htoppar défaut. Pour les afficher, htopaccédez à Setup, puis Display options, puis décochez Hide kernel threads. Cela devrait vous permettre de voir le ou les threads responsables.

Vous pouvez également désactiver ce comportement en définissant hide_kernel_threadssur 0 po ~/.htoprc.

Chris Down
la source
2
merci Chris. Je l'ai fait mais les valeurs du tableau sont toujours de 0%. Peut-être que c'est quelque chose de particulier à exécuter dans une machine virtuelle? L'hôte est Virtual Private Server (sur Dreamhost.com).
matt wilkie
Pour moi, c'est la réponse la plus correcte. J'avais un processus qui prenait beaucoup de CPU du noyau, et il n'apparaissait pas dans les processus de l'espace utilisateur.
Patrick Chu
... sauf que les compteurs CPU HTop affichent le temps du noyau en rouge et le temps utilisateur en vert, et nous pouvons clairement voir qu'il est presque entièrement vert.
MathematicalOrchid
1

Essayez de lancer htopavec sudo. Vous avez besoin d'un accès root pour voir ces threads actifs dans le tableau.

HAL 9001
la source
Je ne sais pas si cela fonctionne bien ou non sur les environnements virtualisés réguliers, s'il existe une chose telle que régulière, mais ne fonctionne pas sur les VPS dreamhost.
matt wilkie