MongoDB использует только одно ядро? Все запросы зависают, когда есть длительный запрос $near

В моей базе 1 миллион геоданных и 20% из них [0,0]

Я запускаю простой запрос db.test.find({lc:{$near:[0,0]}}), который очень медленный. Это стоит около 20~30 секунд, потому что данные будут отсортированы с операцией $near. Загрузка ЦП определенно возрастет до 100%.

Я слышал, что mongodb уже поддерживает многоядерность, но когда запущен гео-запрос, я запустил другую оболочку mongo и ввел очень простой запрос db.test1.find().limit(1) (обратите внимание, что я даже использую другую коллекцию), он застрял. Результат вышел только после завершения моего гео-запроса.

Я в замешательстве, кажется, что mongodb поддерживает только одно ядро ​​​​для длительной операции чтения. Это правда? Я использую монго 2.4.5


edit: даже если я использую другую базу данных, она все равно застрянет.

редактировать: я использую iostat -xm 2, когда выполняется длинный запрос, все дисковые операции ввода-вывода останавливаются, %util почти 0. Использование памяти составляет около 12%. Поэтому я почти уверен, что это состояние вызвано высокой загрузкой ЦП.


person Mark_H    schedule 31.10.2013    source источник


Ответы (1)


Теперь это подтверждено как ошибка. https://jira.mongodb.org/browse/SERVER-11516

person Mark_H    schedule 03.12.2013