TL;DR:htop — CPU/RAM в реальном времени. df -h — диск. free -h — память.
journalctl -p err — ошибки. Load average > кол-ва ядер = перегрузка.
CPU
# Интерактивный мониторингtop # базовый (q — выход)htop # улучшенный (F6 — сортировка)# Load averageuptime# 12:00 up 30 days, load average: 1.2, 0.8, 0.6# 1m 5m 15m# load > nproc = перегрузка# Количество ядерnproccat /proc/cpuinfo | grep processor | wc -l# CPU по процессамps aux --sort=-%cpu | head -10# Анализ загрузки (нужен sysstat)mpstat 1 5 # по ядрам, каждую секунду, 5 раз
Память (RAM)
free -h# total used free shared buff/cache available# Mem: 16Gi 4.2Gi 8.1Gi 256Mi 3.7Gi 11Gi# Swap: 2.0Gi 0B 2.0Gi# available — реально доступная (free + buff/cache, который можно отдать)# Топ потребителей RAMps aux --sort=-%mem | head -10# Детальноcat /proc/meminfo
Диск
# Свободное место по разделамdf -h# Filesystem Size Used Avail Use% Mounted on# /dev/sda2 100G 45G 50G 48% /# Размер конкретной директорииdu -sh /var/log/du -sh /home/*# Что занимает больше всего (рекурсивно)du -sh /* 2>/dev/null | sort -rh | head -10# I/O (нужен sysstat)iostat -x 1 5 # дисковая нагрузка каждую секунду# Интерактивный I/Oiotop # кто читает/пишет (нужен root)
Сеть
# Активные соединенияss -tlnp # listening TCP portsss -tunp # все TCP/UDP соединения# Какой процесс на портуsudo lsof -i :8080sudo ss -tlnp | grep 8080# Трафик (нужен nethogs)sudo nethogs # трафик по процессам# Статистика интерфейсовip -s link
# Время загрузкиsystemd-analyze# Самые медленные сервисыsystemd-analyze blame# Цепочка зависимостейsystemd-analyze critical-chain# Проблемные сервисыsystemctl --failed
Ключевые метрики
Метрика
Команда
Норма
Проблема
Load average
uptime
< nproc
> nproc × 2
RAM available
free -h
> 20% total
< 10%
Disk usage
df -h
< 80%
> 90%
Swap usage
free -h
0
> 50% (мало RAM)
Failed services
systemctl --failed
0
> 0
I/O wait
top (wa%)
< 5%
> 20%
Продвинутый мониторинг
vmstat — CPU, память, I/O одним взглядом
vmstat 1 5 # обновлять каждую 1 сек, 5 раз# procs ----memory---- --swap-- ---io--- -system-- ----cpu----# r b swpd free si so bi bo in cs us sy id wa# 1 0 0 4096M 0 0 5 10 200 500 10 3 85 2
lsof -p PID # все файлы процессаlsof +D /var/log/ # кто использует файлы в каталогеlsof -i :8080 # кто слушает портlsof /var/log/syslog # кто держит файл открытым
strace — трассировка системных вызовов
Показывает что процесс «просит» у ядра — для диагностики «почему не работает».
strace command # трассировать запускstrace -p PID # подключиться к работающему процессуstrace -e trace=open,read -p PID # только файловые операцииstrace -c command # сводка: какие syscalls сколько времени заняли
Типичные ошибки
Ситуация
Совет
«Сервер тормозит»
htop → сортировка по CPU → найти прожорливый процесс
«Диск заполнен»
`du -sh /*
«Много RAM занято»
Проверить available, не free. Linux использует свободную RAM под кэш