Pourquoi top signale-t-il une utilisation incorrecte du processeur?

10

J'ai une machine avec Intel(R) Xeon(R) CPU E5520visible comme 16 cœurs logiques (8 avec HT). Si j'exécute quelque chose pour manger du temps CPU (simple thread), le top signale correctement 100% d'utilisation du CPU pour le processus, mais seulement environ 3-4% d'utilisation totale.

Cpu(s):  3.6%us,  0.0%sy,  0.0%ni, 96.4%id,  0.0%wa,  0.0%hi,  0.0%si,  0.1%st

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1567 www       20   0 65632   84    4 R  100  0.0   0:05.96 burnMMX

Certes, l'utilisation signalée devrait être d'environ 6,25% (1 des 16 cœurs).

  • Est-ce incorrect parce que c'est une machine virtuelle?
  • Comment puis-je calculer une valeur correcte?

la source
1
vous pouvez essayer de atopchanger le haut pour signaler l'utilisation de chaque CPU individuellement (en appuyant sur 1)
Hubert Kario
@HubertKario l'utilisation signalée pour chaque cœur est correcte, alors pourquoi le total est-il faux?
Si les niveaux d'utilisation des cœurs individuels sont corrects, cela suggérerait un bug en haut aussi improbable que cela puisse
paraître
Ce ne serait pas le premier article sur les meilleurs résultats incorrects dans les machines virtuelles. Pouvez-vous décrire votre technologie VM et vos systèmes d'exploitation hôte et invité?
Nils
@Nils Xen avec un invité serveur Ubuntu / 2.6.32-21. Aucune information sur le système d'exploitation hôte.

Réponses:

12

topdans le rapport récapitulatif de l'utilisation par rapport au CPU avec tous les cœurs ajoutés. D'un autre côté, lorsque vous regardez dans la liste des processus, les meilleurs rapports indiquent le pourcentage référencé à un cœur (réel ou HT). Essayez d'exécuter un processus avec 4 threads pouvant consommer jusqu'à 4 cœurs de CPU, vous le trouverez en utilisant 400% de CPU.

Je ne peux pas dire pourquoi, mais c'est ainsi que cela topfonctionne sur tous les systèmes Linux que j'ai vus.

Patkos Csaba
la source
5

Fonctionne le plus souvent topen mode 'Irix' par défaut, comme vous le décrivez. Si vous souhaitez obtenir un pourcentage des capacités totales du processeur (c'est-à-dire lorsque la somme de l'utilisation possible du processeur atteint 100% et non cpu_cores_number * 100%), basculez simplement le mode 'Irix' en appuyant sur I.

moon.musick
la source