Общие сведения
htop
– хорошо известная утилита для мониторинга, аналог top
.
При запуске с настройками по умолчанию – она выглядит так:
Верхняя часть окна делится на правую и левую колонки. В левой отображается нагрузка на процессор и использование памяти. В правой – общее кол-во запущенных процессов, нагрузка за 1, 5 и 15 минут и время с последней перезагрузки сервера.
Цветовые обозначения строки состояния CPU
и MEM
разделяются по приоритетам процессов и типам используемой памяти.
Настройка отображения
htop
поддерживает отображение расширенной информации, как это делает top
в виде по умолчанию:
Для настройки внешнего вида htop
– жмем F2 или s:
С помощью стрелок влево-вправо – можно перемещаться между колонками.
Например для того, что бы включить отображение расширенной информации об используемой и свободной в правой колонке – выбираем Meters
, переходим в Available meters
и с помощью F6 добавляем Memory
:
Затем – переходим в Right column
, выбираем Memory
– и с помощью F4 выбираем тип отображаемой информации:
Аналогично – для процессора:
Что бы отобразить расширенную информацию о прцоессоре и задачах (например – IOwait
) – переходим в Display options
:
и с помощью пробела добавляем Detailed CPU time
:
Настройка отображаемых колонок, например – добавить вывод IO_RATE
:
С помощью F7/F8 перемещаеем на желаемую позицию.
Выходим по F10 и смотрим:
Там же можно переключить цетовую схему:
Значения цветов в htop
Для 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 или /:
Быстрый фильтр – F4 или \:
Отобразить дерево процессов – F5 или t:
Отправить сигнал процессу – F9 или k:
Выделить (или – “установить тег”) процесс – пробел:
Можно выделить несколько процессов, и затем отправить, например, сигнал SIGKILL
сразу всем:
“Следить” за процессом – F.
Сортировать по CPU%
, MEM%
или TIME+
– P, M или T соответственно.
Выбрать вручную колонку для сортировки – F6.
Запустить lsof
и отобразить все открытые процессом файлы – l:
Запустить 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