LINUX.ORG.RU

linux использует только часть процессоров

 , , ,


1

5

Имеется восьмипроцессорный сервер. Каждый процессор по 10 ядер, итого 80 физических ядер. ОС Oracle Linux Server release 6.7, ядро 3.8.13-98.2.1.el6uek.x86_64

Проблема в том, что ОС использует только два процессора из 8, что видно из вывода htop: http://prntscr.com/im9tow

При этом lscpu говорит что все ядра задействованы:

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                160
On-line CPU(s) list:   0-159
Thread(s) per core:    2
Core(s) per socket:    10
Socket(s):             8
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 47
Stepping:              2
CPU MHz:               2393.990
BogoMIPS:              4787.90
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              30720K
NUMA node0 CPU(s):     0-159

Пробовал запустить

strees -c 80
количество задействованных ядер не изменилось, только выросла la. Не знаю куда копать. Признателен за любую помощь. Спасибо.

Так может приложение, создающее нагрузку на CPU, всего 40 потоков создало? 40 потоками 160 cpu не утилизируешь.

А может это Oracle Database Standard Edition? Он вроде максимум до 2 сокетов на хост по EULA. Может специально affinity mask выставлять, чтоб ядро его только на ядра двух сокетов шедулило.

Хотя ты говоришь stress тоже не все сокеты использует. В любом случае посмотреть affinity mask процессов командой taskset -c -p PID полезно. Вдруг Oracle Linux какую ерунду делает.

iliyap ★★★★ ()
Последнее исправление: iliyap (всего исправлений: 1)
Ответ на: комментарий от iliyap

Дело в том, что под боевой нагрузкой сервер ложится, la доходит до значений 200+ и машина «уходит в себя». Крутится там БД Oracle НЕ стандарт, потоков однозначно больше 40 хочет/может создать.

посмотреть affinity mask процессов командой taskset -c -p PID полезно

Спасибо за наводку, но, увы

 current affinity list: 0-159 

ivleon ()
Ответ на: комментарий от ivleon

в dmesg какой-то power management:

ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8)

Не знаю что оно такое, просто в глаза бросилось.

И еще

Performance Events: PEBS fmt1+, 16-deep LBR, Westmere events, Broken BIOS detected, complain to your hardware vendor.
[Firmware Bug]: the BIOS has corrupted hw-PMU resources (MSR 38d is 330)

KennyMinigun ★★★★★ ()
Ответ на: комментарий от ivleon

А если numa=on? Хотя стой бро. numa=off это воркэраунд, но ни как не переключение на UMA. Зайди в BIOS сервера и найти опцию Node Interleaving и переключи её (enable - numa, disable - uma). Бывает еще опция NUMA group Optimization, там параметры clustered и flat.

И обновления прошивок HP должны стоять обязательно!

steemandlinux ★★★★★ ()
Последнее исправление: steemandlinux (всего исправлений: 2)

ядро 3.8.13-98.2.1.el6uek.x86_64

Есть возможность для проверки поставить redhat ядро или лучше другой дистрибутив?

Те, кто в oracle занимаются линуксом - рукожопы. Я бы поставил на то, что они и тут накосячили

router ★★★★★ ()
Последнее исправление: router (всего исправлений: 1)
Ответ на: комментарий от anonymous

У меня el7 нормально дрючит четыре Xeon E5450.

Так то el, а у него uek. Собирать ядро в oracle не умеют, но очень любят. На прошлой работа сталкивался с тем, что в oracle linux на uek ядре не работает ( вообще ) fuse, а при поднятии любого туннеля ( vpn, gre что угодно ) получается kernel panic

router ★★★★★ ()
Ответ на: комментарий от ivleon

Вообще судя потому что у тебя осталось 2, а не 1 живых процессора. То скорее всего сейчас настроено как:

Node Interleaving enable

NUMA group Optimization clustered

Т.е. HP делает вид что у тебя система из 4 процессоров, а не 8. А опция numa=off отключила 3 из 4.

Короче настройки биоса кривые + хак numa=off стоит.

steemandlinux ★★★★★ ()
Ответ на: комментарий от steemandlinux

Удалось, наконец, поработать с этой машиной.

До перезагрузки было обновлено ядро ОС. В биосе выставил вручную количество задействованных ядер на CPU (опция Enhanced Processor Core Disable (Intel Core Select)).

После загрузки в ОС все ядра стали функционировать, stress -c 160, соответственно, нагрузил их все. Доподлинно сказать, что именно помогло не могу.

З.Ы. опция Node Interleaving на HP G7 оказалась недоступна.

Всем спасибо за помощь.

ivleon ()