У нас это было пару недель назад, и mongo не перезапускался. У нас 30 ГБ ОЗУ. Файл подкачки изначально имел размер 4 ГБ. Когда мы впервые столкнулись с этим пару недель назад, мы увеличили размер файла подкачки до 12 ГБ минимум / 25 ГБ максимум.
Затем несколько дней назад ... сервер снова отключился:
2014-10-01T00:24:05.664-0500 [conn3421] insert dotnetwrapper_mongodb.LogItem ninserted:1 keyUpdates:0 numYields:0 locks(micros) w:1814629 1818ms
2014-10-01T00:24:05.914-0500 [conn3419] VirtualProtect for c:/MongoDB/Data/dotnetwrapper_mongodb/dotnetwrapper_mongodb.309 chunk 46821 failed with errno:1455 The paging file is too small for this operation to complete. (chunk size is 67108864, address is 2db94000000) in mongo::makeChunkWritable, terminating
2014-10-01T00:24:05.914-0500 [conn3419] dotnetwrapper_mongodb.LogItem Fatal Assertion 16362
2014-10-01T00:24:08.082-0500 [conn3419] mongod.exe ???
К счастью, все вернулось нормально.
Помимо очевидного (не используйте mongo для производственных систем! - это система регистрации) ...
Что нам нужно сделать, чтобы решить эту проблему навсегда? (Файл подкачки размером 50 ГБ кажется неподходящим ...)
Да, ответ находится в системе mongo jira:
https://jira.mongodb.org/browse/SERVER-10044
По состоянию на март 2015 года ошибка все еще открыта, и наш сервер mongo выходит из строя каждые месяц или два.
Это проблема (см. Также https://serverfault.com/a/637052/239616) со старым механизмом хранения MMAPv1 в более старых версиях. MongoDB решила не исправлять это и вместо этого сослалась на свои производственные примечания:
https://docs.mongodb.com/manual/administration/production-notes/#production-windows-pagefile
Однако лучшим решением, скорее всего, будет обновление до более новой версии MongoDB и использование механизма хранения WiredTiger (или любой другой замены MMAPv1). Это должно устранить проблему (хотя потенциально может привести к появлению множества новых).