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é)
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.