Обзор htop: интерактивный монитор процессов Linux

Системный мониторинг позволяет оценивать производительность ваших Linux-приложений и сервисов. Вы можете отслеживать процессы и службы с помощью встроенных инструментов или устанавливаемых дополнительно программ. С их помощью вы оптимизируете производительность, обнаружите проблемы и быстро найдёте их причину.
Команда htop — это интерактивный монитор процессов для Linux и Unix-подобных систем. Он служит альтернативой стандартной утилите командной строки top, которая обычно предустановлена в дистрибутивах Linux.
В этой статье объясняется, чем htop отличается от top. Вы узнаете, как установить htop в разных дистрибутивах, как собрать его из исходников, как ориентироваться в интерфейсе и как выполнять мониторинг с помощью сочетаний клавиш или мыши.
htop и top: основные отличия
htop обладает рядом преимуществ перед стандартной утилитой top. Ниже перечислены ключевые отличия в переводе и адаптации таблицы для наглядности:
| htop | top | |||
|---|---|---|---|---|
| Цветная визуализация и удобный текстовый интерфейс | Базовый интерфейс без цветов | |||
| Горизонтальная и вертикальная прокрутка | Нет поддержки прокрутки, список процессов обновляется каждые 5 секунд | |||
| Поддержка операций мышью | Мышь не поддерживается | |||
| Отображает ядро и пользовательские потоки | Показывает процессы без контекста потоков | |||
| Управление процессами прямо из интерфейса | Для kill/renice нужно выходить из интерфейса top | |||
| Можно убивать несколько процессов разом без указания PID | Требуется PID для завершения процесса | |||
| Для renice не требуется ввод приоритета или PID (упрощённый режим) | Требуется указать значение приоритета и PID |
Важно: выбор между htop и top зависит от задач. top полезен для минималистичных сценариев и скриптов; htop — для интерактивного анализа и быстрого реагирования.
Связанное: как отображать процессы с наибольшим использованием памяти и сортировать результаты
Установка htop в популярных дистрибутивах Linux
Если вам нужна актуальная версия htop, пакеты доступны для большинства популярных дистрибутивов. Установите утилиту через менеджер пакетов одной из следующих команд.
Debian
sudo apt install htopUbuntu
sudo apt-get install htopManjaro / Arch
sudo pacman -S htopCentOS или RHEL 8/7
Для RHEL8:
sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo yum install htopДля RHEL7:
sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install htopДля CentOS (старые версии):
sudo yum -y install epel-release
sudo yum -y update
sudo yum -y install htopFedora
sudo dnf install htopOpenSUSE
sudo zypper install htopПримечание: в некоторых дистрибутивах пакет может называться htop в репозитории EPEL или Snap. Если вы используете корпоративный релиз с ограниченным доступом к интернет-репозиториям, проверьте политику установки пакетов в вашей организации.
Альтернативные способы установки
Сборка htop из исходников
htop — проект с открытым исходным кодом. Сборка из исходников даёт последнюю версию и полный контроль над опциями компиляции. Для этого потребуется библиотека ncurses и инструменты разработки.
Для RHEL/CentOS/Fedora-подобных дистрибутивов установите группы и зависимости:
yum groupinstall "Development Tools"
yum install ncurses ncurses-develДля Debian/Ubuntu:
sudo apt-get install build-essential
sudo apt-get install libncurses5-dev libncursesw5-devСкачайте релиз с GitHub и распакуйте:
wget -O htop-2.0.2.tar.gz https://github.com/htop-dev/htop/archive/refs/tags/2.0.2.tar.gz
tar xvfvz htop-2.0.2.tar.gzСоберите и установите:
cd htop-2.0.2
./configure
make
sudo make installПроверка: запустите htop и убедитесь, что версия соответствует ожидаемой.
Установка через Snap
Snap — кросс-дистрибутивный менеджер пакетов. В Ubuntu можно установить snapd и затем htop:
sudo apt update
sudo apt install snapd
sudo snap install htopПодробнее об установке через Snap можно найти в официальном Snap Store.
Понимание интерфейса htop
После установки запустите команду htop в терминале. Интерфейс обычно состоит из трёх областей: заголовок (header), центральная панель (mid-panel) и футер (footer). Ниже показаны примеры экранов и их назначение.
Интерфейс htop разделён на три основных панели. Рассмотрим информацию в каждой из них.
Заголовок
Заголовок делится на левую и правую части. В нём отображаются загрузка CPU, использование памяти и swap, время работы системы (uptime), количество задач (tasks) и средняя загрузка (load average).
В левой части сверху обычно показывается по одной строке на каждое ядро CPU. Цветовая индикация помогает быстро понять, какие процессы нагружают систему.
Цвета CPU в htop:
- Красный: доля времени, занятая системными процессами (kernel)
- Синий: доля времени, занятая процессами с низким приоритетом
- Зелёный: доля времени, занятая пользовательскими процессами
Цвета памяти:
- Жёлтый: доля, занятая кэшом
- Зелёный: доля используемой памяти
- Синий: доля, занятая буферами
Центральная панель
Средняя панель показывает все запущенные процессы с их статами: PID, владелец (USER), виртуальная и физическая память, процент использования CPU и т. д. Если вы раньше работали с top, эта часть будет знакомой.
Типичные колонки, которые вы увидите:
- PID — идентификатор процесса
- USER — владелец процесса
- PRI, NI — приоритет и nice-значение
- VIRT — виртуальная память
- RES — физическая (resident) память
- %CPU — процент использования CPU
- %MEM — процент использования памяти
- TIME+ — суммарное процессорное время
- COMMAND — команда/путь процесса
Вы можете добавлять или убирать колонки через меню настроек (F2).
Футер
Нижняя панель показывает доступные сочетания клавиш и быстрые действия. Это позволяет выполнять поиск, настраивать метры, отправлять сигналы процессам и др.
Например, нажать F3, чтобы найти процесс по имени. htop поддерживает vi-подобный режим поиска: можно также нажать ‘/‘.
Клавиша F2 открывает меню настроек, где можно изменить счётчики, цвета и набор колонок.
Пример перемещения элемента интерфейса (Swap Bar) через пункт Move и кнопки Done:
Добавление нового счётчика (meter): выберите элемент из столбца Available meters и нажмите Add.
Клавиша F9 открывает интерфейс со списком сигналов, аналогичных выводу команды kill -l. Если вы не уверены, используйте по умолчанию SIGTERM.
Горячие клавиши htop — шпаргалка
Ниже таблица основных сочетаний клавиш и их назначение. Она пригодится как новичкам, так и системным администраторам.
| Функция / сочетание | Описание | |||
|---|---|---|---|---|
| u | Сортировать процессы по имени пользователя | |||
| p | Переключить показ путей программ | |||
| F2 или S | Открыть настройки (Setup) | |||
| F3 или / | Поиск процесса | |||
| F5 или t | Дерево процессов (tree view) | |||
| F6 +/- | Выбрать родительский процесс для разворачивания/сворачивания дерева | |||
| F7 или [ | Увеличить приоритет (только для root) | |||
| F8 или ] | Понизить приоритет (nice +) | |||
| F9 или k | Завершить процесс (kill) | |||
| H | Показывать/скрывать пользовательские потоки | |||
| K | Показывать/скрывать kernel-потоки |
Совет: используйте мышь для быстрого выбора процесса, а затем F9 для отправки сигнала.
Когда htop не подходит: ограничения и примеры отказа
- Автоматизация. Для автоматической агрегации метрик и длительного хранения htop не подходит. Используйте Prometheus, Grafana, Netdata или Telegraf.
- Удалённый мониторинг. Для централизованного мониторинга кластеров лучше настроить агенты и системы сбора метрик.
- Высокая детализация трассировки. Для подробного профилирования CPU и памяти нужны профайлеры (perf, eBPF, pprof).
Если ваша задача — скриптовый парсинг данных командой top/ps, htop как интерактивный инструмент неудобен.
Альтернативы и сравнение
Короткий обзор других инструментов:
- top — стандартный, лёгкий, подходит для скриптов.
- glances — монитор в режиме терминала с возможностью экспорта данных и веб-интерфейсом.
- nmon — инструмент для сбора производительности и последующего анализа.
- atop — ориентирован на длительный сбор и логирование производительности процессов.
- perf / eBPF — для глубокого анализа и профайлинга.
Выбор зависит от целей: интерактивный анализ — htop/glances, длительный сбор — atop/Prometheus.
Рольные чек-листы (быстрая проверка по задаче)
Системный администратор — при медленной работе сервиса:
- Откройте htop
- Отсортируйте по %CPU и %MEM
- Проверьте процессы с высоким TIME+
- Если несколько процессов одного сервиса — используйте tree view
- При необходимости отправьте SIGTERM (F9) или SIGKILL (с осторожностью)
Разработчик — воспроизведение утечки памяти:
- Запустите приложение в тестовой среде
- Откройте htop и отслеживайте RES и VIRT для PID
- Используйте F3 для поиска по имени процесса
- Сделайте снимки состояния памяти через интервалы времени
SRE / инженер эксплуатации — краткая диагностика инцидента:
- Запустите htop на проблемном узле
- Проверьте логи с высоким IO (необходимо сочетание с iotop/атоп)
- Найдите процессы, потребляющие swap
- Переключитесь в tree view и оцените родительские процессы
Примеры сценариев: playbook для расследования утечки памяти
- Подготовка
- Откройте терминал и выполните htop.
- Сортируйте по %MEM.
- Идентификация
- Найдите процесс с растущим RES.
- Запомните PID.
- Проверка трассировок
- Для процессов на Python получите дамп памяти (heapy, tracemalloc) или используйте gcore для C/C++.
- Решение
- Если процесс можно перезапустить без потери данных — аккуратно отправьте SIGTERM.
- Если перезапуск невозможен — уведомите команду разработки и создайте инцидент.
Критерии приёмки:
- Выявлен процесс с утечкой и подтверждён рост RES за период
- Принято временное решение (перезапуск/ограничение ресурсов)
- Создана задача для разработки с трассировками и логами
1-line glossary — короткие определения
- PID: уникальный идентификатор процесса.
- RES: объём физической памяти, занимаемой процессом.
- VIRT: виртуальный объём памяти процесса.
- NICE: значение приоритета процесса (более высокое значение = ниже приоритет).
Безопасность и приватность
- Запуск htop с правами root даёт полный обзор процессов, включая чужие аргументы командной строки. Используйте права аккуратно.
- Не публикуйте скриншоты или логи с чувствительной информацией (пароли, токены, пути к конфигурациям).
- На серверах с регуляторными требованиями проверьте политику работы с данными при отладке.
Мерmaid: простой поток выбора инструмента
flowchart TD
A[Нужно интерактивно исследовать] --> B{Мониторинг в терминале}
B -->|Да| C[Используйте htop или glances]
B -->|Нет| D{Нужно собирать метрики долго}
D -->|Да| E[Prometheus + Grafana]
D -->|Нет| F[atop / nmon]Советы по производительности при работе с htop
- Ограничьте набор отображаемых колонок, чтобы снизить накладные расходы рендеринга в тяжёлых системах.
- При подключении по медленному SSH используйте монохромный режим или отключите лишние метры.
- Для удалённой диагностики большого кластера используйте централизованные сборщики метрик.
Заключение
htop — мощный интерактивный инструмент для повседневного мониторинга процессов на Linux. Он облегчает быстрый анализ загрузки CPU и памяти, упрощает управление процессами и ускоряет расследование инцидентов. В то же время для длительного мониторинга, автоматизации и глубокого профайлинга следует комбинировать htop с другими инструментами (Prometheus, Grafana, perf, eBPF).
Важно: начинайте с htop для быстрого интерактивного анализа, а затем применяйте более специализированные инструменты по мере необходимости.
Wichtig: изучите сочетания клавиш и настройте отображение под свою задачу — это значительно ускорит работу.
Похожие материалы
Настройка компликаций на Apple Watch
Изменить размер виджетов в Центре уведомлений Mac
Надёжность Википедии: как проверять факты
Сообщения без сети на Pixel: SMS, RCS и Satellite SOS
Блокировка спам‑звонков на iPhone с Hiya