Ответ
Мониторинг памяти в Linux требует понимания разницы между разными типами памяти (RAM, swap, cache). Вот мои основные инструменты:
1. Быстрый обзор (free):
free -h
Ключевые метрики:
total: Общий объем ОЗУ.used: Память, используемая процессами и кэшем.available: Память, доступная для запуска новых процессов без использования swap. Это более точный показатель, чемfree.
2. Динамический мониторинг процессов:
top(встроен везде): Запускаю и смотрю на строкиMemиSwap, а также колонку%MEMдля процессов.htop(удобнее): Если установлен, использую его для интерактивного просмотра и сортировки.
3. Детальная диагностика:
- Чтобы увидеть топ-10 процессов по потреблению памяти:
ps aux --sort=-%mem | head -10 - Для просмотра статистики памяти и свопа:
vmstat -s
4. Для скриптов и автоматизации я пишу команды, которые извлекают конкретные значения. Например, для получения доступной памяти в МБ:
available_mem=$(free -m | awk '/^Mem:/ {print $7}')
echo "Available memory: ${available_mem}MB"
В продакшн-среде я полагаюсь на системы мониторинга (Prometheus/Grafana), которые собирают метрики от node_exporter и строят графики использования памяти, давления на память (memory pressure) и активности подкачки (swap).