Confus par les valeurs du processeur dans la commande «top» d'Unix


11

Dans la capture d'écran ci-dessous, le processeur global est signalé comme 3% mais le processus mysqld utilise 57%. S'agit-il de 57% des 3% globaux et donc mysqld n'utilise qu'environ 1,5% du CPU?

capture d'écran supérieure http://img.skitch.com/20090620-cih33piwnnrke6aw41y9p1phwr.jpg

MISE À JOUR : Un commentateur ci-dessous m'a demandé d'appuyer sur la touche «1» et de publier les résultats: la touche 1 http://img.skitch.com/20090620-gayja43s44qtw2wkw4aq642e8c.jpg

Réponses:


11

Le 57,6% signifie que mysqld utilise .576 d'un processeur. L'écart est probablement une condition de concurrence entre la collecte de données pour le système dans son ensemble et la collecte des données par processus.

EDIT: Sur la base de votre mise à jour, vous semblez avoir 16 cœurs.

57.5% => .575/16 = .036 = 3.6%.

C'est de là que viennent vos 3%.

Si vous additionnez tous les pourcentages d'inactivité et soustrayez de 1600%, cela équivaut également à environ 57,5%.


3

Pouvez-vous essayer d'appuyer sur le chiffre 1 lorsque le haut est en marche et voir ce qui se passe.

Éditer:

Mr Unknown le dit bien.

top dit "Si vous aviez un cœur de processeur, il serait occupé à 57,5%."

Mais vous avez 16 cœurs. Donc, ce nombre 57 est réparti partout, avec mysqld étant multi-thread et tout ...

Un peu déroutant. Mais je pense que c'est parce que top aurait plus de mal à afficher des informations pour chaque core ... imaginez une top info avec 16 coeurs ou plus!

Aussi, si vous additionnez tout le temps CPU "% us"

1.7+1.0+2.3+1.0+7.4+11.1+15.1+8.7 = 48.3
48.3/16 = 3.01875

C'est de là que vient le chiffre de 3% ...


terminé; voir la question mise à jour.
Teflon Ted

1

Quelqu'un a-t-il recommandé htop? Non pas que cela aiderait cette question en particulier plus que les réponses précédentes, mais je me sens obligé de mentionner htopchaque fois que je vois quelqu'un utiliser encore top!


0

Je ne peux pas dire si votre top fusionne plusieurs processeurs que vous avez, mais cela n'aurait toujours pas beaucoup de sens.

Ce qui pourrait arriver, c'est que top n'obtient pas les valeurs pour chaque processus et l'utilisation totale du CPU en même temps. Il y a un petit laps de temps où mysql peut avoir arrêté ou commencé à utiliser beaucoup de CPU entre le moment où les informations de processus sont lues et le global est lu. Cela pourrait bien être une simple condition de course.

Bien sûr, cela aurait dû se produire assez longtemps pour que vous l'ayez remarqué, donc je suppose que cela pourrait simplement être un bug étrange quelque part en haut ou dans la comptabilité du noyau.


0

nous: espace utilisateur - ce que vous exécutez au-dessus du noyau sy: appels système - ce qui s'exécute à l'intérieur du noyau ni: processus reniced id: idle wa: en attente d'e / s hi: interruptions matérielles - combien de temps est consacré au traitement du matériel si: interruptions logicielles - combien de temps est consacré au traitement des interruptions créées par logiciel (appels système, etc.)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.