Рейтинг:0

Почему drop_caches увеличивает «доступную» память

флаг in

Я сталкиваюсь с проблемами нехватки памяти на узлах proxmox 7, которыми я управляю. Когда я читал о подобных проблемах, меня направили на linuxatemyram.com, после прочтения этой страницы я начал отслеживать «доступную» память вместо «используемой». Но проблема осталась (доступная память уменьшается со временем безотказной работы).

Затем я обнаружил, что могу принудительно освободить кеши Linux, выполнив команду эхо 3 > /proc/sys/vm/drop_caches. Я ожидал, что «используемая» память станет свободной, но я не ожидал, что «доступная» память увеличится, потому что, насколько я понимаю, доступная память также считается используемой, потому что она используется linux для кэширования.

Но «доступная» память увеличилась после drop_caches, как вы можете видеть ниже:

root@proxmox13:~$ бесплатно -h
               общее количество использованных бесплатных общих баффов/доступных кешей
Мем: 31Gi 29Gi 1.1Gi 67Mi 258Mi 977Mi
Обмен: 0B 0B 0B
root@proxmox13:~$ echo 2 > /proc/sys/vm/drop_caches
root@proxmox13:~$ бесплатно -h
               общее количество использованных бесплатных общих баффов/доступных кешей
Память: 31Gi 26Gi 4.1Gi 67Mi 205Mi 3.9Gi
Обмен: 0B 0B 0B

Почему оно увеличилось? Почему ранее освобожденная память не считалась доступной, если она использовалась для кеширования?

Спасибо за вашу помощь.

Рейтинг:2
флаг cn

На высоком уровне доступно бесплатно плюс тайники и другие вещи, которые легко вернуть, для удобства людей. https://www.linuxatemyram.com/ использует имеющиеся в попытке объяснить, что происходит. Существуют и другие счетчики для различных кешей, исключающих свободные.

На самом деле Linux VMM сложен и запутан. Использование памяти редко совпадает с простым учетом. Я думаю Кэширование в /proc/meminfo означает кеш страницы но ты тоже упал дентри и иноды. Так что баф/кеш в фри не сильно изменился. Попробуйте slabtop, если вам когда-нибудь понадобится подробно изучить объекты ядра.

Один доступный ГБ из 32 — это немного с точки зрения планирования емкости. Рассмотрите возможность уменьшения количества гостей на узел виртуальной машины или увеличения объема физической памяти.

Не использовать /proc/sys/VM/drop_caches что может снизить производительность из-за работы по удалению кешей и повторному чтению данных с диска. Это для тестирования производительности холодного хранилища, когда людям лень перезагружать хост.

Говоря о перезагрузках, программам не нужно утекать память, потому что доступная память медленно уменьшается. Хосты ВМ и гости внутри выполняют, вероятно, тысячи задач, некоторые из которых продолжают работать и сохраняют различные распределения памяти. Вы должны перезагружаться каждые несколько месяцев для обновления программного обеспечения, поэтому, пока «утечка» происходит медленно, возможно, не стоит подробно исследовать ее.

Улучшите мониторинг памяти, также просмотрев информация о срыве давления. Метрика, которая меня действительно волнует, заключается в том, что задачи останавливаются из-за нехватки памяти, и PSI отслеживает это.

Ответить или комментировать

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