Ответ
Для мониторинга потребления ресурсов в Linux использую следующий набор утилит, часто комбинируя их для быстрой диагностики.
CPU:
topилиhtop— для интерактивного просмотра нагрузки и процессов, потребляющих CPU.mpstat -P ALL 1— показывает процент использования каждого ядра в реальном времени.pidstat -u 1— детализирует потребление CPU по процессам с обновлением каждую секунду.
Память (RAM и Swap):
free -h— общий объём использованной и свободной памяти.vmstat 1— показывает свопинг (si/so), активность памяти и общую статистику системы.smem -s swap -r— сортирует процессы по использованию swap.
Диск (I/O):
iostat -xz 1— ключевые метрики:%util(загрузка устройства),await(время отклика),r/s,w/s(IOPS).iotop— аналогtopдля операций ввода-вывода, показывает процессы, активно работающие с диском.df -h— проверка свободного места на файловых системах.
Сеть:
iftopилиnload— визуализация трафика в реальном времени по сетевым интерфейсам.nethogs— показывает трафик, сгруппированный по процессам (PID).ss -tulpnилиnetstat -tulpn— список открытых портов и связанных с ними процессов.
Комбинированный мониторинг:
Часто запускаю простой скрипт или команду watch для одновременного отслеживания нескольких метрик:
watch -n 1 "echo '=== CPU ==='; mpstat -P ALL 1 1 | tail -5; echo '=== MEM ==='; free -h; echo '=== DISK ==='; iostat -x 1 1 | tail -3"
Для долгосрочного сбора метрик и анализа трендов настраиваю Prometheus Node Exporter или аналогичные агенты.