Linux

Как проверить использование RAM в Linux: 5 простых способов

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

Обновлено 16 февраля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:Ubuntu 20.04+Debian 11+CentOS 8+Fedora 35+Arch Linux

Введение / Зачем это нужно

Понимание того, как ваша система Linux использует оперативную память (RAM), — критически важный навык для диагностики тормозков, планирования апгрейда железа или оптимизации сервера. В отличие от Windows, Linux активно использует свободную RAM для кэширования диска, что может вводить в заблуждение. Этот гайд покажет, как правильно интерпретировать данные о памяти с помощью стандартных утилит, чтобы отличать нормальную работу от реальной нехватки RAM.

После выполнения вы будете уверенно читать вывод free, top и htop, понимать, что значит «свободная» память и какое место занимает кэш, а также сможете быстро найти «прожорливые» процессы.

Требования / Подготовка

  • Доступ к терминалу (Ctrl+Alt+T или SSH-подключение).
  • Базовая familiarность с командной строкой.
  • Права на выполнение утилит (все команды доступны обычному пользователю, кроме установки пакетов, которая требует sudo).
  • Для использования htop может потребоваться установка (инструкция есть в шаге 3).

Пошаговая инструкция

Шаг 1: Используйте команду free для общей сводки

Команда free — самый быстрый способ получить общую картину использования RAM и свопа (swap).

free -h

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

              total        used        free      shared  buff/cache   available
Mem:           7.7G        1.2G        4.1G        156M        2.4G        6.0G
Swap:          2.0G          0B        2.0G

Как читать:

  • total — весь объём установленной RAM.
  • used — память, занятая процессами (но не вся, так как в Linux used = total - free - buff/cache).
  • free — полностью неиспользуемая RAM (это число в Linux обычно мало, и это нормально).
  • buff/cache — память, занятая ядром под кэш диска и буферы. Она может быть автоматически освобождена для программ.
  • availableсамый важный показатель. Оценка памяти, доступной для запуска новых приложений без использования swap. Ориентируйтесь на него.

💡 Совет: Если available стремится к нулю, а система активно использует swap — это признак нехватки физической RAM.

Шаг 2: Мониторьте процессы в реальном времени с top

top показывает динамический список процессов, сортированный по потреблению CPU. Но её можно настроить для анализа памяти.

top

Внутри top:

  1. Нажмите F6 (или > для сортировки по следующему полю).
  2. Выберите поле %MEM (процент от общей RAM) или RES (физическая память в KiB) и нажмите Enter.
  3. Теперь процессы отсортированы по потреблению памяти. Самый «прожорливый» будет сверху.
  4. Для выхода нажмите q.

Ключевые колонки в top:

  • VIRT — виртуальная память (включает код, данные, разделяемые библиотеки, отображённые файлы и своп).
  • RES — резидентная память (физическая RAM, занятая процессом, без свопа).
  • %MEM — процент RES от общей RAM.

Шаг 3: Установите и используйте htop для удобного интерфейса

htop — это улучшенный, интерактивный и цветной аналог top. Он более наглядный.

# Установка (если нет)
# Для Debian/Ubuntu:
sudo apt update && sudo apt install htop

# Для CentOS/RHEL/Fedora:
sudo dnf install htop   # или sudo yum install htop

# Запуск
htop

В htop:

  • В верхней части экрана — цветные полосы с метками: Mem (RAM) и Swp (Swap). Зелёная часть — used, синяя — buffers/cache.
  • Сортировка по умолчанию — по CPU. Нажмите F6, выберите %MEM или RES для сортировки по памяти.
  • F5 — переключение между дерево-видом (показывает дочерние процессы) и списком.
  • F10 — выход.

htop также показывает удобные графики использования CPU и RAM в реальном времени.

Шаг 4: Используйте vmstat для статистики

vmstat (virtual memory statistics) даёт сводку по памяти, процессам, свопу и вводу-выводу.

vmstat -s

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

  8192000  total memory
  4194304  used memory
  1064960  active memory
  2109440  inactive memory
  3997696  free memory
   524288  buffer memory
  2109440  swap cache
        0  total swap
        0  used swap
        0  free swap
   123456  non-nice user cpu ticks
     ...

Этот формат компактно показывает абсолютные значения (в килобайтах). Полезно для быстрой оценки в скриптах.

Шаг 5: Проверьте детальную информацию в /proc/meminfo

Для максимально детальной информации (которая используется самими утилитами) смотрите виртуальный файл ядра:

cat /proc/meminfo

Ключевые поля:

  • MemTotal — всего RAM.
  • MemFree — полностью свободная RAM.
  • MemAvailable — оценка доступной RAM (аналогично free).
  • Buffers — память под блоковые буферы ядра.
  • Cached — память под кэш страниц (файловый кэш).
  • SwapTotal / SwapFree — своп.

Этот файл — источник истины для всех вышеперечисленных команд.


Проверка результата

Вы успешно проверили использование RAM, если:

  1. Команда free -h вывела таблицу с понятными значениями, и вы можете объяснить разницу между free и available.
  2. В htop или top вы отсортировали процессы по %MEM или RES и видите список с потреблением памяти.
  3. Вы понимаете, что высокое значение buff/cache — это хорошо, а низкий available — плохо.

Критерий успеха: Вы можете ответить на вопрос «Сколько памяти реально доступно для новых приложений?» — посмотрев на поле available в free или на индикатор в htop.


Возможные проблемы

  • htop: command not found — утилита не установлена. Установите её через менеджер пакетов вашего дистрибутива (см. Шаг 3).
  • free показывает очень маленькое значение available, но система работает fast — возможно, вы только что запустили тяжёлое приложение, и кэш ещё не успел освободиться. Подождите несколько секунд и проверьте снова. Если available стабильно низкий, а своп активен — думайте об апгрейде RAM.
  • Нет прав на установку пакетов — для установки htop нужны права sudo. Обратитесь к администратору или используйте только free, top, vmstat, которые есть почти всегда.
  • /proc/meminfo недоступен — это может произойти только в очень урезанных контейнерных или embedded-средах. В обычной системе этот файл всегда есть. В контейнере используйте free или cat /sys/fs/cgroup/memory.current (зависит от cgroup версии).

Часто задаваемые вопросы

В чем разница между командами free и top для проверки памяти?
Что означают поля 'buff/cache' и 'available' в выводе free?
Как установить htop, если его нет в системе?
Почему 'used' в free может быть высоким, но система не тормозит?

Полезное

Используйте команду free для общей сводки
Мониторьте процессы в реальном времени с top
Установите и используйте htop для удобного интерфейса
Используйте vmstat для статистики
Проверьте детальную информацию в /proc/meminfo