Ответ
Для мониторинга потребления памяти процессами в Linux я использую несколько инструментов, которые дают разную степень детализации.
1. Использование top и htop
В top можно отсортировать процессы по использованию памяти, нажав Shift+M. Для автоматической сортировки при запуске:
top -o %MEM
htop предоставляет более удобный интерактивный интерфейс с цветовой индикацией.
2. Анализ с помощью ps
Чтобы быстро получить список самых "прожорливых" процессов:
ps aux --sort=-%mem | head -n 10
Эта команда показывает PID, пользователя, %CPU, %MEM и команду для топ-10 процессов по использованию памяти.
3. Проверка общей статистики
Команда free показывает общее использование памяти и свопа:
free -h
Ключевые метрики: доступная память (available) и использование свопа (swap used).
4. Детальная диагностика Для глубокого анализа можно использовать:
vmstat -s– детальная статистика по памяти.pmap -x <PID>– карта памяти конкретного процесса.cat /proc/<PID>/status | grep Vm– детали по использованию памяти процессом.
Критические признаки высокой нагрузки:
- Высокий
%MEMвtop(например, >30% для критичного сервиса). - Активное использование свопа (
si/soвvmstat) – это указывает на нехватку ОЗУ. - Сообщения OOM Killer в логах – ядра начинает "убивать" процессы.
dmesg | grep -i "killed process" - Падение производительности – система начинает активно использовать дисковый своп, что резко замедляет работу.