По умолчанию кеш WiredTiger позволяет использовать чуть меньше половины общего объема ОЗУ в системе.
Обычно процесс определяет общий объем ОЗУ автоматически, запрашивая базовую операционную систему.
В случае контейнера Docker, которому было выделено 16 ГБ ОЗУ, но который работает на хост-компьютере с ОЗУ 128 ГБ, системный вызов выдаст 128 ГБ. По умолчанию в этом случае будет 63 ГБ, что, очевидно, вызовет проблему.
В общем:
- Используйте значение по умолчанию в ситуациях, когда системный вызов сообщает об истинной памяти, доступной в окружающая обстановка. Это включает в себя «голое железо», большинство виртуальных машин, облачных провайдеров и т. Д. c.
- В контейнерах, где объем памяти, сообщаемый системным вызовом, не отражает общий объем, доступный для контейнера, вручную выполните расчет для что было бы по умолчанию, если бы он сделал, и вместо этого используйте это значение.