Команда обновления $ unset съедает всех оперативной памяти в большой коллекции - PullRequest
0 голосов
/ 15 февраля 2011

Используя MongoDB, я пытаюсь удалить столбец из коллекции, содержащей ~ 3 миллиона записей.

db.Listing.update( {}, { $unset: { Longitude: 1 } }, false, true);

Когда я выполняю эту команду, объем оперативной памяти на сервере продолжает увеличиваться дозаканчивается ОЗУ, а затем сервер подключен и нуждается в физической перезагрузке.Есть ли лучший способ удалить столбец из большой коллекции, который не будет использовать сервер?

1 Ответ

0 голосов
/ 15 февраля 2011

Я ожидаю, что ваша проблема - системный убийца OOM. Вы должны убедиться, что вы не ограничиваете ресурсы для mongod. Смотрите это: http://www.mongodb.org/display/DOCS/Checking+Server+Memory+Usage

http://prefetch.net/blog/index.php/2009/09/30/how-the-linux-oom-killer-works/

Если вы используете вирт. В системе, подобной openvz, вы можете захотеть остановить ее или настроить функцию чрезмерной фиксации.

...