Récemment, j'ai découvert que notre serveur n'utilisait plus les 80 threads du système. Il semble que 16 cœurs soient toujours inactifs, malgré la charge élevée du système.
C'est un serveur Dell powerEdge R900, avec 4 sockets, 4 fois un Xeon à 10 cœurs. Soit 40 cœurs, avec HT ses 80 fils. (Processeur Intel (R) Xeon (R) E7- 4850 à 2,00 GHz). La mémoire système est de 512 Go avec Ubuntu 14.04.1 LTS. Je n'ai pas encore redémarré le serveur, j'espérais éviter cela.
uname -a Assemblage Linux 3.13.0-35-générique # 62-Ubuntu SMP ven 15 août 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 comptabilité Turbo) 1994 MHz Socket [0] - [cœurs physiques = 10, cœurs logiques = 20, cœurs en ligne max jamais = 10] Multiplicateur CPU 15x || Fréquence d'horloge du bus (BCLK) 132,93 MHz TURBO ACTIVÉ sur 10 cœurs, Hyper Threading ON Fréquence maximale sans considérer Turbo 2126,93 MHz (132,93 x [16]) Le multiplicateur TURBO max (si activé) avec les cœurs 1/2/3/4/5/6 est 0x / 0x / 0x / 0x / 0x / 0x Fréquence actuelle réelle 1994,02 MHz (max. Ci-dessous) Core [core-id]: Fréq. Réelle (Mult.) C0% Halt (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,00x) 100 0 0 0 77 Noyau 5 [17]: 1994,00 (15,00x) 100 0 0 0 77 Noyau 6 [21]: 1994,00 (15,00x) 97,7 0,404 0 1,86 77 Noyau 7 [25]: 1994,00 (15,00x) 94,5 0 1 5,27 77 Noyau 8 [29]: 1994,00 (15,00x) 100 0 0 0 76 Noyau 9 [33]: 1994,00 (15,00x) 99,8 0 1 1 75 Noyau 10 [37]: 1994,00 (15,00x) 100 0 0 0 73 Fréquence maximale sans considérer Turbo 2126,93 MHz (132,93 x [16]) Le multiplicateur TURBO max (si activé) avec les cœurs 1/2/3/4/5/6 est 0x / 0x / 0x / 0x / 0x / 0x Fréquence actuelle réelle 1994,02 MHz (max. Ci-dessous) Core [core-id]: Fréq. Réelle (Mult.) C0% Halt (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 Noyau 3 [9]: 1994.02 (15.00x) 100 0 0 0 76 Noyau 4 [13]: 1994,00 (15,00x) 100 0 0 0 77 Noyau 5 [17]: 1994,00 (15,00x) 100 0 0 0 76 Noyau 6 [21]: 1994,00 (15,00x) 97 0 1 2,43 77 Noyau 7 [25]: 1994,00 (15,00x) 92,9 0 1 6,81 77 C0 = Processeur fonctionnant sans arrêt00x) 100 0 0 0 75 C1 = Processeur fonctionnant avec des arrêts (les états> C0 sont économiseurs d'énergie) 1 1 75 C3 = cœurs fonctionnant avec PLL désactivé et cache de cœur désactivé 0 0 73 C6 = Tout dans l'état de base C3 + enregistré dans le cache de dernier niveau Les valeurs ci-dessus dans le tableau sont en pourcentage au cours des 1 dernières secondes [core-id] fait référence au numéro de core-id dans / proc / cpuinfo Message «Valeurs de déchets» imprimé lors de la lecture des valeurs de déchets Ctrl + C pour quitter
Inactif: les 16 derniers cœurs sont tous 100% inactifs:
mpstat -p ALL 1: Moyenne: CPU% usr% nice% sys% iowait% irq% soft% steal% guest% gnice% idle Moyenne: toutes 70,69 0,00 0,70 0,00 0,00 0,00 0,00 0,00 0,00 28,61 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 0,00 6,00 Moyenne: 2100,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,08 0,00 0,00 0,00 0,00 0,00 0,00 14,58 Moyenne: 4100,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 Moyenne: 5100,00 0,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 100,00 Moyenne: 66 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00 Moyenne: 67 0,00 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 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 100,00 Moyenne: 70 0,00 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,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 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 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 100,00 Moyenne: 76 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00 Moyenne: 77 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00 Moyenne: 78 0,00 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 0,00 100,00
Numéros de chargement supérieurs:
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 arrêtés, 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é, 2847524 gratuit, 535660 tampons Échange KiB: 78124032 au total, 2105608 utilisé, 76018416 gratuit. 40637328 + Mem en cache
Parfois, le% inactif n'est plus de 100, mais un peu moins, comme vous pouvez le voir ici, mais surtout il reste à 100% inactif.
Moyenne: CPU% usr% nice% sys% iowait% irq% soft% steal% guest% gnice% idle Moyenne: toutes 70,69 0,00 0,70 0,00 0,00 0,00 0,00 0,00 0,00 28,61 Moyenne: 64 0,13 0,00 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 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 99,75 Moyenne: 68 0,00 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 100,00 Moyenne: 70 0,00 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 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 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 100,00 Moyenne: 76 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,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 0,00 100,00 Moyenne: 79 0,00 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`; faites echo 1> / sys / devices / system / cpu / cpu $ {COUNT} / en ligne;
Avec le programme HTop, je peux visualiser une barre d'utilisation du processeur par thread, et voir 64 barres remplies et 16 vides (les 16 dernières).
Lorsque j'essaie de démarrer un processus sur un noyau> 63, cela échoue également:
root @ server: ~ # tâcheset -c 63 fois Utilisation: heure [-apvV] [-f format] [-o fichier] [--append] [--verbose] [--portabilité] [--format = format] [--output = fichier] [--version] [--quiet] [--help] commande [arg ...] root @ server: ~ # tâcheset -c 64 fois ensemble de tâches: échec de la définition de l'affinité du pid 0: argument non valide root @ server: ~ # tâcheset -c 65 fois ensemble de tâches: échec de la définition de l'affinité du pid 0: argument non valide
Fil associé: /ubuntu/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 qu'il y ait des processus en cours d'exécution sur ces cœurs indisponibles, mais il est impossible de démarrer un nouveau processus sur eux. 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 c'était l'intention d'arrêter ces cœurs, nous avons donc désactivé cette «fonctionnalité». Exemple de journal DMESG:
[Lun 12 janvier 12:42:40 2015] kvm: désactivation de la virtualisation sur CPU79 [Lun 12 janvier 12:42:40 2015] smpboot: le CPU 79 est maintenant hors ligne .... [Lun. 12 janv. 12:43:12 2015] smpboot: Processeur de démarrage du nœud 0 79 APIC 0xf3 [Lun 12 jan 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`; faire echo 1> / sys / devices / system / cpu / cpu $ {COUNT} / online; done
Nous n'avons jamais lié 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é)
Réponses:
Tous les programmes ne peuvent pas utiliser plusieurs threads. php en est un par exemple. Si un processus php a besoin de beaucoup de CPU, seulement 1 CPU sera au maximum. Et les autres seront inactifs.
la source