web-dev-qa-db-fra.com

16 cœurs ne sont pas utilisés sur 80 cœurs

Récemment, j'ai découvert que notre serveur n'utilise plus les 80 threads du système. Il semble que 16 cœurs soient toujours inactifs, malgré la charge de système élevée.

C'est un serveur Dell PowerEdge R900, avec 4 prises, 4 fois un Xeon 10 cœurs. Donc 40 cœurs, avec ses 80 fils HT. (Processeur E7-4850 @ 2.00GHz pour Intel (X) Xeon (MD)). La mémoire système est de 512 Go sous Ubuntu 14.04.1 LTS. Je n'ai pas encore redémarré le serveur, j'espérais éviter cela.

 uname -a 
 Linux Assembly 3.13.0-35-generic # 62-Ubuntu SMP ven. août 15 01:58:42 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux 

Je vérifie les points suivants:

Température mesurée avec i7z: (il ne peut pas afficher 4 prises

 Vitesse du processeur de cpuinfo 1994.00Mhz 
 Fréquence vraie (sans comptabilisation Turbo) 1994 MHz 
 
 Socket [0] - [Cœurs physiques = 10, Cœurs logiques = 20 , nombre maximum de cœurs en ligne = 10] 
 Multiplicateur de processeur 15x || Fréquence d'horloge de bus (BCLK) 132,93 MHz 
 TURBO ACTIVE sur 10 cœurs, Hyper Threading ON 
 Fréquence maximale sans tenir compte de la fréquence Turbo 2126,93 MHz (132,93 x [16]) 
 (Multiplicateur TURBO maximal) si activé) avec les cœurs 1/2/3/4/5/6 est 0x/0x/0x/0x/0x/0x 
 Fréquence du courant réel 1994.02 MHz (Max de ci-dessous) 
 Noyau [ core-id]: Fréq réelle (Mult.) C0% Arrêt (C1)% C3% C6% Temp 
 Noyau 1 [1]: 1994.01 (15.00x) 100 0 0 0 75 
 Noyau 2 [5]: 1994.00 (15.00x) 100 0 0 0 77 
 Noyau 3 [9]: 1994.02 (15.00x) 100 0 0 0 76 
 Noyau 4 [13]: 1994.00 (15.00 €) x) 100 0 0 0 77 
 Core 5 [17]: 1994,00 (15,00x) 100 0 0 0 77 
 Core 6 [21]: 1994,00 (15,00x) 97,7 0,404 0 1,86 77 
 Core 7 [25]: 1994,00 (15,00x) 94.5 0 1 5.27 77 
 Core 8 [29]: 1994,00 (15,00x) 100 0 0 0 76 
 Core 9 [33]: 1994,00 (15,00x) 99,8 0 1 1 75 
 Core 10 [37]: 1994,00 (15,00x) 100 0 0 0 73 
 Fréquence max. Sans tenir compte de la fréquence Turbo 2126,93 MHz (132,93 x [16]) 
 Multiplicateur TURBO maximal (si activé) avec Les cœurs 1/2/3/4/5/6 sont 0x/0x/0x/0x/0x/0x 
 Fréquence du courant réel 1994.02 MHz (valeur maximale ci-dessous) 
 Noyau [identifiant principal] : Fréquence réelle (Mult.) C0% Arrêt (C1)% C3% C6% Temp 
 Noyau 1 [1]: 1994.02 (15.00x) 100 0 0 0 74 
 Noyau 2 [5] : 1994.00 (15.00x) 100 0 0 0 76 
 Core 3 [9]: 1994.02 (15.00x) 100 0 0 0 76 
 Core 4 [13]: 1994.00 (15.00x) 100 0 0 0 77 
 Core 5 [17]: 1994.00 (15.00x) 100 0 0 0 76 
 Core 6 [21]: 1994.00 (15.00x) 97 0 1 2.43 77 
 Core 7 [25]: 1994.00 ( 15.00x) 92.9 0 1 6.81 77 
 C0 = Processeur en marche sans arrêt00x) 100 0 0 0 75 
 C1 = Processeur en marche avec arrêts (les états> C0 permettent d'économiser de l'énergie) 1 1 75 
 C3 = Les cœurs exécutés avec la PLL désactivée et le cache principal désactivé 0 0 73 
 C6 = Tout dans l'état C3 + enregistré dans le cache de dernier niveau 
 Les valeurs ci-dessus dans la table sont exprimées en pourcentage par rapport au La dernière 1 seconde 
 [core-id] fait référence au numéro de core-id dans /proc/cpuinfo
 'Message de valeurs de Garbage' affiché lors de la lecture de valeurs de mémoire 
 Ctrl + C pour quitter 
 

Inactif: les 16 derniers cœurs sont tous inactifs à 100%:

 mpstat -p ALL 1: 
 Moyenne:% processeur% Nice% sys% iowait% irq% doux% voler% invité% gnice% inactif 
 Moyenne: tous 70,69 0,00 0,70 0.00 0.00 0.00 0.00 0.00 0.00 0.00 [0.00] 
 Moyenne: 0 92.93 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 7.07 
 Moyenne: 1 94.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 [0.00] [moyenne]: 2 100,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 [0,00] Moyenne: 3 83,33 0,00 2,0 2,0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 [0,00]. .] Moyenne: 5 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 
 .............................. ............................ 
 Moyenne: 64 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0. 00 0.00 0.00 100.00 
 Moyenne: 65 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 [0.00] 
 Moyenne: 66 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 [0.00] 
 Moyenne: 67 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 
 Moyenne: 68 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 
 Moyenne: 69 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 [0.00] : 70 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 
 Moyenne: 71 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 
 Moyenne: 72 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 
 Moyenne: 73 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00 
 Moyenne: 74 0,00 0. 00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 
 Moyenne: 75 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 [0.00] Moyenne: 76 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00. Moyenne: 77 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 [0.00] Moyenne: 78 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 
 Moyenne: 79 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 .____.]

Nombre de charge maximale:

 top - 17:41:48 jusqu'à 35 jours, 6:28, 15 utilisateurs, charge moyenne: 77,69, 70,48, 62,73 
 Tâches: 1327 au total, 44 en cours d'exécution, 1281 en sommeil, 2 à l'arrêt, 0 zombie 
% Cpu (s): 63.7 us, 13.6 sy, 0.0 ni, 22.3 id, 0.2 wa, 0.0 hi, 0.2 si, 0.0 st 
 KiB Mem: 52837942 + total, 52553190+ utilisé, gratuit 2847524, tampons 535660 
 KiB Swap: 78124032 total, 2105608 utilisé, 76018416 gratuit. 40637328 + Mem en cache 

Parfois, le pourcentage d'inactivité n'est plus de 100, mais un peu moins, comme vous pouvez le voir ici, mais la plupart du temps, il reste à 100% d'inactivité.

 Moyenne: CPU% usr% Nice% sys% iowait% irq% soft% voler% guest% gnice% inactif 
 Moyenne: toutes 70,69 0,00 0,70 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 28,00 
 Moyenne: 64 0,13 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 99,87 
 Moyenne: 65 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00 
 Moyenne: 66 0,00 0,00 2,63 0,00 0,00 0,00 0,00 0,00 0,00 97,37 
 Moyenne: 67 0,00 0,00 0,13 0,13 0,00 0,00 0,00 0,00 0,00 0,00 99,75 
 Moyenne: 68 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00 
 Moyenne: 69 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0.00 0.00 0.00 100.00 
 Moyenne: 70 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 
 Moyenne: 71 0.00 0.00 0.12 0.00 0.00 0.00 0.00 0.00 0.00 99.88 
 Moyenne: 72 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 [0.00] 
 Moyenne: 73 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 [0.00] 
 Moyenne: 74 0,00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 
 Moyenne: 75 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 [0.00] Moyenne: 76 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00. Moyenne: 77 0,00 0,00 0,13 0,00 0,00 0,00 0,00 0,00 0,00 99,87 
 Moyenne: 78 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00 
 Moyenne: 79 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00 
 

J'ai également exécuté cette commande pour m'assurer qu'ils sont tous en ligne:

 pour COUNT dans `seq 01 79`; echo 1>/sys/devices/system/cpu/cpu $ {COUNT}/en ligne; 

Avec le programme HTop, je peux visualiser une barre d'utilisation de l'unité centrale par thread, et voir 64 barres remplies et 16 vides (les 16 dernières).

Lorsque j'essaie de démarrer un processus sur un cœur> 63 échoue également:

 root @ server: ~ # taskset -c 63 heure 
 utilisation: heure [-apvV] [format -f] [-o fichier] [--append] [--verbose] 
 [--portability] [--format = format] [--output = file] [--version] 
 [--quiet] [--help] commande [arg ...] 
 root @ server: ~ # taskset -c 64 time 
 taskset: échec de la définition de l'affinité du pid 0: argument invalide 
 root @ server: ~ # taskset -c 65 time 
 taskset: échec de la définition de l'affinité du pid 0: argument invalide 

Sujet connexe: https://askubuntu.com/questions/536541/ubuntu-uses-only-2-out-of-4-processor-cores

EDIT: Il s’avère que les cœurs sont arrêtés à la volée, mais ne démarrent pas correctement. Il semble que des processus s'exécutent sur ces cœurs indisponibles, mais il est impossible de démarrer un nouveau processus sur ceux-ci. Selon le journal dmesg, les cœurs sont désactivés et activés rapidement les uns après les autres. Je dois dire que l'intention était de fermer ces cœurs, nous avons donc désactivé cette "fonctionnalité". Exemple de journal DMESG:

 [Lun 12 janv. 12:42:40 2015] kvm: désactivation de la virtualisation sur le processeur79 
 [Lun 12 janv. 12:42:40 2015] smpboot: le processeur 79 est maintenant hors ligne 
 .... 
 [Lundi 12 janvier 12:43:12 2015] smpboot: Amorçage Node 0 Processeur 79 APIC 0xf3 
 [Lundi 12 janvier 12:43:12 2015 ] kvm: activation de la virtualisation sur CPU79 
 

Nous activons/désactivons les cœurs via:

 pour COUNT dans `seq 64 79`; echo 1> /sys/devices/system/cpu/cpu${COUNT}/online;done

Nous n'avons jamais associé ces commandes à nos 16 cœurs indisponibles, car normalement les commandes ci-dessus fonctionnent correctement. (nous avons également essayé de désactiver powermanager, mais cela n'a pas aidé)

11
HenrivdGeest

Tous les programmes ne peuvent pas utiliser plusieurs threads. php est un par exemple. Si un processus php nécessite beaucoup de ressources processeur, un seul processeur sera au maximum. Et les autres seront oisifs.

1
Carl