GNU/Linux >> Tutoriels Linux >  >> Linux

Top indique 100 % de CPU utilisé, mais 50 % de cœurs inactifs ?

Pour développer la réponse de Max :les processeurs avec hyperthreading signalent deux cœurs au système d'exploitation alors qu'il n'y a vraiment qu'un seul cœur physique. Linux voit 4 cœurs, mais votre processeur a 2 cœurs physiques.

Le cœur physique a des capacités d'ordonnancement avancées et quelques transistors supplémentaires pour gérer le deuxième thread, mais pour de nombreuses applications gourmandes en ressources processeur, l'hyperthreading n'offre pas d'avantage réel.

Dans mon domaine, nous évaluons les applications qui s'exécuteront sur un système et désactivons l'hyperthreading dans le BIOS s'il entrave les performances.

MODIFIER :

Si je charge la moitié des cœurs en utilisant cat /dev/urandom > /dev/null voici ce que j'obtiens sur un Xeon moderne exécutant CentOS 6 :

top - 19:32:38 up 1 day,  8:17,  3 users,  load average: 12.13, 8.73, 4.07
Tasks: 694 total,  13 running, 681 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us, 50.4%sy,  0.0%ni, 49.6%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  49552656k total,  2693452k used, 46859204k free,   186448k buffers
Swap: 15999992k total,        0k used, 15999992k free,   469560k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                           
21193 root      20   0 98.5m  560  452 R 100.0  0.0   6:23.31 cat                                                                                               
21194 root      20   0 98.5m  560  452 R 100.0  0.0   6:22.76 cat                                                                                               
21195 root      20   0 98.5m  560  452 R 100.0  0.0   6:22.38 cat                                                                                               
21201 root      20   0 98.5m  560  452 R 100.0  0.0   6:21.98 cat                                                                                               
21202 root      20   0 98.5m  560  452 R 100.0  0.0   6:21.62 cat                                                                                               
21203 root      20   0 98.5m  560  452 R 100.0  0.0   6:21.36 cat                                                                                               
21206 root      20   0 98.5m  560  452 R 100.0  0.0   6:20.43 cat                                                                                               
21187 root      20   0 98.5m  560  452 R 99.6  0.0   6:24.45 cat                                                                                                
21204 root      20   0 98.5m  560  452 R 99.6  0.0   6:21.03 cat                                                                                                
21205 root      20   0 98.5m  560  452 R 99.6  0.0   6:20.73 cat                                                                                                
21213 root      20   0 98.5m  560  452 R 99.6  0.0   6:20.09 cat                                                                                                
21214 root      20   0 98.5m  560  452 R 99.6  0.0   6:19.70 cat

Cela fait plus de quatre ans, et pour être honnête, j'ai complètement oublié cette question et je ne suis revenue que parce que j'ai vu que j'avais reçu une question notable badge pour cela.

Le problème était tangentiel lié à l'hyperthreading, mais comme je l'ai continuellement souligné aux intervenants, ce n'était pas la cause de la marche au ralenti à 50 %.

La cause était liée à une configuration incorrecte des ticks dynamiques du noyau. J'utilisais Gentoo et j'utilisais un noyau personnalisé. Après avoir mis à jour le noyau, vers la mi-2012, le problème s'est résolu de lui-même.


Linux
  1. Détecter les processus mangeant le CPU sans :Top, Htop, Ps ?

  2. Résoudre les problèmes d'utilisation élevée du processeur sur Windows Server

  3. kipmi0 IPMI Kernel Helper 99 % / 100 % d'utilisation élevée du processeur (mais moyenne de charge faible)

  4. Obtenir l'utilisation du processeur dans le script shell ?

  5. Le processus vmlinuz s'exécute sur 100 % du processeur

Conseils pour le haut :surveiller la charge du processeur sous Linux

Comment trouver les commandes les plus utilisées sous Linux

Comment créer une charge CPU à 100 % sur un système Linux

Alors, que sont les cœurs de processeur logiques (par opposition aux cœurs de processeur physiques) ?

Ubuntu dit 13.04 mais Lsb_release dit 12.10 ?

Utilisation élevée du processeur mais faible charge moyenne