как освободить кеширование, которое используется Mongodb?

Mongodb использует файл с памятью, когда я использую долгое время, я вижу, что свободная память оставила меньше по команде «free -m» в ubuntu, и кеширование много использует. Тогда убить монгодба, кеширование все еще стоит много? как я могу освободить кеширование?

MongoDB (по крайней мере, похоже) будет использовать много доступной памяти, но фактически оставляет его до VMM OS, чтобы сообщить ему о выпуске памяти (см. Раздел «Кэширование в документах MongoDB»).

Вы должны иметь возможность выпускать любую память, перезагружая MongoDB.

Однако, в некоторой степени MongoDB на самом деле не «использует» память.

Например, из документов MongoDB Проверка использования памяти сервера …

В зависимости от платформы вы можете видеть сопоставленные файлы как память в процессе, но это не совсем правильно. Верх Unix может показать больше памяти для mongod, чем это действительно уместно. Операционная система (диспетчер виртуальной памяти, в частности, в зависимости от ОС) управляет памятью, в которой находятся «Файлы с памятью». Это число обычно отображается в программе типа «free -lmt».

Он называется «кэшированной» памятью.

MongoDB использует алгоритм кэша LRU ( наименее используемого ), чтобы определить, какие «страницы» будут выпущены, вы найдете дополнительную информацию по этим двум вопросам …

  • Ограниченная память MongoDB
  • Отношение MongoDB / RAM
  • Mongod начинает с ограничения памяти (вы не можете .)

Начиная с 3.2, MongoDB использует WiredTiger в качестве механизма хранения по умолчанию. Предыдущие версии использовали MMAPv1 как механизм хранения по умолчанию.

С помощью WiredTiger MongoDB использует как внутренний кеш WiredTiger, так и кеш файловой системы. В MongoDB 3.2 внутренний кеш WiredTiger по умолчанию будет использовать больше: 60% оперативной памяти минус 1 ГБ или 1 ГБ. Для систем с ОЗУ до 10 ГБ новый параметр по умолчанию меньше или равен настройке по умолчанию 3.0 (для MongoDB 3.0 внутренний кеш WiredTiger использует либо 1 ГБ, либо половину установленной физической памяти, в зависимости от того, что больше). Для систем с объемом памяти более 10 ГБ новый параметр по умолчанию больше, чем параметр 3.0.


для ограничения проводного кэшированного кэша Добавьте следующую строку в файл .config:

wiredTigerCacheSizeGB = 1

В чем была моя проблема:

Поскольку приложение было развернуто на машине с очень длительного времени и никаких исторических данных не было удалено, что привело к увеличению размера базы данных, используемой с приложением. Mongodb занимает почти в два раза больше доступных данных в ОЗУ, что не оставляло свободной памяти для запуска приложения.

Состояние памяти перед удалением данных:

[root @ ip-172-31-1-173 logs] # free -m общий ansible ansible общий доступ к бафф / кешу Mem: 15630 11462 146 732 4021 3207 Swap: 0 0 0

Состояние памяти после удаления данных:

[root @ ip-172-31-1-173 mongo] # free -m общий ansible ansible общий доступ к бафф / кешу Mem: 15630 5849 5234 788 4545 8763 Обмен: 0 0 0

С помощью WiredTiger MongoDB использует как внутренний кеш WiredTiger, так и кеш файловой системы.

Изменено в версии 3.2: начиная с MongoDB 3.2, внутренний кеш WiredTiger по умолчанию будет использовать больше:

 60% of RAM minus 1 GB, or 1 GB. 

Для систем с ОЗУ до 10 ГБ новый параметр по умолчанию меньше или равен настройке по умолчанию 3.0 (для MongoDB 3.0 внутренний кеш WiredTiger использует либо 1 ГБ, либо половину установленной физической памяти, в зависимости от того, что больше).

Для систем с объемом памяти более 10 ГБ новый параметр по умолчанию больше, чем параметр 3.0.

Через кэш файловой системы MongoDB автоматически использует всю свободную память, которая не используется кешем WiredTiger или другими процессами. Данные в кеше файловой системы сжимаются.

Вам также необходимо восстановить базу данных при очистке ваших исторических данных для поддержания размера используемого кеша.

  • Обновление синтаксиса кэшированных данных CSS
  • Есть ли какая-либо реализация LRU для IDRU?
  • Лучший способ предотвратить кеш IE в AngularJS?
  • Interesting Posts
    Давайте будем гением компьютера.