16 ядер не використовуються з 80 ядер


11

Нещодавно я виявив, що наш сервер вже не використовує всі 80 потоків у системі. Схоже, що 16 ядер завжди простоюють, незважаючи на велике завантаження системи.

Це сервер Dell powerEdge R900, який має 4 розетки, 4 рази 10-ядерний Xeon. Таким чином, 40 ядер, HT має 80 ниток. (Intel (R) Xeon (CP) процесор E7- 4850 при 2,00 ГГц). Системна пам'ять - 512 Гб, що працює на Ubuntu 14.04.1 LTS. Я ще не перезавантажував сервер, я сподівався цього уникнути.

унаме -а
Linux збори 3.13.0-35-generic # 62-Ubuntu SMP Пт 15 серпня 01:58:42 UTC 2014 x86_64 x86_64 x86_64 GNU / Linux

Я перевірю наступне:

Температура, виміряна за допомогою i7z: (вона не може відображати 4 розетки

Швидкість процесора від cpuinfo 1994.00Mhz
Справжня частота (без обліку Turbo) 1994 МГц

Socket [0] - [фізичні ядра = 10, логічні ядра = 20, максимум онлайн-ядер колись = 10]
  Множник процесора 15x || Тактова частота шини (BCLK) 132,93 МГц
  TURBO ВКЛЮЧЕНО на 10 ядрах, Hyper Threading ON
  Максимальна частота без врахування Turbo 2126,93 МГц (132,93 x [16])
  Максимальний множник TURBO (якщо він включений) з ядрами 1/2/3/4/5/6 становить 0x / 0x / 0x / 0x / 0x / 0x
  Реальна поточна частота 1994.02 МГц (макс. Нижче)
        Основна [core-id]: фактична частота (мульти.) C0% зупинка (C1)% C3% C6% темп.
        Основна 1 [1]: 1994.01 (15.00x) 100 0 0 0 75
        Ядро 2 [5]: 1994,00 (15,00x) 100 0 0 0 77
        Ядро 3 [9]: 1994.02 (15.00x) 100 0 0 0 76
        Ядро 4 [13]: 1994,00 (15,00x) 100 0 0 0 77
        Ядро 5 [17]: 1994,00 (15,00x) 100 0 0 0 77
        Ядро 6 [21]: 1994,00 (15,00x) 97,7 0,404 0 1,86 77
        Ядро 7 [25]: 1994,00 (15,00x) 94,5 0 1 5,27 77
        Основна 8 [29]: 1994.00 (15.00x) 100 0 0 0 76
        Ядро 9 [33]: 1994,00 (15,00x) 99,8 0 1 1 75
        Ядро 10 [37]: 1994,00 (15,00x) 100 0 0 0 73
  Максимальна частота без врахування Turbo 2126,93 МГц (132,93 x [16])
  Максимальний множник TURBO (якщо він включений) з ядрами 1/2/3/4/5/6 становить 0x / 0x / 0x / 0x / 0x / 0x
  Реальна поточна частота 1994.02 МГц (макс. Нижче)
        Основна [core-id]: фактична частота (мульти.) C0% зупинка (C1)% C3% C6% темп.
        Основна 1 [1]: 1994.02 (15.00x) 100 0 0 0 74
        Ядро 2 [5]: 1994,00 (15,00x) 100 0 0 0 76
        Ядро 3 [9]: 1994.02 (15.00x) 100 0 0 0 76
        Ядро 4 [13]: 1994,00 (15,00x) 100 0 0 0 77
        Ядро 5 [17]: 1994,00 (15,00x) 100 0 0 0 76
        Ядро 6 [21]: 1994,00 (15,00x) 97 0 1 2,43 77
        Ядро 7 [25]: 1994,00 (15,00x) 92,9 0 1 6,81 77
C0 = Процесор працює без зупинки00x) 100 0 0 0 75
C1 = Процесор, що працює з зупинками (штати> C0 - це економія енергії) 1 1 75
C3 = Ядра, що працюють з PLL вимкнено, а кеш ядра вимкнено 0 0 73
C6 = Все, що знаходиться в ядрі C3 +, збережено до кешу останнього рівня
  Наведені вище значення в таблиці наведені у відсотках за останні 1 сек
[core-id] позначає номер core-id в / proc / cpuinfo
Повідомлення "Значення сміття" друкується під час зчитування значень сміття
  Ctrl + C для виходу

Холостий: Останні 16 ядер на 100% простоюють:

mpstat -p ВСЕ 1:
Середня: CPU% usr% nice% sys% iowait% irq% soft% вкрасти% guest% gnice% простою
Середній: всі 70,69 0,00 0,70 0,00 0,00 0,00 0,00 0,00 0,00 28,61
Середнє значення: 0 92,93 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 7,07
Середня: 1 94,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 6,00
Середня: 2 100,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
Average:       3   83.33    0.00    2.08    0.00    0.00    0.00    0.00    0.00    0.00   14.58
Average:       4  100.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00
Average:       5  100.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00
..........................................................
Average:      64    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
Average:      65    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
Average:      66    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
Average:      67    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
Average:      68    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
Average:      69    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
Average:      70    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
Average:      71    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
Average:      72    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
Average:      73    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
Average:      74    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
Average:      75    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
Average:      76    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
Середнє значення: 77 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Середній: 78 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Середній: 79 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00

Найвищі номери завантаження:

верх - 17:41:48 до 35 днів, 6:28, 15 користувачів, середнє завантаження: 77,69, 70,48, 62,73
Завдання: 1327 всього, 44 біг, 1281 сон, 2 зупинки, 0 зомбі
% 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 + всього, 52553190 + б / в, 2847524 безкоштовно, 535660 буферів
KiB Swap: 78124032 всього, 2105608 б / в, 76018416 безкоштовно. 40637328 + кеш-пам

Іноді простою% вже не 100, але трохи менше, як ви бачите тут, але в основному він залишається на 100% простої.

Середня: CPU% usr% nice% sys% iowait% irq% soft% вкрасти% guest% gnice% простою
Середній: всі 70,69 0,00 0,70 0,00 0,00 0,00 0,00 0,00 0,00 28,61
Середня: 64 0,13 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 99,87
Середнє значення: 65 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Середня: 66 0,00 0,00 2,63 0,00 0,00 0,00 0,00 0,00 0,00 97,37
Середній: 67 0,00 0,00 0,13 0,13 0,00 0,00 0,00 0,00 0,00 99,75
Середнє значення: 68 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Середнє значення: 69 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Середній: 70 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Середній: 71 0,00 0,00 0,12 0,00 0,00 0,00 0,00 0,00 0,00 99,88
Середнє значення: 72 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Середнє значення: 73 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Середній: 74 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Середня: 75 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Середня: 76 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Середня: 77 0,00 0,00 0,13 0,00 0,00 0,00 0,00 0,00 0,00 99,87
Середній: 78 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00
Середній: 79 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 100,00

Я також запустив цю команду, щоб переконатися, що вони всі в Інтернеті:

для COUNT у `seq 01 79 '; виконайте echo 1> / sys / devices / system / cpu / cpu $ {COUNT} / онлайн; 

За допомогою програми HTop я можу візуалізувати смугу використання процесора на один потік, і я бачу 64 заповнені бари та 16 порожніх (останні 16).

Коли я намагаюся запустити процес в ядрі> 63, це також не вдається:

root @ server: ~ # taskset -c 63 час
Використання: час [-apvV] [формат -f] [-o файл] [--додаток] [--вербоза]
       [--portability] [--format = format] [--output = файл] [--версія]
       [--quiet] [--help] команда [arg ...]
root @ server: ~ # taskset -c 64 час
набір завдань: не вдалося встановити спорідненість pid 0: Недійсний аргумент
root @ server: ~ # taskset -c 65 раз
набір завдань: не вдалося встановити спорідненість pid 0: Недійсний аргумент

Пов’язана тема: /ubuntu/536541/ubuntu-uses-only-2-out-of-4-processor-cores

EDIT: Виявляється, що ядра вимикаються на льоту, але не запускаються належним чином. Здається, що на цих недоступних ядрах працюють процеси, але неможливо запустити будь-який новий процес на них. Відповідно до журналу dmesg, ядра вимикаються та вмикаються швидко один за одним. Я мушу сказати, що наміром було відключити ці ядра, тому ми відключили цю «функцію». Журнал прикладу DMESG:

[Пн 12 січня 12:42:40 2015] kvm: відключення віртуалізації на CPU79
[Пн 12 січня 12:42:40 2015] smpboot: CPU 79 зараз в автономному режимі
….
[Пн 12 січня 12:43:12 2015] smpboot: завантажувальний вузол 0 Процесор 79 APIC 0xf3
[Пн 12 січня 12:43:12 2015] kvm: включення віртуалізації в CPU79

Ми вмикаємо / вимикаємо ядра за допомогою:

для COUNT у `seq 64 79 '; зробіть echo 1> / sys / devices / system / cpu / cpu $ {COUNT} / онлайн; зроблено

Ми ніколи не пов'язували ці команди з нашими 16 недоступними ядрами, оскільки зазвичай команди вище працюють належним чином. (ми також намагалися вимкнути Powermanager, але це не допомогло)


1
Чому ви або ваша компанія не працювали з сервером Ubuntu, а не Ubuntu для звичайних ПК?
XperianX

1
Це не неможливо, що 16 ваших ядер фактично використовуються для ємності MAX, залишаючи 16 віртуальних ядер без корисного запасу.
анонімний2

1
Чи всі 8 ядер (16 віртуальних) на одному фізичному процесорі, або вони розкинуті по всіх 4 сокетах? Якщо вони розташовані на одному фізичному процесорі, чи можливо ці ядра вийшли з ладу?
Jibberish51

2
Мені цікаво, чи десь у системі є код, який представляє маску спорідненості процесора із всього 64 бітами, що заважає процесам використовувати останні 16 ядер.
kasperd

Враховуючи, що 80-16 = 64, мені здається, що існує деяка штучна межа десь на максимальну кількість ядер, які слід використовувати. Можливо, будь-яке програмне забезпечення, яке ви працюєте, встановлене не більше 64 ядер, або, можливо, воно не може генерувати більше 64 потоків.
Клонке

Відповіді:


1

Не всі програми можуть використовувати декілька потоків. Наприклад, php. Якщо одному процесору PHP потрібно багато процесора, максимум вийде лише 1 процесор. А інші будуть простоювати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.