web-dev-qa-db-fra.com

Comprendre% CPU lors de l'exécution de la commande top

J'essaie de comprendre ce que %CPU signifie lorsque j'exécute top.

Je vois %CPU pour ma candidature en tant que 400 ou 500 la plupart du temps.

Est-ce que quelqu'un sait ce que cela signifie?

Quel nombre est un nombre élevé?

19080 david 20 0 27,9g 24g 12m S 400 19,7 382: 31,81 paper_client

lscpu me donne ci-dessous la sortie:

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                32
On-line CPU(s) list:   0-31
Thread(s) per core:    2
Core(s) per socket:    8
Socket(s):             2
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 45
Stepping:              7
CPU MHz:               2599.928
BogoMIPS:              5199.94
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              20480K
NUMA node0 CPU(s):     0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30
NUMA node1 CPU(s):     1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31
74
david

% CPU - Utilisation CPU: Le pourcentage de votre CPU qui est utilisé par le processus. Par défaut, top affiche cela en pourcentage d'un seul processeur. Sur les systèmes multicœurs, vous pouvez avoir des pourcentages supérieurs à 100%. Par exemple, si 3 cœurs utilisent 60%, top affichera une utilisation CPU de 180%. Voir ici pour plus d'informations. Vous pouvez basculer ce comportement en appuyant sur Shifti tandis que top est en cours d'exécution pour afficher le pourcentage global de CPU disponibles en cours d'utilisation

Source pour la citation ci-dessus .

Vous pouvez utiliser htop à la place.


Pour répondre à votre question sur le nombre de cœurs et de cœurs virtuels dont vous disposez:

Selon votre sortie lscpu:

  • Vous disposez de 32 cœurs (CPU(s)) au total.
  • Vous avez 2 sockets physiques (Socket(s)), chacun contient 1 processeur physique.
  • Chaque processeur possède 8 cœurs physiques (Core(s) per socket) à l'intérieur, ce qui signifie que vous avez 8 * 2 = 16 cœurs réels.
  • Chaque noyau réel peut avoir 2 threads (Thread(s) per core), ce qui signifie que vous avez de vrais cœurs * threads = 16 * 2 = 32 cœurs au total.

Vous avez donc 32 cœurs virtuels à partir de 16 cœurs réels.

Voir aussi this , this and this link.

114
polym

Cela signifie que vous avez beaucoup de cœurs. Un cœur à max est de 100%. Donc, le maximum peut être number_of_cores × 100%.

Vous voudrez peut-être voir pourquoi votre application est à 400%.

4
ctrl-alt-delor