Анализ высокой нагрузки в Linux: поиск процесса в htop и kill -9
Сайт тормозит: Load Average зашкаливает
Когда сервер перестает отвечать, а страницы открываются по 30 секунд, виной всему обычно зависший PHP-скрипт, зацикленный SQL-запрос или скрытый майнер.
Показатели метрик в htop
| Параметр | Что означает | Критическое значение |
|---|---|---|
| CPU% [|||||||| 100%] | Ядро процессора утилизировано целиком | Постоянные 95-100% |
| Load Average (LA) | Очередь задач к исполнению | Выше количества ядер процессора в 2+ раза |
| Mem% / Swp% | Заполнение RAM и файла подкачки | Swp активен при 100% занятой RAM |
Диагностика и уничтожение зависшего процесса
- Устанавливаем и открываем диспетчер задач htop:
sudo apt install htop -y && sudo htop - Сортируем процессы по потреблению процессора:
Нажмите клавишу F6, выберите в спискеPERCENT_CPUи нажмите Enter (или нажмите P). - Находим номер зависшего процесса (колонка PID):
Например, процесс PHP имеет PID18492. - Завершаем процесс прямо из htop:
Нажмите клавишу F9, выберите сигнал 9 (SIGKILL) в левой колонке и нажмите Enter. - Либо завершите процесс через обычную консоль:
sudo kill -9 18492
Для быстрого выхода из программы htop нажмите клавишу q или F10.
Частые вопросы (FAQ)
Чем отличается сигнал 15 (SIGTERM) от 9 (SIGKILL)?
SIGTERM вежливо просит программу закрыться и сохранить данные, SIGKILL немедленно выгружает процесс из RAM силами ядра Linux.
Как убить сразу все зацикленные процессы одного типа (например, php)?
Используйте команду killall: sudo killall -9 php-fpm8.2.
Что делать, если процесс после kill -9 не исчезает?
Процесс находится в состоянии D (Uninterruptible Sleep), ожидая ответа от диска, либо это процесс-зомби (Z).
Как в htop включить отображение дерева процессов?
Нажмите клавишу F5 (Tree view).