Подтвердить что ты не робот

Является ли MongoDB каким-то ограничением одного ядра?

Возможно, я каким-то образом сконфигурировал MongoDB, но даже при большой нагрузке я не вижу в нем более одного ядра. Например, сверху отображается верх:

Tasks: 145 total,   1 running, 144 sleeping,   0 stopped,   0 zombie
Cpu0  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu1  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu2  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu3  :100.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  41182768k total, 40987476k used,   195292k free,   109956k buffers
Swap:  2097144k total,  1740288k used,   356856k free, 28437928k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                         
16297 mongod    15   0  521g  18g  18g S 99.8 47.2   2929:32 mongod                                                                           
    1 root      15   0 10372  256  224 S  0.0  0.0   0:03.39 init      

Есть ли что-то, что я могу сделать, чтобы заставить Монго более эффективно использовать другие ядра? Если это актуально, у меня в настоящее время есть большой запуск M/R, который, кажется, поставил много запросов на чтение в режиме ожидания.

4b9b3361

Ответ 1

MongoDB может насыщать все ядра на многоядерной машине для операций чтения, но для операций записи и уменьшения количества карт MongoDB может использовать только один ядро ​​на процесс mongod.

Ограничение для одноядерного MapReduce связано с интерпретатором Javascript, который использует MongoDB. Это то, что должно быть исправлено в будущем, но в промежутке вы можете использовать Hadoop для выполнения MapReduce и сохранения набора результатов в базе данных MongoDB.

Другой вариант, который видел смешанные результаты, заключается в том, чтобы запустить один процесс mongod для каждого ядра в экземпляре, это не увеличит производительность для одной базы данных, если только они не настроены на запуск в оштукатуренной настройке.