Наш процесс mongodb постоянно использует> 100% нашего процессора (это на 64-битном сервере Ubuntu на Linode), и мы стремимся улучшить производительность.
Мы обнаружили одно предположение, что MongoDB и NUMA плохо работают вместе: http://docs.mongodb.org/manual/administration/production-notes/#production-numa
Я замечаю это /proc/sys/vm/zone_reclaim_mode
уже установлен на 0, а numactl в настоящее время не установлен.
Мой вопрос: как мне узнать, поддерживает ли наш сервер уже NUMA, и следует ли следовать совету по указанной выше ссылке, чтобы запустить Mongo с помощью следующей команды?
numactl --interleave=all /usr/bin/local/mongod
Вот содержание /proc/cpuinfo
(первые 3 раздела подавлены, поскольку вывод идентичен, за исключением строк "процессор"):
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:
dmesg | grep -i numa
Это скажет вам, включен ли ваш сервер numa.
numactl -s сообщит вам, включена ли numa для каждого процесса.
Если производственные узлы не должны использовать numa, то, вероятно, и вам не следует. Я бы посоветовал вместо того, чтобы полагаться на выключение через numactl, вы можете и, вероятно, обычно должны полностью выключить numa через BIOS.
Я видел, как numa полностью снижала производительность сервера с другими приложениями Java, когда проводил тесты производительности. Удивительно видеть, как он проваливает приложение C / C ++, такое как Mongo!
Я хотел бы сообщить, что ваша первоначальная проблема отличается от вашего вопроса. Изменение настроек numa может не решить вашу 100% проблему с процессором. Вы можете обнаружить, что после удаления карты numa у вас все еще есть 100% использование процессора, что потребует дополнительной диагностики, чтобы добраться до корня проблемы (возможно, отдельный поток).