la commande supérieure sur le processeur multicœur ubuntu indique l'utilisation du processeur> 100%

16

entrez la description de l'image ici

J'ai Ubuntu fonctionnant sur un processeur multicœur avec 32 cœurs. Lorsque je vérifie l'utilisation de l'unité centrale de traitement à l'aide de la commande top, elle affiche parfois plus de 100%, comme 340%, 650%, etc. Par exemple, si les premières utilisations du processeur sont de 20%, la deuxième de 30%, la troisième de 40% et les autres de 0%, «top» affiche 20 + 30 + 40 = 90%.

C'est un peu déroutant et trompeur. Je crois que la commande supérieure devrait afficher les utilisations du processeur entre 0 et 100 en calculant les utilisations sur tous les cœurs. Dans mon exemple ci-dessus, je m'attendrais à - (90 * 100) / 3200 = 2,8125%. Est-ce un bug avec la commande top? Doit-il être considéré comme une amélioration pour les futures versions? s'il vous plaît donnez votre avis

Poonam Srivatava
la source
Ce n'est pas un bug, c'est un topcomportement standard , et il est probablement trop lte pour le changer. Cependant, rien ne vous empêche d'utiliser une autre commande avec une convention de rapport différente :)
0xF2
1
Par curiosité, de quel processeur s'agit-il? Un de ces nouveaux systèmes ARM64?
0xF2
CPU1 & CPU2 - Intel (R) Xeon (R) CPU E5-2670 @ 2,60 GHz (8
cœurs

Réponses:

22

Par défaut, topaffiche l'utilisation du processeur en pourcentage d'un seul processeur. Sur les systèmes multicœurs, vous pouvez voir que les pourcentages d'utilisation du processeur sont supérieurs à 100%. Vous pouvez basculer ce comportement en appuyant sur Shift+ ilorsque top est en cours d'exécution pour afficher le pourcentage global de CPU disponibles en cours d'utilisation.

htopest une meilleure alternative à top. Dans htop, vous pouvez voir comment vos programmes consomment les 32 cœurs.

Tung Tran
la source
Bonjour - merci pour cet aperçu. Je suis nouveau dans le travail sur un système multicœur, donc je me demande pourquoi tous les cœurs sont utilisés dans ce cas. J'ai parfois un comportement similaire lorsque je ne fais pas d'opérations parallélisées. Cela semble dépendre de la taille de mon opération et de la mémoire requise (je travaille avec R). Tout semble ralentir lorsque ce débordement vers d'autres processeurs se produit.
Marc dans la boite le