Как посмотреть количество свободной оперативной памяти в Linux?

«Как посмотреть количество свободной оперативной памяти в Linux?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Основная команда для проверки использования оперативной памяти в Linux — free. Ключевой показатель — available (доступная память), а не просто free, так как он учитывает кэш и буферы, которые могут быть быстро освобождены.

# Стандартный вызов с автоматическим подбором единиц измерения (КБ, МБ, ГБ)
free -h

Пример вывода free -h:

               total        used        free      shared  buff/cache   available
Mem:           7.7Gi       2.1Gi       1.5Gi       123Mi       4.1Gi       5.2Gi
Swap:          2.0Gi       0.0Ki       2.0Gi

Как интерпретировать:

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

Другие полезные команды:

# Посмотреть информацию из /proc/meminfo (источник данных для free)
cat /proc/meminfo | grep -E "^(MemTotal|MemFree|MemAvailable|Buffers|Cached)"

# Динамический просмотр (аналог top в компактном режиме)
top -n 1 -b | grep "MiB Mem"

# Использование утилиты vmstat (первая строка — средние значения с момента загрузки)
vmstat -s | grep -i "memory"

В контексте DevOps: Мониторинг MemAvailable критически важен. Мы настраиваем алерты в системах мониторинга (например, в Prometheus с использованием node_exporter), когда available падает ниже определенного порога (например, 10% от total), чтобы предотвратить исчерпание памяти (OOM) и убийство процессов.