Мониторинг процессов в Linux с htop: практический гид

Введение

Откажемся от сухого чтения справочников man в пользу живой практики в консоли. В этой статье мы последовательно разберем ключевые возможности утилиты htop: от отслеживания утилизации процессора и оперативной памяти в реальном времени до иерархического отображения дерева процессов, быстрой фильтрации и точечного управления системными ресурсами.

Установка htop и базовые параметры запуска

Для развертывания рабочей среды обновим локальные индексы пакетов и установим монитор ресурсов через пакетный менеджер:

Обновление списков пакетов и установка htop

Убедиться в успешной инсталляции и узнать текущую установленную версию программы можно с помощью флага -v:

Проверка версии htop

Полный перечень параметров запуска и вспомогательную информацию выводит флаг --help:
⚙️ [Ключевые аргументы командной строки]

-d : задает интервал обновления данных на экране с точностью до десятых долей секунды.
-p : ограничивает мониторинг только указанными идентификаторами процессов (PID).
-u : выводит задачи, запущенные от имени конкретного пользователя.
-s : сортирует таблицу процессов по выбранной колонке метрик.
-t : активирует древовидное представление иерархии процессов (родительские и дочерние связи).
-C : отключает цветовую схему, переводя интерфейс в монохромный режим.
-F : выполняет поиск и фильтрацию процессов по совпадению в тексте выполняемой команды.

Справка по доступным опциям htop

Запуск фоновых задач, фильтрация по PID и древовидный вид

Сгенерируем демонстрационную задачу, отправив команду ожидания длительностью 300 секунд в фоновый режим:

Запуск процесса sleep в фоновом режиме

С помощью утилиты pgrep извлечем числовой идентификатор (PID) созданного процесса:

Получение идентификатора процесса через pgrep

Чтобы исключить лишний системный шум и следить исключительно за интересующей задачей, передадим найденные PID в htop -p $(pgrep -d',' sleep):
Такой подход изолирует вывод, позволяя детально наблюдать за конкретным экземпляром приложения.

Отслеживание конкретного PID в htop

Для наглядного анализа взаимосвязей между родительскими и порожденными потоками запустим интерактивный режим дерева через htop -t:
Древовидная структура мгновенно показывает происхождение дочерних процессов и их контекст в системе.

Отображение дерева процессов в htop

Выборка процессов по пользователю и сортировка по ресурсам

Когда требуется отфильтровать системные демоны и фоновые службы других учетных записей, запускаем мониторинг с привязкой к текущему сеансу с помощью команды htop -u $(whoami):
Это оставляет на экране только процессы вашей текущей учетной записи, существенно упрощая их аудит.

Фильтрация процессов текущего пользователя

Для обнаружения утечек памяти или приложений, интенсивно расходующих ОЗУ, отсортируем таблицу по проценту занятой RAM командой htop -s PERCENT_MEM:
Самые ресурсоемкие задачи мгновенно окажутся в верхней части списка, что позволяет быстро локализовать узкие места.

Сортировка списка процессов по использованию памяти

Аналогичным образом выявляются виновники повышенной вычислительной нагрузки через сортировку по загрузке процессора с помощью htop -s PERCENT_CPU:
Этот режим наглядно демонстрирует процессы, создающие максимальную нагрузку на ядра CPU в реальном времени.

Сортировка по загрузке процессора

Управление приоритетами (Nice) и остановка проблемных процессов

Смоделируем вычислительную нагрузку, запустив бесконечный цикл в фоне, и сразу сохраним его идентификатор:

Генерация тестовой нагрузки и захват PID

Чтобы фоновая утилита не препятствовала работе критически важных задач, снизим ее приоритет планировщика с помощью renice +10 -p $TEST_PID:
Увеличение значения Nice с 0 до 10 делает процесс более «уступчивым», освобождая кванты времени процессора для других сервисов.

Изменение приоритета планировщика через renice

По завершении тестов освободим ресурсы. Сначала отправляется сигнал корректного завершения (SIGTERM, -15), а при отсутствии реакции — принудительный останов (SIGKILL, -9):
Такая двухэтапная схема гарантирует чистое завершение процессов и полное высвобождение памяти и процессорного времени.

Корректное и принудительное завершение процесса

Мы на практике освоили основные сценарии работы с утилитой htop — от визуализации системных метрик до тонкой регулировки приоритетов и очистки процессов.
Применяйте эти приемы в повседневном администрировании серверов для быстрого устранения сбоев и поддержания стабильной производительности вашей инфраструктуры.