Linux-компьютер с 100% используемым разделом подкачки и 60% доступной оперативной памяти — это нормально?

Linux-компьютер с 100% используемым разделом подкачки и 60% доступной оперативной памяти — это нормально?

Недавно я видел коробку (на самом деле, виртуальную машину веб-сервера), у которой в ее swap-файле неиспользуется ровно 0 (ноль) байт, в то время как доступная оперативная память (которая не свободна, а представляет собой сумму свободной памяти+буферов+кэша) составляет 60% от общей оперативной памяти виртуальной машины. Никогда раньше такого не видел, поэтому задумался, хорошая ли это конфигурация (для коробки и приложений).

Администратор виртуальной машины сказал мне, что он относится к этому совершенно нормально, и это его обычный способ настройки коробок.

Его идея заключалась в том, что если в памяти Box много холодных страниц оперативной памяти, ядро ​​извлечет их, чтобы освободить «реальные» страницы оперативной памяти и использовать их для кэширования данных.

Что касается меня, я знал, что swap — это последнее, что нужно использовать, если мы хотим иметь быстрый ящик. Поэтому я устанавливал swappiness на более низкие значения (чтобы ядро ​​не хотело выгружать страницы), но подход этого человека был таков: хорошо выгружать столько данных, сколько у нас есть места подкачки, таким образом, имея больше кэша. И да, сказал он, ядро ​​может кэшировать также выгруженные страницы, поэтому нет смысла оставлять swap свободным.

Пожалуйста, успокойте меня по этому поводу: следует ли максимально использовать seap виртуальной машины и освобождать оперативную память таким образом, чтобы кэш ядра на диске мог использоваться более эффективно?

Если быть точным, то на данный момент имелось: 1 ГБ пространства подкачки (использовано на 100%), у виртуальной машины 32 ГБ оперативной памяти, а доступной оперативной памяти было 13 ГБ.

решение1

Небольшой объем подкачки (1 ГиБ — это мало по сравнению с 32 ГиБ ОЗУ) используется полностью. Это означает именно то, что описал администратор виртуальной машины: учитывая доступность ОЗУ, все, что попадает в подкачку, не используется, и лучше оставить это там и использовать соответствующую физическую память для более важных целей — будь то активные рабочие нагрузки или дисковый кэш.

Чрезмерное использование подкачки вызывает беспокойство только в том случае, если объем подкачки велик или если страницы подкачиваются из-за нехватки памяти, и, что еще важнее, если подкачкаактивностьэто важно,то естьесли vmstatпоказывает, что страницы постоянно подкачиваются и выгружаются. Это говорит о том, что система перегружена, тратя время на вытеснение страниц, только чтобы снова их подкачивать; это происходит, когда объем оперативной памяти слишком мал для рабочей нагрузки системы.

Система, на которой я это пишу, имеет немного больше подкачки и находится в похожей ситуации с вашей виртуальной машиной:

$ free -m
              total        used        free      shared  buff/cache   available
Mem:          32054       19405        1098        2365       11550        9827
Swap:          6410        6410           0

Однако интерактивная производительность хорошая, и vmstatактивность подкачки не наблюдается.

Связанный контент