Сервер тормозит или перестаёт отвечать. CPU 100%, память на исходе, диск молотит — нужно быстро найти источник. Алгоритм от общей картины к конкретному процессу.
Шаг 1: общая картина за 30 секунд
# Нагрузка, CPU, память, диск — всё сразу
top -bn1 | head -20
# или htop (удобнее)
htop
# Средняя нагрузка за 1/5/15 минут
uptime
# load average: 2.50, 1.80, 1.20
# Если load > количества ядер CPU — перегрузка
# Узнать количество ядер
nproc
grep -c '^processor' /proc/cpuinfo
Шаг 2: CPU — что грузит
# Процессы по убыванию CPU
ps aux --sort=-%cpu | head -15
# В реальном времени (нажать P для сортировки по CPU)
top
# Конкретный процесс: что он делает
sudo strace -p PID -e trace=all -c 2>&1 | head -20
# Сколько потоков у процесса
ls /proc/PID/task | wc -l
Шаг 3: память — утечка или нехватка
# Общая картина
free -h
# Важно: Available — реально свободная
# Процессы по памяти
ps aux --sort=-%mem | head -15
# Детально по процессу (RES = реальная память)
cat /proc/PID/status | grep -E 'VmRSS|VmSwap'
# Использование swap
swapon --show
cat /proc/swaps
Совет: High swap usage при малом Available RAM — классический признак нехватки памяти. Сервер начинает медленно работать из-за swap.
Шаг 4: диск — I/O блокирует систему
# I/O в реальном времени
iostat -x 2 5
# %util > 80% — диск перегружен
# Какой процесс грузит диск
sudo iotop -o
# -o показывает только активные
# Свободное место
df -h
# Большие файлы
du -sh /* 2>/dev/null | sort -rh | head -10
Шаг 5: сеть — трафик или соединения
# Активные соединения
ss -s
# Много соединений в TIME_WAIT или CLOSE_WAIT — проблема
ss -tan | awk '{print $1}' | sort | uniq -c | sort -rn
# Трафик в реальном времени
nethogs # по процессам
iptraf-ng # по интерфейсам
# Пакеты/ошибки
ifstat -i eth0 1
Быстрый скрипт-снимок состояния
#!/bin/bash
echo "=== $(date) ==="
echo "--- UPTIME ---" && uptime
echo "--- CPU TOP-5 ---" && ps aux --sort=-%cpu | head -6
echo "--- MEM TOP-5 ---" && ps aux --sort=-%mem | head -6
echo "--- DISK ---" && df -h / && iostat -x 1 1 | tail -5
echo "--- NET CONNECTIONS ---" && ss -s
Итог
Последовательность: uptime (load average) → top/htop (CPU) → free (RAM) → iotop (диск) → ss (сеть). За 2 минуты можно определить источник нагрузки и перейти к устранению.