Назад | Перейти на главную страницу

Mongodb: файл подкачки слишком мал… v2.6.4 на Win2012

У нас это было пару недель назад, и 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). Это должно устранить проблему (хотя потенциально может привести к появлению множества новых).