Из-за временных ограничений на территории РФ наблюдаются проблемы с оплатой. Если платёж не проходит, оставьте запрос в службу поддержки.Служба поддержки работает 24/7 — мы всегда на связи по вопросам хостинга и серверов.Открыт прием заявок на аренду выделенных серверов и размещение оборудования в дата-центре.Напоминаем: рекомендуем включить резервное копирование для дополнительной защиты данных.Доступна новая линейка VPS/VDS с NVMe-дисками и увеличенной производительностью.Технические работы на части серверов завершены. Все сервисы работают в штатном режиме.
Статья3 мин чтенияПросмотры0

Как отличить нехватку памяти от обычного кэша Linux

Проверяем доступную память и обмен со swap с помощью free и vmstat, чтобы не принимать полезный файловый кэш за утечку.

Модули оперативной памяти на системной плате сервера
В этой статье

В панели почти вся оперативная память занята, но сайт работает нормально. Или наоборот: свободные мегабайты ещё видны, а запросы стали медленными. Одной цифры недостаточно. Linux использует часть памяти для кэша, а признаки реального давления нужно искать в доступном объёме и поведении системы во времени.

Снимок состояния

Команды рассчитаны на Linux с пакетом procps. Они не изменяют настройки памяти. В контейнере показания могут описывать не все ограничения приложения: лимит контейнера проверяют отдельно в его среде управления.

free -h

Сначала смотрите на available. Это оценка памяти, которую можно предоставить приложениям без перехода к подкачке. Поле free показывает незанятые страницы и не учитывает весь потенциал освобождения кэша. Поэтому маленькое значение free не является самостоятельным основанием для перезапуска.

Запишите также объём swap и факт его использования. Ненулевой swap не доказывает, что система прямо сейчас активно обменивается страницами с диском: часть редко используемых страниц могла попасть туда раньше.

Посмотрите на движение

Для короткой серии наблюдений выполните:

vmstat 1 6

Будет выведено шесть отчётов с интервалом в одну секунду. Первая строка содержит усреднённые с загрузки показатели активности; для текущего интервала смотрите следующие строки. Поля памяти при этом отражают состояние, поэтому нельзя описывать всю первую строку одним средним значением.

Столбцы si и so помогают увидеть поступление страниц из swap и запись в него. Сопоставляйте их с доступной памятью, задержками приложения и дисковой активностью. Короткий единичный всплеск и устойчивый обмен на протяжении инцидента требуют разных выводов.

Два разных примера

Если доступной памяти достаточно, swap почти не меняется, а ответы сайта быстрые, заполненный файловый кэш сам по себе не требует исправления. Принудительная очистка кэша может ухудшить ситуацию: данные придётся повторно читать с диска.

Если доступный объём падает, активность swap сохраняется и пользователи одновременно замечают задержки, гипотеза о нехватке памяти становится сильнее. Следующий шаг — выяснить, какие процессы растут и какие задания стартовали перед проблемой. Например, ночное резервирование может совпасть с импортом каталога и увеличить суммарное потребление.

Краткая карта проверки

Показатель

Что помогает понять

Чего не доказывает

available

Оценку доступной приложениям памяти

Отсутствие лимита у контейнера

Использованный swap

Наличие выгруженных страниц

Активную подкачку прямо сейчас

si и so

Движение страниц в интервале

Причину роста потребления конкретного приложения

Что проверить у приложения

Разделяйте общий объём сервера и лимит конкретного процесса. Приложение может завершаться по собственному ограничению даже при свободной памяти системы. Обратная ситуация тоже возможна: каждый процесс выглядит умеренным, но их число выросло и суммарное потребление стало чрезмерным.

Сохраните время замера, вывод обеих команд, число одновременно выполняемых задач и наблюдаемую задержку. Не делайте вывод об утечке по одному снимку: для неё важна динамика при сопоставимой нагрузке. После исправления повторите короткое наблюдение в тот же рабочий период.

Не отключайте swap и не меняйте параметры ядра как первый шаг. Сначала нужен подтверждённый сценарий: какой ресурс ограничен, когда это происходит и какой процесс создаёт нагрузку. Тогда решение можно проверить по результату, а не по изменившемуся цвету графика.

Обсуждение 0

Делись опытом и задавай вопросы. Комментарии без ссылок появляются после проверки редактором.

Пока никто не написал. Начни обсуждение.