Когда сервер начинает тормозить, первая ошибка - сразу лезть в логи и гадать, что что-то жрет ресурсы. Гораздо полезнее сначала быстро ответить на три вопроса: кто грузит CPU, кто долбит диск, и где именно начинается узкое место.
Для такой первичной диагностики очень хорошо работают три утилиты:
iotop, dstat и pidstat. Они не заменяют полноценный мониторинг, но отлично помогают, когда нужно быстро понять, что происходит прямо сейчас.▪️ iotop - показывает, кто активно читает и пишет на диск. Если сервер упирается в I/O, обычный top это не всегда покажет. Процесс может почти не грузить CPU, но при этом убивать систему постоянной записью или чтением.
Запуск:
iotop
Полезный вариант:
iotop -o
Ключ
-o оставляет только процессы, у которых прямо сейчас есть дисковая активность.▪️ dstat - дает общую картину по системе
dstat хорош тем, что показывает сразу несколько метрик в одном месте:
CPU
disk I/O
network
memory
swap
interrupts
Пример запуска:
dstat
Более полезный вариант:
dstat -cdngym
Что здесь видно:
загрузка CPU
чтение/запись на диск
сетевой трафик
использование памяти
swap
активность файловой системы
▪️ pidstat - показывает статистику по конкретным процессам. Если top и iotop уже намекнули на виновника, pidstat помогает посмотреть детальнее.
Например, по CPU:
pidstat 1
По дисковой активности:
pidstat -d 1
По памяти:
pidstat -r 1
По отдельному процессу:
pidstat -p 1234 1
Где 1234 - это PID нужного процесса.
pidstat особенно полезен, когда нужно смотреть динамику: не просто кто сейчас наверху, а как процесс ведет себя во времени.
▪️ Как использовать это на практике:
1. Сначала смотрим общую картину
dstat -cdngym
Понимаем, куда система упирается: CPU, диск, память или сеть.
2. Если подозрение на диск
iotop -o
Сразу ищем, кто генерирует I/O.
3. Если нужен разбор по процессам
pidstat -d 1
pidstat 1
Смотрим поведение процессов в динамике.
Такой набор часто дает ответ быстрее, чем долгие догадки и хаотичный запуск всего подряд.
#linux #sysadmin
🧑💻 NetworkAdmin