htop и процессы Linux: как найти нагрузку и правильно убить процесс
htop в Linux показывает, какой процесс грузит процессор и память: сортировка P и M, дерево F5, сигнал F9. Убивать процесс правильно в два шага: сначала kill PID (SIGTERM), и только если он не ответил за несколько секунд, kill -9 PID.

Содержание
Установка htop и первый запуск
htop есть в репозиториях всех крупных дистрибутивов, на серверах его часто ставят первым же пакетом после обновления системы.
sudo apt install htop # Debian, Ubuntu, Mint
sudo dnf install htop # Fedora
sudo pacman -S htop # Arch
htop
Запускайте от обычного пользователя. Через sudo htop покажет то же самое, но позволит менять приоритет и завершать чужие и системные процессы. Это удобно, когда понимаете, что делаете, и опасно, когда тыкаете наугад.
Экран делится на две части. Сверху счётчики: загрузка каждого ядра, память, swap, число задач, Load average и Uptime. Снизу таблица процессов, внизу подсказка по функциональным клавишам. Если F-клавиши в терминале перехвачены, работают буквенные аналоги или клик мышью по подсказке.
Как читать верхнюю панель и колонки
Полоски процессоров раскрашены по типу нагрузки: зелёный это пользовательские программы, красный ядро, синий процессы с пониженным приоритетом. Если красного много, ищите проблему с драйвером, диском или сетью, а не в браузере.
У памяти зелёная часть занята программами, синяя и жёлтая отданы под буферы и кэш. Кэш ядро освободит само, как только память понадобится, так что заполненная наполовину жёлтым шкала не повод паниковать. Тревожный признак другой: растущий swap и тормоза.
Load average это три числа: средняя очередь задач за 1, 5 и 15 минут. Сравнивайте их с числом ядер. На восьмиядерном процессоре 8 означает полную загрузку, 16 означает, что задачи ждут своей очереди.
Колонки таблицы
- PID номер процесса, его передают в
killиrenice. - NI значение nice, от -20 до 19, и PRI итоговый приоритет для планировщика.
- VIRT вся виртуальная память, обычно огромная и мало о чём говорит. RES реально занятая физическая память, смотреть надо на неё.
- S состояние: R работает, S спит, D ждёт ввода-вывода и не прерывается, Z зомби, T остановлен.
- CPU% может превышать 100: это сумма по ядрам для многопоточной программы.
Если привыкли к выводу ps, сравнение колонок с ним есть в статье про команду ps aux.
Как найти, что грузит процессор, память или диск
Сценарий обычный: вентилятор воет, система подтормаживает. В htop это ищется за полминуты.
- Нажмите
P, чтобы отсортировать по процессору, илиM, чтобы по памяти. Виновник окажется наверху. - Нажмите
F5, чтобы включить дерево. Так видно, что двадцать процессовchromeна самом деле одна программа, а сборка запущена из конкретного терминала. - Если строк слишком много,
F4оставит только процессы с нужным словом в названии,uотфильтрует по пользователю. Hпрячет или показывает потоки,Kпотоки ядра. Обычно и то и другое удобнее скрыть.
Для диска нужна колонка ввода-вывода. Откройте настройку F2, раздел Columns, и добавьте IO_READ_RATE и IO_WRITE_RATE. Для полной картины по диску запускайте htop через sudo, иначе статистика чужих процессов недоступна. Альтернатива для этой задачи утилита iotop.
| Клавиша | Действие |
|---|---|
F3 или / | Поиск процесса по имени, F3 повторно переходит к следующему |
F4 или \ | Фильтр, остаются только совпадения |
F5 или t | Дерево процессов |
F6 или < > | Выбор колонки для сортировки |
P, M, T | Сортировка по CPU, памяти, времени |
F7 / F8 | Повысить или понизить приоритет (nice) |
F9 или k | Отправить сигнал выделенным процессам |
Пробел | Отметить процесс, сигнал уйдёт всем отмеченным |
F2 или S | Настройка панелей, цветов и колонок |
F10 или q | Выход |
kill и сигналы: чем SIGTERM отличается от kill -9
Процесс в Linux не убивают, ему посылают сигнал. Что произойдёт дальше, зависит от сигнала и от того, как программа его обрабатывает. Нужно помнить пять:
- 15 SIGTERM вежливая просьба завершиться. Программа успевает сохранить данные, закрыть файлы и удалить временные. Его
killпосылает по умолчанию. - 9 SIGKILL немедленное завершение силами ядра. Перехватить нельзя, сохранить ничего программа не успеет.
- 2 SIGINT то же, что Ctrl+C в терминале.
- 1 SIGHUP многие службы по нему перечитывают конфигурацию без перезапуска.
- 19 SIGSTOP и 18 SIGCONT заморозить и разморозить процесс. Полезно, чтобы временно остановить тяжёлую задачу, не теряя её.
В htop выделите процесс, нажмите F9, выберите сигнал и Enter. В терминале то же самое:
# найти PID по имени
pgrep -a firefox
# вежливо
kill 12345
# если через несколько секунд не помогло
kill -9 12345
# по имени, всем процессам с этим именем
pkill firefox
killall -9 firefox
# список сигналов
kill -l
Правильный порядок всегда один: сначала SIGTERM, подождать пять-десять секунд, и только потом kill -9. SIGKILL по базе данных, менеджеру пакетов или программе, которая пишет файл, может оставить повреждённые данные и блокировки. На некоторых архитектурах номера сигналов отличаются, поэтому в скриптах надёжнее писать имена: kill -TERM, kill -KILL. Полный список описан в signal(7).
Процесс не завершается даже после kill -9
Состояние Z, зомби
Зомби уже завершился, от него осталась только запись в таблице процессов, которую родитель не забрал. Память и процессор он не ест, убивать там нечего. Найдите родителя по колонке PPID (её можно добавить в htop через F2) или командой ps -o ppid= -p PID и перезапустите его.
Состояние D, непрерываемое ожидание
Процесс ждёт ответа от диска, USB-накопителя или сетевой папки и не реагирует ни на какие сигналы до возврата из ядра. Типичный случай: отвалившийся NFS или умирающая флешка. Верните устройство или сеть, и процесс завершится сам. Если диск неисправен, поможет только перезагрузка.
Процесс возвращается после kill
Его перезапускает systemd. Службу останавливают не через kill, а через sudo systemctl stop имя, иначе systemd добросовестно поднимет её снова через пару секунд. Как найти, к какой службе относится процесс, и управлять ею, разобрано в статье про systemctl.
Если завис весь графический сеанс и мышь не двигается, переключитесь на текстовую консоль Ctrl+Alt+F3, войдите своим логином и запустите там htop. Оттуда можно спокойно завершить виновника, а потом вернуться в графику через Ctrl+Alt+F1 или F2, в зависимости от дистрибутива.
Приоритеты: nice, renice и ionice
Иногда убивать ничего не нужно: архивация или сборка пусть идёт, но не мешает работать. Для этого понижают приоритет. Значение nice от -20 (самый высокий приоритет) до 19 (самый низкий). Обычный пользователь может только повышать nice своих процессов, то есть делать их скромнее. Понижать nice и трогать чужие процессы может только root.
# запустить сразу с низким приоритетом
nice -n 19 tar -cJf backup.tar.xz ~/Documents
# понизить уже работающий процесс
renice -n 10 -p 12345
# вернуть приоритет выше обычного нужно через sudo
sudo renice -n -5 -p 12345
# понизить приоритет ввода-вывода: класс idle
ionice -c 3 -p 12345
В htop то же делают клавиши F7 и F8. На дисковые операции nice почти не влияет, поэтому для копирования и резервных копий полезнее ionice -c 3: процесс будет читать и писать диск, только когда он больше никому не нужен.
Программа исчезла сама: работа OOM killer
Бывает наоборот: вы ничего не убивали, а браузер или игра закрылись без следа. Скорее всего, кончилась память, и система выбрала жертву сама. В современных Fedora и Ubuntu этим занимается systemd-oomd, который следит за давлением на память и завершает самую прожорливую группу процессов заранее, до полного зависания. Если он не успел, срабатывает OOM killer ядра.
# кого завершил systemd-oomd
journalctl -u systemd-oomd -b
# сообщения ядра о нехватке памяти
journalctl -k -b | grep -i "out of memory"
Если такие записи есть, дело не в программе, а в объёме памяти и подкачки. Помогает сжатая подкачка в ZRAM, её настройка разобрана в статье ZRAM и swap в Linux.
top на любом сервере и btop для красоты
top есть везде, даже в минимальном контейнере и на роутере. Клавиши похожи: P и M сортируют, 1 показывает все ядра по отдельности, k спрашивает PID и сигнал, r меняет nice, c показывает полную командную строку, q выходит. Для отчёта в файл или чат пригодится пакетный режим:
top -b -n 1 | head -20
btop развивает идею htop: графики процессора, памяти, дисков и сети на одном экране, управление мышью, темы. Ставится из стандартных репозиториев: sudo apt install btop, sudo dnf install btop, sudo pacman -S btop. Для ежедневного наблюдения за домашним ПК он нагляднее, для работы с процессами по SSH htop быстрее и привычнее. Ещё один вариант в том же духе описан в обзоре gotop.
Частые вопросы
Чем kill отличается от kill -9?
kill без параметров посылает SIGTERM: программа может корректно завершиться и сохранить данные. kill -9 посылает SIGKILL, процесс снимается ядром мгновенно и ничего не успевает сохранить.
Как убить процесс по имени?
Командой pkill имя или killall имя. Перед этим посмотрите pgrep -a имя, чтобы не завершить заодно что-то с похожим названием.
Почему процесс не убивается kill -9?
Он либо зомби (состояние Z, нужно разобраться с родителем), либо ждёт ответа устройства в состоянии D. Ещё бывает, что его тут же перезапускает systemd, тогда остановите службу через systemctl stop.
Почему в htop CPU больше 100 процентов?
Процент считается от одного ядра. Программа, которая полностью занимает четыре ядра, покажет около 400.
Что лучше: htop, top или btop?
top есть всегда, htop удобнее для управления процессами, btop нагляднее показывает графики дисков и сети. Многие держат htop для работы и btop для наблюдения.
Документация и источники
- htop: an interactive process viewer, htop-dev, 2026
- signal(7), Linux man-pages project, 2026
- kill(1), renice(1), ionice(1), util-linux, 2026
- btop, aristocratos/btop, 2026
Читайте также
- Команда ps aux: разбираем вывод и ищем нужный процесс
- systemctl в Linux: управление службами и автозагрузкой
- Gotop в Linux: графический монитор системы прямо в терминале
- Stacer: оптимизация и мониторинг системы Linux в одном окне
- Основные команды Linux для начинающих с примерами
- ZRAM и swap в Linux: как настроить память, чтобы система не тормозила
Команды проверены на актуальных версиях дистрибутивов на момент обновления. Перед изменением системных настроек сделайте резервную копию.