htop
htop — компьютерная программа, предназначенная для вывода на терминал списка запущенных процессов и информации о них (монитор процессов). Создана как альтернатива программы top. Написана на языке Си. Предоставляет пользователю текстовый интерфейс; для вывода на терминал использует библиотеку ncurses.
htop | |
---|---|
Тип | Монитор процессов |
Разработчик | Hisham H. Muhammad |
Написана на | Си (C99) |
Интерфейс | ncurses |
Операционные системы | GNU/Linux, FreeBSD, OpenBSD, OS X |
Языки интерфейса | английский |
Первый выпуск | 7 мая 2004[1] |
Последняя версия | 3.2.2[2] (5 февраля 2023 года[3]) |
Репозиторий | github.com/htop-dev/htop |
Лицензия | GNU GPL v2[4] |
Сайт | hisham.hm/htop/ |
Медиафайлы на Викискладе |
История
правитьHisham Muhammad, автор программы, назвал её «htop» по аналогии с тем, как названа программа «pinfo»[5], написанная программистом по имени Przemek Borys. Слово «pinfo» означает «Przemek's info[англ.]». Слово «htop» означает «Hisham's top»[6].
Программа получала сведения о процессах из виртуальной ФС procfs, реализованной ядром Linux, поэтому могла работать только в ОС Linux.[источник не указан 250 дней]
Первое сообщение[7] с упоминанием ОС FreeBSD опубликовано в списке рассылки 9 мая 2006 года и информирует о выходе htop версии 0.6.1. 30 августа 2007 года[8][9] в коллекцию портов ОС FreeBSD была добавлена портированная программа htop версии 0.6.6 (выпущенная 1 июня 2007 года[10]). Для эмуляции procfs программа использовала библиотеку linprocfs. Появилась возможность портирования htop под любую ОС, поддерживающую слой эмуляции procfs.
htop версии 0.8.2 (выпущенная 2 июня 2009 года[11]) была портирована для работы в ОС Mac OS X. Портирование было выполнено путём замены кода, специфичного для Linux, на код, специфичный для Mac OS X[12].
13 января 2014 года проект переехал с сайта SourceForge.net[13] на сайты http://hisham.hm/htop/, GitHub.com (исходный код)[14] и FreeLists.org (список рассылки)[15].
До версии 1.0.3 (выпущенной 24 апреля 2014 года[16]) программа официально поддерживала только ОС Linux. Начиная с версии 2.0.0 (выпущенной 10 февраля 2016 года[3]) в исходный код htop был добавлен слой для абстрагирования от особенностей различных ОС. Усилиями сообщества htop удалось портировать для работы в операционных системах FreeBSD, OpenBSD и Darwin (Mac OS X).[источник не указан 250 дней]
Применение
правитьhtop часто применяется в тех случаях, когда информации, получаемой от утилиты top, недостаточно, например, при поиске утечек памяти в процессах.[источник не указан 250 дней]
htop также используется как system monitor[англ.][17].
Возможности
правитьhtop по умолчанию сортирует список процессов по величине, позволяющей оценить продолжительность времени выполнения процесса на ЦПУ (клавиша P) («CPU%»). Также сортировка возможна по размеру занятой процессом памяти (клавиша M) («MEM%»), по времени выполнения процесса в пространстве ядра и пространстве пользователя (клавиша T) («TIME+») и по любому отображаемому параметру процесса (клавиши < и >).[источник не указан 250 дней]
htop показывает:[источник не указан 250 дней]
- время, прошедшее с момента запуска ОС (англ. uptime);
- загруженность ОС (англ. load average);
- размеры страниц памяти, размещённых в ОЗУ («Mem»);
- размеры страниц памяти, сохранённых в файл или на раздел подкачки («Swp»);
- нагруженность всех процессоров («CPU») или каждого процессора/ядра по отдельности.
В отличие от утилиты top, htop:[источник не указан 250 дней]
- по умолчанию показывает список всех процессов, запущенных в ОС;
- позволяет выполнять вертикальную и горизонтальную прокрутку списка процессов (клавиши стрелок);
- реализует диалог (клавиша S), позволяющий менять настройки без перезапуска программы, например, выбрать параметры процессов для показа, поменять цветовую схему;
- позволяет отправлять сигнал одному или нескольким выбранным процессам без ввода pid (клавиша k) (аналог функциональности утилиты kill);
- также без ввода pid позволяет:
- менять приоритет nice процесса для планировщика процессов (клавиши [ и ]) (аналог функциональности утилит nice и renice);
- выбирать процессоры/ядра, на которых процесс может выполняться (клавиша a) (см. affinity mask[англ.]) (аналог функциональности утилиты taskset из пакета util-linux);
- менять приоритет операций ввода-вывода для планировщика ввода-вывода (клавиша i) (аналог функциональности утилиты ionice);
- просматривать значения переменных окружения (клавиша e);
- поддерживает мышь.
Также htop:[источник не указан 250 дней]
- позволяет выбирать несколько процессов из списка:
- клавиша пробел — выделение одного процесса;
- клавиша c — выделение процесса и всех его дочерних процессов;
- клавиша U — отменить выделение;
- позволяет выполнять поиск по pid (клавиши цифр) или по имени процесса (клавиши / и \);
- позволяет просматривать открытые процессом файлы (клавиша l) (аналог функциональности утилиты lsof);
- позволяет следить за системными вызовами процесса (клавиша s) (аналог функциональности утилиты strace[англ.]);
- позволяет следить за вызовами процессом библиотечных функций (клавиша s) (аналог функциональности утилиты ltrace[англ.]);
- позволяет просматривать процессы, запущенные от имени одного пользователя (клавиша u);
- может выводить процессы в виде дерева (клавиша t) (аналог функциональности утилиты pstree[англ.]);
- может показывать потоки процессов пользователя (клавиша H) и потоки ядра (клавиша K);
- использует CSI коды для разукрашивания выводимого текста.
- Значения цветов
Цвет по умолчанию[18] | Время ЦПУ тратится на выполнение …[19] | ||
---|---|---|---|
Синий | low | … потоков пользователя, у которых приоритет nice больше 0 (низкие приоритеты) | |
Зелёный | normal | … потоков пользователя, у которых приоритет nice меньше или равен 0 (нормальный и высокие приоритеты) | |
Красный | kernel | … потоков ядра ОС | |
Жёлтый | irq | … обработчиков аппаратных прерываний | |
Маджента | soft-irq | … обработчиков программных прерываний | |
Сине-зелёный | steal и guest | … виртуальных машин | |
Чёрный | io-wait | … ожидания завершения операций ввода-вывода |
Цвет по умолчанию[18] | Назначение[19][20] | |
---|---|---|
Зелёный | used[m 1] = physical[m 2] - kernel_binary[m 3] - reserved[m 4] - buffers[m 5] - cache[m 6] - free[m 7] | |
Синий | buffers[m 5] | |
Жёлтый | cache[m 6] |
- ↑ used — размер страниц памяти, находящихся в ОЗУ.
- ↑ physical — размер памяти, доступной на ОЗУ.
- ↑ kernel_binary — размер памяти, занятой исполняемым кодом ядра.
- ↑ reserved — размер зарезервированной памяти.
- ↑ 1 2 buffers — размер памяти ядра, используемой для временного хранения raw данных, прочитанных с диска или предназначенных для записи на диск.
- ↑ 1 2 cache — память ядра, находящаяся в ОЗУ и используемая для хранения содержимого файлов, прочитанных с диска.
- ↑ free — размер свободной памяти; сумма свободной памяти, размещёной по малым адресам (англ. lowmem) и используемой ядром, и свободной памяти, размещённой по большим адресам (англ. highmem) и доступной процессам пространства пользователя.
См. также
правитьПримечания
править- ↑ https://hisham.hm/htop/releases/0.1/
- ↑ Hisham H. Muhammad. Скачать htop (англ.). Официальный сайт проекта. Дата обращения: 14 февраля 2016. Архивировано 10 августа 2015 года.
- ↑ 1 2 Index of /htop/releases . Дата обращения: 1 апреля 2017. Архивировано 4 мая 2017 года.
- ↑ Текст лицензии htop // GitHub.com.
- ↑ Сайт программы pinfo Архивная копия от 2 мая 2015 на Wayback Machine.
- ↑ [[Часто задаваемые вопросы]] о htop (англ.). Официальный сайт htop. Дата обращения: 4 августа 2015. Архивировано 26 марта 2015 года.
- ↑ [htop-general] Announce: htop 0.6.1 // Список рассылки htop. Сообщение опубликовано 9 мая 2006 года в 20:10:29.
- ↑ FreshPorts -- sysutils/htop Архивная копия от 6 сентября 2015 на Wayback Machine. История порта программы htop для ОС FreeBSD // FreshPorts.org.
- ↑ Порт htop Архивная копия от 28 декабря 2010 на Wayback Machine для ОС FreeBSD // FreeBsdSoftware.org.
- ↑ [htop-general] Announce: htop 0.6.6 // Список рассылки htop. Сообщение опубликовано 1 июня 2007 года в 19:07:22.
- ↑ [htop-general] [ANN] htop 0.8.2 // Список рассылки htop. Сообщение опубликовано 2 июня 2009 года в 05:21:11.
- ↑ Muhammad, 2016.
- ↑ htop Архивная копия от 28 января 2016 на Wayback Machine // SourceForge.net.
- ↑ Исходный код htop Архивная копия от 1 августа 2015 на Wayback Machine // GitHub.com.
- ↑ Список рассылки htop Архивная копия от 17 февраля 2016 на Wayback Machine // FreeLists.org.
- ↑ [1]Архивная копия от 16 февраля 2016 на Wayback Machine[htop] [ANN] htop 1.0.3 // Список рассылки htop. Сообщение опубликовано 24 апреля 2014 года в 20:25:34 UTC−3:00.
- ↑ System monitoring with htop (англ.). Хостинговая компания Rackspace (12 июня 2014). Дата обращения: 4 августа 2015. Архивировано из оригинала 24 сентября 2015 года.
- ↑ 1 2 Файл CRT.c Архивная копия от 15 февраля 2016 на Wayback Machine // Исходный код htop на сайте github.com.
- ↑ 1 2 doc/Documentation/filesystems/proc.txt Архивная копия от 6 июля 2015 на Wayback Machine // Описание файловой системы procfs на сайте kernel.org.
- ↑
proc(5)
— страница справки man по форматам файлов GNU/Linux (англ.).
Ссылки
править- htop.dev — официальный сайт Htop
- github.com/htop-dev/htop — официальный сайт репозитория проекта
- Muhammad, H. H. Going cross-platform - how htop was made portable : докл. на конф-ии : [англ.] : [арх. 15 марта 2016] // FOSDEM 2016 (ULB Solbosch campus, Brussels, Belgium; 30-31 Jan 2016). — 2016. — 31 January.
(слайды доклада Архивная копия от 21 февраля 2016 на Wayback Machine).</ref>.