Монитор процессов linux / htop
Для удобства анализа запущенных процессов и потребления ими ресурсов / управления процессами — удобна программа htop
Устанавливаем программу:
sudo apt update sudo apt install htop
Подключим репозиторий EPEL.
yum -y install epel-release
Установка программы из репозитория:
yum -y install htop
Запуск
Для запуска программы выполните команду:
htop
Чтобы изменить интервал обновления выхода htop, используйте опции командной строки htop -d x
:
htop -d 10
где х упоминается в десятках секунд.
F1 — справка;
F2 — настройки;
F3 — поиск процесса;
F4 — сортировка списка процессов (от большего к меньшему или от меньшего к большему);
F5 — устанавливает древовидное отображение (корни — родительские процессы, а листья — дочерние) и наоборот;
F6 — открывает панель с выбором параметра сортировки процессов;
F7 — увеличить приоритет выполнения текущего процесса;
F8 — уменьшить приоритет выполнения текущего процесса;
F9 — убить процесс;
F10 — выйти из программы.
htop по умолчанию сортирует список процессов по величине, позволяющей оценить продолжительность времени выполнения процесса на ЦПУ (клавиша P) («CPU%»).
Также сортировка возможна по размеру занятой процессом памяти (клавиша M) («MEM%»), по времени выполнения процесса в пространстве ядра и пространстве пользователя (клавиша T) («TIME+») и по любому отображаемому параметру процесса (клавиши < и >).
htop показывает:
- время, прошедшее с момента запуска операционной системы (uptime);
- загруженность операционной системы (load average);
- размеры страниц памяти, размещённых в ОЗУ («Mem»);
- размеры страниц памяти, сохранённых в файл или на раздел подкачки («Swp»);
- нагруженность всех процессоров («CPU») или каждого процессора/ядра по отдельности.
В отличие от утилиты top, htop:
- по умолчанию показывает список всех процессов, запущенных в операционной системе;
- позволяет выполнять вертикальную и горизонтальную прокрутку списка процессов (клавиши стрелок);
- реализует диалог (клавиша S), позволяющий менять настройки без перезапуска программы, например, выбрать параметры процессов для показа, поменять цветовую схему;
- позволяет отправлять сигнал одному или нескольким выбранным процессам без ввода pid (клавиша k);
- также без ввода pid позволяет:
- менять приоритет nice процесса для планировщика процессов (клавиши [ и ]) ;
- выбирать процессоры/ядра, на которых процесс может выполняться (клавиша a);
- менять приоритет операций ввода-вывода для планировщика ввода-вывода (клавиша i);
- просматривать значения переменных окружения (клавиша e);
- поддерживает мышь.
- позволяет выбирать несколько процессов из списка:
- клавиша пробел — выделение одного процесса;
- клавиша c — выделение процесса и всех его дочерних процессов;
- клавиша U — отменить выделение;
- позволяет выполнять поиск по pid (клавиши цифр) или по имени процесса (клавиши / и \);
- позволяет просматривать открытые процессом файлы (клавиша l);
- позволяет следить за системными вызовами процесса (клавиша s);
- позволяет следить за вызовами процессом библиотечных функций (клавиша s);
- позволяет просматривать процессы, запущенные от имени одного пользователя (клавиша u);
- может выводить процессы в виде дерева (клавиша t);
- может показывать потоки процессов пользователя (клавиша H) и потоки ядра (клавиша K);
- использует CSI коды для разукрашивания выводимого текста.
Цвет по умолчанию |
Время ЦПУ тратится на выполнение … | ||
---|---|---|---|
Синий | low | … потоков пользователя, у которых приоритет nice больше 0 (низкие приоритеты) | |
Зелёный | normal | … потоков пользователя, у которых приоритет nice меньше или равен 0 (нормальный и высокие приоритеты) | |
Красный | kernel | … потоков ядра ОС | |
Жёлтый | irq | … обработчиков аппаратных прерываний | |
Маджента | soft-irq | … обработчиков программных прерываний | |
Сине-зелёный | steal и guest | … виртуальных машин | |
Чёрный | io-wait | … ожидания завершения операций ввода-вывода |
Цвет по умолчанию | Назначение | |
---|---|---|
Зелёный | used = physical — kernel_binary — reserved — buffers — cache — free | |
Синий | buffers | |
Жёлтый | cache |
- used — размер страниц памяти, находящихся в ОЗУ.
- physical — размер памяти, доступной на ОЗУ.
- kernel_binary — размер памяти, занятой исполняемым кодом ядра.
- reserved — размер зарезервированной памяти.
- buffers — размер памяти ядра, используемой для временного хранения raw данных, прочитанных с диска или предназначенных для записи на диск.
- cache — память ядра, находящаяся в ОЗУ и используемая для хранения содержимого файлов, прочитанных с диска.
- free — размер свободной памяти; сумма свободной памяти, размещенной по малым адресам (lowmem) и используемой ядром, и свободной памяти, размещённой по большим адресам (highmem) и доступной процессам пространства пользователя.
PID — идентификатор процесса.
USER — владелец процесса.
PRI — текущий приоритет (влияет на процессорное время, отводимое процессу, значение по умолчанию — 20; чем меньше приоритет, тем больше времени отводится процессу, следовательно он выполняется быстрее).
NI — величина изменения приоритета относительно значения PRI (клавиши F7, F8).
VIRT — общий объем виртуальной памяти, используемой процессом. Включает в себя: область кода (CODE), данные (DATA), разделяемые библиотеки (SHARED) и страницы, перемещенные в swap-область памяти. Если приложение потребовало от ядра выделить ему 100Мб памяти, а использует всего 5 Мб, данный столбец всё равно будет показывать цифру 100.
- CODE — объем памяти, содержащий исполняемый код процесса.
- DATA — объем памяти, занятой данными, используемыми процессом в ходе выполнения.
- SWAP — объем памяти, используемой процессом, но перемещенной в swap-область.
RES — количество резидентной (не перемещаемой в swap) памяти в килобайтах. Если приложение потребовало от ядра выделить ему 100Мб памяти, а использует всего 5 Мб, то данный столбец покажет 5. Но здесь есть два ньюанса:
а) RES не показывает сколько данных было перемещено в swap,
б) часть RES-памяти может быть разделяемой.
SHR — количество разделяемой (shared) памяти программы в килобайтах, то есть памяти, которая может быть использована другими приложениями.
S — состояние процесса:
S — так называемое состояние сна;
R — состояние выполнения;
D — состояние ожидания.
CPU% — использование процессора в процентном отношении.
MEM% — использование процессом памяти в процентном отношении.
TIME+ — время работы процесса.
Command — указывает на команду, которой был запущен процесс.
Через настройки (F2) можно добавить еще некоторые полезные параметры:
- IO RATE — Операции ввода\вывода. Чтение + запись. Если нужно отдельно на чтение и на запись, то можно добавить:
- IO READ RATE и IO WRITE RATE.
Также на экран выводятся следующие параметры:
Load average — отражает число блокирующих процессов в очереди на исполнение в определенный временной интервал, а именно 1 минута, 5 минут и 15 минут, соответственно. Блокирующий процесс — это процесс, который ожидает ресурсов для продолжения работы.
Uptime — время работы системы.