Como posso saber se o NUMA está habilitado em um servidor MongoDB?

3

Nosso processo mongodb usa consistentemente > 100% de nossa CPU (isso é em um servidor Ubuntu de 64 bits no Linode) e estamos buscando aperfeiçoamentos de desempenho.

Uma sugestão que encontramos foi que o MongoDB e o NUMA não funcionam bem juntos: link

Noto que /proc/sys/vm/zone_reclaim_mode já está definido como 0 e numctl não está instalado no momento.

Minha pergunta: Como descubro se nosso servidor já está habilitado para NUMA e se devemos seguir o conselho no link acima para iniciar o Mongo com o seguinte comando?

numactl --interleave=all /usr/bin/local/mongod

Aqui está o conteúdo de /proc/cpuinfo (com as 3 primeiras seções suprimidas, já que a saída é idêntica, exceto pelas linhas "processador"):

processor       : 3
vendor_id       : GenuineIntel
cpu family      : 6
model           : 45
model name      : Intel(R) Xeon(R) CPU E5-2650L 0 @ 1.80GHz
stepping        : 7
microcode       : 0x70a
cpu MHz         : 1800.077
cache size      : 20480 KB
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 4
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu de tsc msr pae cx8 sep cmov pat clflush mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good nopl nonstop_tsc pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes hypervisor lahf_lm ida arat epb pln pts dtherm
bogomips        : 3600.15
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:
    
por dreeves 22.01.2013 / 00:53

1 resposta

6

dmesg | grep -i numa

Isso lhe dirá se o seu servidor está em uma habilitação.

numactl -s informará se o num está habilitado por processo.

Se os nós de produção não devem usar numa, então você provavelmente não deveria. Eu sugeriria, em vez de confiar em desativá-lo via numactl, você pode e provavelmente deve normalmente desativar uma opção na BIOS.

Eu já vi um desempenho de servidor completamente ruim antes com outros aplicativos Java quando estava fazendo alguns testes de desempenho. Para vê-lo estragar um aplicativo C / C ++ como o Mongo é surpreendente!

Gostaria de divulgar que o seu problema original é diferente da sua pergunta. Alterar as configurações de uma pode não resolver seu problema de 100% da CPU. Você pode descobrir depois de eliminar a placa numa, você ainda tem 100% de uso da CPU, o que exigirá mais diagnósticos para chegar à raiz do problema (thread separado talvez).

    
por 22.01.2013 / 01:23