Как проверить загрузку оперативной памяти и swap на VPS?

В этой статье разберём:

  • что такое RAM и swap простыми словами;
  • как быстро проверить использование памяти на VPS;
  • как понять, нормально ли используется swap или уже есть проблема;
  • какие команды показывают реальную картину, а какие часто трактуют неправильно;
  • что делать, если память почти закончилась.

Что такое оперативная память и swap

RAM — это оперативная память, с которой процессы работают прямо сейчас. Чем её меньше свободно, тем выше шанс, что сервер начнёт тормозить под нагрузкой.

Swap — это область на диске, которую Linux использует как запасной вариант, когда оперативной памяти начинает не хватать. Swap помогает пережить пики нагрузки, но он в разы медленнее обычной RAM, потому что работает через диск.

Простая логика такая:

  • если RAM хватает — сервер работает быстро и стабильно;

  • если RAM заканчивается — система начинает активнее использовать swap;

  • если и RAM, и swap закончились — Linux может принудительно завершить самые «прожорливые» процессы.

Важно: сам по себе факт использования swap ещё не означает катастрофу. Проблема начинается тогда, когда swap активно забивается, а сервер при этом заметно тормозит.

Самая быстрая проверка памяти: free -h

Первая команда, которую удобно запускать почти на любом VPS:

free -h

Пример вывода:

               total        used        free      shared  buff/cache   available
Mem:           1.9Gi       1.1Gi       180Mi        35Mi       700Mi       610Mi
Swap:          1.0Gi       120Mi       904Mi

Что означают основные столбцы:

  • total — общий объём памяти;

  • used — сколько памяти занято;

  • free — полностью свободная память;

  • buff/cache — память, которую Linux использует под буферы и файловый кэш;

  • available — самый полезный столбец: сколько памяти система ещё может отдать процессам без серьёзных проблем.

Главная ошибка новичков — смотреть только на free. В Linux это почти всегда плохой ориентир. Гораздо важнее смотреть на available: именно он показывает, сколько памяти реально остаётся в запасе.

Например, если в free почти ноль, но available ещё 500–700 МБ, паниковать рано. Это означает, что часть памяти занята кэшем и при необходимости может быть быстро освобождена.

Проверка загрузки оперативной памяти через free -h

Как отдельно проверить swap

Для swap есть две простые команды. Первая показывает, подключён ли swap вообще:

swapon --show

Если swap есть, вывод будет примерно таким:

NAME      TYPE SIZE   USED PRIO
/swapfile file   1G   128M   -2

Если команда ничего не показывает, значит swap на сервере не настроен.

Вторая команда показывает список swap-областей в более старом формате:

cat /proc/swaps

А если хочешь сразу увидеть и RAM, и swap одной командой — снова используй:

free -h

На что смотреть:

  • если swap есть, но используется на 20–100 МБ — это ещё не страшно;

  • если swap занят сильно и при этом сервер тормозит — памяти не хватает;

  • если swap полностью забит, а свободной RAM почти нет — это уже красный флаг.

Проверка swap на VPS через swapon и proc swaps

Как посмотреть динамику: vmstat

Команда free -h показывает состояние в конкретный момент времени. Но если хочется понять, что происходит в движении, удобнее использовать vmstat.

Запуск:

vmstat 1 5

Это значит: показывать статистику каждые 1 секунду, всего 5 раз.

Примерно тебя будут интересовать такие столбцы:

  • si — сколько данных система читает из swap;

  • so — сколько данных система пишет в swap;

  • free — свободная RAM;

  • wa — ожидание диска (I/O wait).

Если si и so постоянно не нули, это признак активной работы со swap. На слабом VPS это часто и есть причина «тормозов».

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

Проверка памяти и swap через vmstat

Как посмотреть подробную информацию о памяти

Если нужна более детальная картина, можно посмотреть содержимое файла /proc/meminfo:

cat /proc/meminfo | head -20

Там будет много строк, но самые полезные обычно такие:

  • MemTotal — общий объём RAM;

  • MemFree — полностью свободная память;

  • MemAvailable — наиболее полезный показатель доступной памяти;

  • SwapTotal — общий объём swap;

  • SwapFree — сколько swap ещё свободно.

Для повседневной работы достаточно free -h и vmstat, но /proc/meminfo полезен, если хочется разобраться глубже.

Как понять, что с памятью уже есть проблема

Вот признаки, на которые реально стоит обращать внимание:

  • в free -h столбец available стал очень маленьким;

  • swap активно заполняется и не освобождается;

  • в vmstat видны постоянные si/so;

  • сервер начал заметно тормозить даже при простых действиях;

  • в логах появляются сообщения про OOM Killer.

Проверить, не убивал ли Linux процессы из-за нехватки памяти, можно так:

dmesg | grep -i -E 'killed process|out of memory|oom'

Если в выводе есть строки вида Killed process ..., значит память действительно заканчивалась.

Что делать, если память почти закончилась

Если ты видишь, что RAM мало, а swap уже активно работает, действовать обычно надо в таком порядке:

  1. Понять, какой процесс ест память. Для этого уже пригодятся top, htop или ps aux --sort=-%mem.

  2. Если на сервере нет swap — добавить swap-файл, чтобы сгладить пики нагрузки.

  3. Если swap есть, но его не хватает — подумать об увеличении RAM или оптимизации сервисов.

  4. Проверить, не запущены ли лишние службы и процессы.

  5. Убедиться, что на сервере не висит что-то забытое: старые docker-контейнеры, кривые cron-задачи, тестовые процессы, лишние демоны.

Важно: swap — это страховка, а не полноценная замена оперативной памяти. Если сервер регулярно живёт в swap, проблему надо решать, а не надеяться, что «само пройдёт».

Частые ошибки при проверке памяти

  • «Свободной памяти почти нет, значит всё плохо»

    Не всегда. Linux любит использовать память под кэш. Смотри на available, а не только на free.

  • «Swap используется — значит сервер сломан»

    Не обязательно. Небольшое использование swap допустимо. Плохо, когда swap забивается и система начинает тормозить.

  • «После очистки кэша памяти стало больше — значит так и надо делать всегда»

    Нет. Кэш файловой системы в Linux — это нормальная и полезная вещь. Не надо его постоянно «чистить ради красоты».

  • «На сервере 100% used по памяти в панели хостинга»

    Панели хостинга иногда считают память грубо и не учитывают нормально доступный кэш. Сравни с выводом free -h и /proc/meminfo.

Итоги

  • Разобрались, чем отличаются RAM и swap и зачем они нужны на VPS.

  • Научились быстро проверять память через free -h.

  • Поняли, как отдельно смотреть swap через swapon --show и /proc/swaps.

  • Разобрали, как смотреть динамику использования памяти через vmstat.

  • Выяснили, на какие признаки смотреть, если памяти действительно начинает не хватать.

Вывод: для быстрой диагностики памяти на VPS чаще всего хватает трёх команд — free -h, swapon --show и vmstat. Они дают уже достаточно информации, чтобы понять: всё нормально, сервер живёт на пределе или пора искать процесс, который съедает память.

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