В этой статье будет показана утилита htop, с помощью которой можно наблюдать за активностью процессов в режиме реального времени.
Утилита htop
Утилита htop — это консольный диспетчер задач. Он похож на утилиту top, которую мы рассмотрели в этой статье.
Вы можете почитать официальный мануал по использованию здесь, или выполните команду man htop
.
Устанавливается htop из стандартных репозиториев, например так с помощью apt:
$ sudo apt install htop
Пример работы утилиты:
![](https://sysadminium.ru/wp-content/uploads/2022/09/image-62-1024x560.png)
Показанную информацию можно разбить на две части:
- Сверху — общая информация о системе.
- Снизу — информация по каждому процессу. При этом здесь есть две вкладки: первая это нагрузка на процессор и память, а вторая — нагрузка на дисковую подсистему.
С помощью клавиши Tab вы можете переключаться между вкладками Main и I/O.
Общая информация о системе
Слева видим общее потребление CPU по каждому ядру, занятую память (Mem) и использование подкачки (Swap).
Справа видим:
- Tasks — количество процессов, количество потоков (thr), количество потоков ядра (kthr), количество потоков в состоянии running. Кстати утилита top показывает количество процессов суммарное с потоками ядра (=124). А htop делит их на потоки ядра (=76) и процессы (=48). В этом случае htop конкретнее чем top.
- Load average.
- Uptime.
Информация по каждому процессу
Вкладка Main
Внизу показана информация по каждому процессу. Информация разбита на колонки:
![top – информация по процессам](https://sun9-70.userapi.com/impf/c855520/v855520223/c98ad/5idFA6GW0gM.jpg?size=807x75&quality=96&sign=199a8d0a9b0ced407e66054f1f96e6b8&type=album)
- 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](https://sysadminium.ru/wp-content/uploads/2022/09/image-73-1024x149.png)
- 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 - дерево процессов](https://sysadminium.ru/wp-content/uploads/2022/09/image-63-1024x558.png)
Чтобы выбрать колонку для сортировки, нажмите F6, а чтобы обратить сортировку Shift+i:
![htop - сортировка процессов](https://sysadminium.ru/wp-content/uploads/2022/09/image-64-1024x541.png)
Чтобы остановить процесс, вначале выделите его, затем нажмите клавишу «k» и выберите отправляемый сигнал. Например сигнал sigterm — попытается корректно завершить процесс, а sigkill — моментально убьёт его. И нажмите Enter чтобы отправить сигнал процессу, либо Esc чтобы отменить действие.
![htop - завершение процесса](https://sysadminium.ru/wp-content/uploads/2022/09/image-65-1024x542.png)
Нажмите клавишу «u» чтобы выбрать пользователя, процессы которого нужно отображать.
![htop - выбор пользователя, процессы которого нужно отображать](https://sysadminium.ru/wp-content/uploads/2022/09/image-66-1024x539.png)
С помощью клавиши «p» можно показать или убрать полную командную строку со всеми параметрами.
![htop - просто названия команд](https://sysadminium.ru/wp-content/uploads/2022/09/image-68-1024x250.png)
![htop - полные пути](https://sysadminium.ru/wp-content/uploads/2022/09/image-67-1024x248.png)
Чтобы отобразить потоки ядра (kthr), нажмите Shift+k. А чтобы отобразить потоки процессов (thr), нажмите Shift+h.
![](https://sysadminium.ru/wp-content/uploads/2022/09/image-69-1024x162.png)
Выделите процесс и нажмите клавишу «l», чтобы увидеть дополнительную информацию о процессе: библиотеки, сетевые порты, сокеты к которым обращается процесс.
![htop - информация о процессе](https://sysadminium.ru/wp-content/uploads/2022/09/image-70-1024x273.png)
Настройка утилиты
Нажав на клавишу «F2» можно настроить утилиту htop. Например добавить новые колонки или добавить отображение какой-то информации в верхней части экрана, или изменить цветовую гамму приложения.
![htop - настройка приложения](https://sysadminium.ru/wp-content/uploads/2022/09/image-71-1024x495.png)
Вкладка Display options позволяет указать какие-то опции отображения. Например включить режим просмотра процессов в виде дерева, включить или выключить показ thr или kthr. Показывать номера ядер начиная с 1 вместо 0, и тому подобное.
Вкладка Header layout позволяет выбрать шаблон для верхней части экрана. Там где отображается общая информация о системе. Можно вместо двух колонок выбрать 3 или 4, а также поменять размер этих колонок.
Вкладка Meters позволяет на каждую колонку (для верхней части экрана) поместить какую-то информацию.
Вкладка Screens позволяет выбрать колонки которые будут отображаться для процессов (в нижней части). Полей для отображения различной информации о процессах достаточно много.
Вкладка Colors позволяет выбрать цветовую тему для приложения htop.
Пример настроенной утилиты htop:
![Пример настроенной утилиты htop](https://sysadminium.ru/wp-content/uploads/2022/09/image-72-1024x568.png)
Если тебе понравилась эта статья, подпишись на мой канал в VK.