Linux: утилита htop

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

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: есть описание в посте 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