Linux: утилита htop

Автор: | 04/08/2016
 

linux_logoОбщие сведения

htop — хорошо известная утилита для мониторинга, аналог top.

При запуске с настройками по умолчанию — она выглядит так:

htop_explained_1

Верхняя часть окна делится на правую и левую колонки. В левой отображается нагрузка на процессор и использование памяти. В правой — общее кол-во запущенных процессов, нагрузка за 1, 5 и 15 минут и время с последней перезагрузки сервера.

Цветовые обозначения строки состояния CPU и MEM разделяются по приоритетам процессов и типам используемой памяти.

Настройка отображения

htop поддерживает отображение расширенной информации, как это делает top в виде по умолчанию:

htop_explained_2

Для настройки внешнего вида htop — жмем F2 или s:

htop_explained_3

С помощью стрелок влево-вправо — можно перемещаться между колонками.

Например для того, что бы включить отображение расширенной информации об используемой и свободной в правой колонке — выбираем Meters, переходим в Available meters и с помощью F6 добавляем Memory:

htop_explained_4

Затем — переходим в Right column, выбираем Memory — и с помощью F4 выбираем тип отображаемой информации:

htop_explained_5

Аналогично — для процессора:

htop_explained_6

Что бы отобразить расширенную информацию о прцоессоре и задачах (например — IOwait) — переходим в Display options:

htop_explained_7

и с помощью пробела добавляем Detailed CPU time:

htop_explained_8

Настройка отображаемых колонок, например — добавить вывод IO_RATE:

htop_explained_9

С помощью F7/F8 перемещаеем на желаемую позицию.

Выходим по F10 и смотрим:

htop_explained_10

Там же можно переключить цетовую схему:

htop_explained_11

Значения цветов в htop

htop_explained_12

Для CPU, к примеру, по умолчанию заданы следующие цвета:

  • синий: процессы с низким приоритетом (nice > 0);
  • зеленый: процессы с нормальным (приоритет пользователя) приоритетом;
  • красный: процессы с приоритетом ядра;

Для MEM — следующие:

  • зелёный: используемая память
  • синий: буферы
  • оранжевый: системный кэш

При расширенном отображении информации о CPU применяются следующие цвета:

  • синий: процессы с низким приоритетом (nice > 0);
  • зеленый: процессы с нормальным (приоритет пользователя) приоритетом;
  • красный: процессы с приоритетом ядра;
  • желтый: irq (прерывания оборудования);
  • пурпурный:  soft-irq (прерывания приложений);
  • серый: IOwait (ожидаение ввода-вывода).

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

При отображении раширенной информации о CPU htop выводит:

Load average: есть описание в посте Linux: CPU Load – когда пора волноваться или что значит Load Average;

  • us (User CPU time): время, затраченное CPU на обработку пользовательских процессов с обычным приоритетом;
  • sy (System CPU time): время, затраченное CPU на обработку запросов ядра и его процессов;
  • ni (Nice CPU time): время, затраченное CPU на обработку пользовательских процессов с повышенным приоритетом;
  • wa (iowait): время, затраченное CPU на ожидание операций ввода/вывода (I/O time);
  • hi (Hardware IRQ): время, затраченное CPU на обработку прерываний от оборудования (IRQ);
  • si (Software Interrupts): время, затраченное CPU на обработку прерываний от приложений (Soft IRQ);
  • st (Steal Time): время CPU, «украденное» у виртуальной машины (точнее — у виртуального процессора этой машины)  ее гипервизором для решения других задач (например — на работу другой виртуальной машины).

Информация о процессах

  • PID: Process ID процесса;
  • USER: пользователь-владелец процесса;
  • PRI: приоритет процесса;
  • NI: значение nice процесса;
  • VIRT: занятая процессом виртуальная память;
  • RES: занятая процессом физическая память;
  • SHR: используемая процессом общая память;
  • S: статус процесса (sleeping, running и т.д.).
  • CPU%: % потребления времени CPU процессом;
  • MEM%: % доступной физической памяти, занятой процессом;
  • TIME+: % времени CPU, использованный процессом;
  • COMMAND: команда запуска процесса.

Дополнительные возможности

Поиск процесса — F3 или /:

htop_explained_13

Быстрый фильтр — F4 или \:

htop_explained_14

Отобразить дерево процессов — F5 или t:

htop_explained_15

Отправить сигнал процессу — F9 или k:

htop_explained_16

Выделить (или — «установить тег») процесс — пробел:

htop_explained_17

Можно выделить несколько процессов, и затем отправить, например, сигнал SIGKILL сразу всем:

htop_explained_20

«Следить» за процессом — F.

Сортировать по CPU%, MEM% или TIME+P, M или T соответственно.

Выбрать вручную колонку для сортировки — F6.

Запустить lsof и отобразить все открытые процессом файлы — l:

htop_explained_18

Запустить strace и отобразить все системные вызовы процесса — s.

Запустить ltrace и отобразить все библиотечные вызовы процесса — L.

Отобразить все эти подсказки — F1 или h 🙂

Почитать по теме:

What are software and hardware interrupts, and how are they processed?

Understanding Linux Process States

UNIX: top и ps – VIRT, RES, SHR и SWAP память

Linux: CPU Load – когда пора волноваться или что значит Load Average