16 núcleos não estão sendo utilizados de 80 núcleos

11

Recentemente, descobri que nosso servidor não utiliza mais todos os 80 segmentos no sistema. Parece que 16 núcleos estão sempre ociosos, apesar da alta carga do sistema.

É um servidor Dell powerEdge R900, com 4 soquetes, 4 vezes um Xeon de 10 núcleos. Então, 40 núcleos, com HT seus 80 segmentos. (CPU Intel (R) Xeon (R) E7-4850 @ 2.00GHz). Memória do sistema é 512GB Rodando o Ubuntu 14.04.1 LTS. Ainda não reiniciei o servidor, esperava evitar isso.

uname -a
Linux assembly 3.13.0-35-generic #62-Ubuntu SMP Fri Aug 15 01:58:42 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Eu vou verificar o seguinte:

Temperatura medida com i7z: (não é possível exibir 4 soquetes

Cpu speed from cpuinfo 1994.00Mhz
True Frequency (without accounting Turbo) 1994 MHz

Socket [0] - [physical cores=10, logical cores=20, max online cores ever=10]
  CPU Multiplier 15x || Bus clock frequency (BCLK) 132.93 MHz
  TURBO ENABLED on 10 Cores, Hyper Threading ON
  Max Frequency without considering Turbo 2126.93 MHz (132.93 x [16])
  Max TURBO Multiplier (if Enabled) with 1/2/3/4/5/6 cores is  0x/0x/0x/0x/0x/0x
  Real Current Frequency 1994.02 MHz (Max of below)
        Core [core-id]  :Actual Freq (Mult.)      C0%   Halt(C1)%  C3 %   C6 %  Temp
        Core 1 [1]:       1994.01 (15.00x)       100       0       0       0    75
        Core 2 [5]:       1994.00 (15.00x)       100       0       0       0    77
        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    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
  Max Frequency without considering Turbo 2126.93 MHz (132.93 x [16])
  Max TURBO Multiplier (if Enabled) with 1/2/3/4/5/6 cores is  0x/0x/0x/0x/0x/0x
  Real Current Frequency 1994.02 MHz (Max of below)
        Core [core-id]  :Actual Freq (Mult.)      C0%   Halt(C1)%  C3 %   C6 %  Temp
        Core 1 [1]:       1994.02 (15.00x)       100       0       0       0    74
        Core 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 = Processor running without halting00x)       100       0       0       0    75
C1 = Processor running with halts (States >C0 are power saver)     1       1    75
C3 = Cores running with PLL turned off and core cache turned off   0       0    73
C6 = Everything in C3 + core state saved to last level cache
  Above values in table are in percentage over the last 1 sec
[core-id] refers to core-id number in /proc/cpuinfo
'Garbage Values' message printed when garbage values are read
  Ctrl+C to exit

Idle: os últimos 16 núcleos são 100% ociosos:

mpstat -p ALL 1:
Average:     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
Average:     all   70.69    0.00    0.70    0.00    0.00    0.00    0.00    0.00    0.00   28.61
Average:       0   92.93    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    7.07
Average:       1   94.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    6.00
Average:       2  100.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
Average:      77    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
Average:      78    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
Average:      79    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

Números de carregamento principais:

top - 17:41:48 up 35 days,  6:28, 15 users,  load average: 77.69, 70.48, 62.73
Tasks: 1327 total,  44 running, 1281 sleeping,   2 stopped,   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+used,  2847524 free,   535660 buffers
KiB Swap: 78124032 total,  2105608 used, 76018416 free. 40637328+cached Mem

Às vezes, o% inativo não é mais 100, mas um pouco menos, como você pode ver aqui, mas a maioria fica 100% inativa.

Average:     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
Average:     all   70.69    0.00    0.70    0.00    0.00    0.00    0.00    0.00    0.00   28.61
Average:      64    0.13    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.87
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    2.63    0.00    0.00    0.00    0.00    0.00    0.00   97.37
Average:      67    0.00    0.00    0.13    0.13    0.00    0.00    0.00    0.00    0.00   99.75
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.12    0.00    0.00    0.00    0.00    0.00    0.00   99.88
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
Average:      77    0.00    0.00    0.13    0.00    0.00    0.00    0.00    0.00    0.00   99.87
Average:      78    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
Average:      79    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

Também executei este comando para me certificar de que estão todos online:

for COUNT in 'seq 01 79';do echo 1 > /sys/devices/system/cpu/cpu${COUNT}/online; 

Com o programa HTop, posso visualizar uma barra de uso de CPU por thread e ver 64 barras preenchidas e 16 vazias (as últimas 16).

Quando tento iniciar um processo em um núcleo, o > 63 também falha:

root@server:~# taskset -c 63 time
Usage: time [-apvV] [-f format] [-o file] [--append] [--verbose]
       [--portability] [--format=format] [--output=file] [--version]
       [--quiet] [--help] command [arg...]
root@server:~# taskset -c 64 time
taskset: failed to set pid 0's affinity: Invalid argument
root@server:~# taskset -c 65 time
taskset: failed to set pid 0's affinity: Invalid argument

Tópico relacionado: link

EDITAR: Acontece que os núcleos são desligados na hora, mas não são inicializados corretamente. Parece que há processos sendo executados nesses núcleos indisponíveis, mas é impossível iniciar qualquer novo processo neles. De acordo com o log dmesg, os núcleos são desativados e ativados rapidamente um após o outro. Eu tenho que dizer que foi a intenção de desligar esses núcleos, então desativamos esse 'recurso'. Registro de exemplo DMESG:

[Mon Jan 12 12:42:40 2015] kvm: disabling virtualization on CPU79
[Mon Jan 12 12:42:40 2015] smpboot: CPU 79 is now offline
....
[Mon Jan 12 12:43:12 2015] smpboot: Booting Node 0 Processor 79 APIC 0xf3
[Mon Jan 12 12:43:12 2015] kvm: enabling virtualization on CPU79

Ativamos / desativamos os núcleos por meio de:

for COUNT in 'seq 64 79';do echo 1 > /sys/devices/system/cpu/cpu${COUNT}/online;done

Nunca vinculamos esses comandos com nossos 16 núcleos indisponíveis, pois normalmente os comandos acima funcionam corretamente. (também tentamos desabilitar o powermanager, mas isso não ajudou)

    
por HenrivdGeest 17.10.2014 / 17:55

1 resposta

1

Nem todos os programas podem usar vários segmentos. php é um por exemplo. Se um processo php precisar de muito CPU, apenas 1 CPU estará no máximo. E os outros estarão ociosos.

    
por Carl 20.12.2016 / 15:27