Утилита htop

В этой статье будет показана утилита htop, с помощью которой можно наблюдать за активностью процессов в режиме реального времени.

Утилита htop

Утилита htop — это консольный диспетчер задач. Он похож на утилиту top, которую мы рассмотрели в этой статье.

Вы можете почитать официальный мануал по использованию здесь, или выполните команду man htop.

Устанавливается htop из стандартных репозиториев, например так с помощью apt:

$ sudo apt install htop

Пример работы утилиты:

Показанную информацию можно разбить на две части:

  • Сверху — общая информация о системе.
  • Снизу — информация по каждому процессу. При этом здесь есть две вкладки: первая это нагрузка на процессор и память, а вторая — нагрузка на дисковую подсистему.

С помощью клавиши Tab вы можете переключаться между вкладками Main и I/O.

Общая информация о системе

Слева видим общее потребление CPU по каждому ядру, занятую память (Mem) и использование подкачки (Swap).

Справа видим:

  • Tasks — количество процессов, количество потоков (thr), количество потоков ядра (kthr), количество потоков в состоянии running. Кстати утилита top показывает количество процессов суммарное с потоками ядра (=124). А htop делит их на потоки ядра (=76) и процессы (=48). В этом случае htop конкретнее чем top.
  • Load average.
  • Uptime.

Информация по каждому процессу

Вкладка Main

Внизу показана информация по каждому процессу. Информация разбита на колонки:

top – информация по процессам
  • PID — номер процесса.
  • USER — имя пользователя под которым работает процесс.
  • PRI — приоритет процесса.
  • NI — любезность процесса (чем она выше, тем ниже приоритет).
  • VIRT — количество памяти, которое способен адресовать процесс. Включает выделенную память, которая, возможно, ещё не полностью используется.
  • RES — количество физической памяти (использованной а не выделенной), которую использует процесс.
  • SHR — количество разделяемой памяти, которую использует процесс. Разделяемая память может использоваться вместе разными процессами.
  • S — состояние процесса (я их уже описывал здесь):
    • S (sleeping) — спящий;
    • R (running) — в работе;
    • Z (zombie) — зомби;
    • D (uninterruptible sleep) — ожидает дискового ввода/вывода, и не принимает никакие сигналы;
    • T (stopped by job control signal) — остановлен специальным сигналом;
    • t (stopped by debugger during trace) — остановлен в процессе дебага;
    • I (Idle) — бездействующий поток ядра.
  • CPU% — использование CPU в процентах;
  • MEM% — использование RES в процентах;
  • TIME+ — сколько времени этот процесс работал на ЦПУ, с точностью до сотых долей секунды;
  • COMMAND — с помощью какой команды запустили процесс.

Вкладка I/O

htop - вкладка I/O
  • IO — приоритет ввода-вывода. Значения вроде B4, B1, указывают на текущий класс приоритета, где B — это класс «Best Effort», подходящий для большинства процессов. Число рядом показывает конкретный приоритет в этом классе, где более низкие цифры обозначают более высокий приоритет.
  • DISK R/W — общая нагрузка на диск (чтением и записью).
  • DISK READ — нагрузка на диск чтением.
  • DISK WRITE — нагрузка на диск записью.
  • SWPD% — показывает отношение объема памяти, находящейся в подкачке, к общей памяти, занимаемой процессом.
  • IOD% — отображает долю времени, в течение которого процесс ждет операции ввода-вывода (I/O wait).

Опции утилиты htop

Опция -u покажет процессы определенного пользователя:

$ htop -u www-data

Опция -d <задержка> заставит обновляться htop с указанной задержкой в десятых долях секунды. Например, пусть htop обновляется раз в полсекунды:

$ htop -d 5

Опция -F <фильтр> укажет выводить информацию только по тем процессам, в командной строке которых будет указанный фильтр. Например найдём все процессы apache2, или все процессы выполняемые утилитами из каталога /usr/sbin.

$ htop -F apache2
$ htop -F /usr/sbin/

Опция -p <pid,pid,…> нужна чтобы получать информацию по определённым процессам.

$ htop -p 608,736

Опция -s <колонка> отсортирует процессы по выбранной колонке. Но не очень удобно то что не все названия колонок сортировки совпадают с отображаемыми названиями. Сортировать можно по:

$ htop -s PID
$ htop -s STATE
$ htop -s M_RESIDENT
$ htop -s M_SHARE
$ htop -s PERCENT_CPU
$ htop -s PERCENT_MEM
$ htop -s USER

Опция -t запустить htop отображая процессы в виде дерева. Эту опцию нельзя использовать вместе с сортировкой процессов.

$ htop -t

Горячие клавиши

Клавиша «t» переключить htop в отображение процессов в виде дерева.

htop - дерево процессов

Чтобы выбрать колонку для сортировки, нажмите F6, а чтобы обратить сортировку Shift+i:

htop - сортировка процессов

Чтобы остановить процесс, вначале выделите его, затем нажмите клавишу «k» и выберите отправляемый сигнал. Например сигнал sigterm — попытается корректно завершить процесс, а sigkill — моментально убьёт его. И нажмите Enter чтобы отправить сигнал процессу, либо Esc чтобы отменить действие.

htop - завершение процесса

Нажмите клавишу «u» чтобы выбрать пользователя, процессы которого нужно отображать.

htop - выбор пользователя, процессы которого нужно отображать

С помощью клавиши «p» можно показать или убрать полную командную строку со всеми параметрами.

htop - просто названия команд
htop - полные пути

Чтобы отобразить потоки ядра (kthr), нажмите Shift+k. А чтобы отобразить потоки процессов (thr), нажмите Shift+h.

Выделите процесс и нажмите клавишу «l», чтобы увидеть дополнительную информацию о процессе: библиотеки, сетевые порты, сокеты к которым обращается процесс.

htop - информация о процессе

Настройка утилиты

Нажав на клавишу «F2» можно настроить утилиту htop. Например добавить новые колонки или добавить отображение какой-то информации в верхней части экрана, или изменить цветовую гамму приложения.

htop - настройка приложения

Вкладка Display options позволяет указать какие-то опции отображения. Например включить режим просмотра процессов в виде дерева, включить или выключить показ thr или kthr. Показывать номера ядер начиная с 1 вместо 0, и тому подобное.

Вкладка Header layout позволяет выбрать шаблон для верхней части экрана. Там где отображается общая информация о системе. Можно вместо двух колонок выбрать 3 или 4, а также поменять размер этих колонок.

Вкладка Meters позволяет на каждую колонку (для верхней части экрана) поместить какую-то информацию.

Вкладка Screens позволяет выбрать колонки которые будут отображаться для процессов (в нижней части). Полей для отображения различной информации о процессах достаточно много.

Вкладка Colors позволяет выбрать цветовую тему для приложения htop.

Пример настроенной утилиты htop:

Пример настроенной утилиты htop

Если тебе понравилась эта статья, подпишись на мой канал в VK.

Оставьте комментарий