Ответ
Основная команда для проверки использования оперативной памяти в 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) и убийство процессов.