Администрирование FreeBSD, Linux, ... htop: как проанализировать использование памяти Sat, February 22 2025  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


htop: как проанализировать использование памяти Печать
Добавил(а) microsin   

1. Скройте потоки пользователя Shift + H.
2. Кнопка F5 позволяет переключаться из списка в дерево процессов и обратно. Список процессов позволяет отсортировать интересующие вас процессы по PID и прочитать столбец RES и SHR (RES - SHR = общая занятая процессом память).
3. Сортировка по MEM% осуществляется нажатием Shift + M.
4. Кнопка F3 позволяет осуществлять быструю навигацию по командной строке запущенного процесса.

htop main screen example

Назначение столбцов, описывающих использование памяти, следующее.

VIRT: сколько виртуальной памяти использует процесс. Обозначает виртуальный размер процесса, который представляет собой сумму памяти, которую он фактически использует, памяти, которую он сопоставил с собой (например, ОЗУ видеокарты для X-сервера), файлов на диске, которые были сопоставлены с ним (в частности, общие библиотеки), и памяти, совместно используемой с другими процессами. VIRT представляет, сколько памяти программа может получить в данный момент.

RES: сколько физической памяти использует процесс. Измеряется в килобайтах, если нет суффикса наподобие M. RES обозначает резидентный размер, который является точным представлением того, сколько фактической физической памяти занимает процесс (это также непосредственно соответствует столбцу %MEM). Это фактически всегда будет меньше размера VIRT, так как большинство программ зависит от библиотеки C.

SHR: сколько общей (shared) памяти использует процесс.

htop - утилита для интерактивного просмотра информации о процессах (interactive process viewer).

SYNOPSIS

htop [-dCFhpustvH]

ОПИСАНИЕ

Утилита htop представляет собой кроссплатформенный, основанный на ncurses просмотрщик процессов. Программа работает наподобие top, однако предоставляет больше полезных функций. Вы можете выполнять вертикальный и горизонтальный скроллинг, и взаимодействовать с информационным экраном интерактивно (с помощью мыши). Вы можете наблюдать за всеми работающими в системе процессами, вместе с их аргументами командной строки, в виде списка или в формате дерева, выбирать несколько процессов и выполнять над ними действия одновременно

Функции, относящиеся к процессам (уничтожение, восстановление), могут осуществляться без ввода их PID.

ОПЦИИ КОМАНДНОЙ СТРОКИ

Аргументы, обязательные для длинных опций, также являются обязательными и для коротких опций.

-d --delay=DELAY

   Задает задержку между обновлениями в десятых долях секунды. Если значение задержки меньше 1, то она увеличивается до 1, т. е. составит 1/10 секунды. Если значение задержки больше 100, то она уменьшается до 100, т. е. интервал обновления составит 10 секунд.

-C --no-color --no-colour

   Запустит htop в монохромном режиме.

-F --filter=FILTER

   Фильтр процессов по их команде.

-h --help

   Отобразит подсказку и завершит работу программы.

-p --pid=PID,PID...

   Покажет только указанные PID.

-s --sort-key COLUMN

   Покажет список с сортировкой по указанному столбцу COLUMN (используйте подсказку htop --sort-key=help для получения списка столбцов).

-u --user=USERNAME

   Покажет только процессы указанного пользователя USERNAME.

-U --no-unicode

   Для отображения графики шкал не будет использовать символы Юникода, вместо этого будут использоваться только символы ASCII.

-M --no-mouse

   Запретит поддержку управления мышью.

-V --version

   Выведет информацию версии и завершит работу.

-t --tree

   Отобразит процессы в формате дерева. Это можно использовать для принудительного отображения дерева при запросе порядка сортировки с помощью -s.

-H --highlight-changes=DELAY

   Подсвечивать новые и старые процессы.

ИНТЕРАКТИВНЫЕ КОМАНДЫ (горячие клавиши)

Up, Alt-k

   Выберет (выделит) предыдущий процесс в списке процессов. При необходимости прокрутит список.

Down, Alt-j

   Выберет (выделит) следующий процесс в списке процессов. При необходимости прокрутит список.

Left, Alt-h

   Прокрутка списка процессов влево.

Right, Alt-l

   Прокрутка списка процессов вправо.

PgUp, PgDn

   Прокрутка вверх и вниз списка на одно окно.

Home

   Прокрутка в верхнюю часть списка, и выбор первого в списке процесса.

End

   Прокрутка в верхнюю часть списка, и выбор последнего в списке процесса.

Ctrl-A, ^

   Прокрутка влево до начала информационной строки процесса.

Ctrl-E, $

   Прокрутка влево до конца информационной строки процесса.

Space

   Установка и или снятие метки на процессе. Команды, которые могут работать на нескольких процессах, наподобие "kill", будут тогда применены по списку помеченных процессов вместо одного выбранного текущего.

c

   Пометит текущий процесс и его дочерние процессы (children). Команды, которые могут работать на нескольких процессах, наподобие "kill", будут тогда применены по списку помеченных процессов вместо одного выбранного текущего.

U

   Снятие метки со всех процессов (меток, которые были установлены клавишами Space или c).

s

   Трассировка системных вызовов процесса: если установлена strace(1), то нажатие на эту клавишу подключит strace к текущему выбранному процессу, представляя обновляемую в реальном времени информацию о системных вызовах, которые осуществляет процесс.

l

   Отобразит открытые файлы процесса: если установлена lsof(1), то нажатие на эту клавишу отобразит список дескрипторов файлов, открытых процессом.

w

   Отобразит командную строку выделенного процесса на отдельном экране, при необходимости в нескольких строках.

x

   Отобразит на отдельном экране активные блокировки файлов (file locks) выбранного процесса.

F1, h, ?

   Отобразит экран помощи.

F2, S

   Отобразит экран настроек, где вы можете сконфигурировать графические индикаторы, отображаемые в верхней части экрана, установить различные опции отображения, выбрать цветовые схемы, выбрать какие столбцы и в каком порядке отображать.

F3, /

   Инкрементальный поиск (по мере ввода символов шаблона) по командным строкам всех отображаемых в списке процессов. По мере вашего ввода будет обновляться текущий выбор процесса. В режиме поиска нажатия F3 будут циклически перебирать процессы, совпавшие с введенным шаблоном поиска. Нажатия Shift-F3 будут перебирать процессы в обратном порядке.

   Альтернативно можно начать поиск простым вводам искомой команды, хотя первый символ горячей клавиши будет иметь приоритет.

F4, \

   Инкрементальная фильтрация (по мере ввода символов шаблона) процессов: вводится часть командной строки процесса, и будут отображаться только те процессы, имена которых совпали с введенным шаблоном. Для отмены фильтрации снова активируйте опцию Filter и нажмите Esc.

F5, t

   Отображение списка процессов в формате дерева: показывается взаимоотношение процессов вида родитель-потомок. Повторное нажатие на эту клавишу циклически переключает режимы отображения между деревом и обычным списком.

F6,

   Выберет поля для сортировки, также доступные через . Текущее поле сортировки показывается подсветкой в заголовке.

F7, ]

   Увеличивает приоритет процесса (вычитание из значения 'nice'). Это может работать только для суперпользователя.

F8, [

   Уменьшает приоритет процесса (добавляет значение 'nice').

F9, k

   "Kill" процесса: пошлет сигнал, который выбиран в меню, в один процесс или в группу процессов. Если было помечено несколько процессов, то сигнал посылается им всем. Если ни один из процессов не отмечен, то сигнал будет послан только текущему выбранному процессу.

F10, q

   Выход.

I

   Инверсия порядка сортировки: если список сортирован в порядке нарастания, то он сортируется в порядке убывания, и наоборот.

+, -

   В режиме формата дерева развернет или свернет список ветви дерева (subtree). Когда subtree свернуто, "+" показывает оставшееся имя процесса (родитель).

a (на многоядерных машинах)

   Установит CPU affinity: пометит, какие CPU разрешено использовать процессу.

u

   Покажет только те процессы, владельцем которых является указанный пользователь.

N

   Сортировка по PID.

M

   Сортировка по использованию памяти.

P

   Сортировка по использованию процессора.

T

   Сортировка по времени.

F

   "Follow", следовать за процессом: если порядок сортировки заставляет текущий выбранный процесс перемещаться в списке, то плашка курсора выбора следует за ним. Это полезно для мониторинга процесса: таким методом можно сохранить видимость на экране интересущего процесса. Когда используется кнопка перемещения, фича "follow" теряет свой эффект.

K

   Скрыть потоки ядра (kernel threads): предотвращает отображение в списке потоков, принадлежащих ядру (клавиша работает как триггер функции).

H

   Скрыть потоки пользователя (user threads): в системах, которые представляют их иначе, чем обычные процессы (например, недавние системы на основе NPTL), это может скрывать потоки от процессов пространства пользователя (userspace) в списке процессов (клавиша работает как триггер функции).

p

   Покажет полные пути запущенных программ, где это применимо (клавиша работает как триггер функции).

Z

   Пауза/возобновление обновлений процесса.

m

   Слияние exe, comm и cmdline в команде, где это применимо. Т. е. если программа была запущена без указания полного пути, то будет показано только имя исполняемого файла и наоборот, полный путь до исполняемого файла с выделением части имени файла бинарника (клавиша работает как триггер функции).

Ctrl-L

   Обновление: перерисовывает экран и заново вычисляет его информационные значения.

Цифры

   Поиск по PID: ввод идентификатора процесса, и плашка выбора переместится к нему.

СТОЛБЦЫ

The следующие столбцы могут отображать данные по каждому процессу. Значение '-' во всех строка означает, что этот столбец не поддерживается в вашей системе, или в настоящее время не реализован в htop. Ниже показаны имена, используемые в разделе "Available Columns" экрана настройки. Если отображается другое имя на основном экране htop, оно показано ниже в скобках.

Command

   Полная командная строка процесса (т. е. имя программы и её аргументы командной строки). Если клавиша m активировала опцию 'Слияние exe, comm и cmdline в команде', и если это можно прочитать, то путь до исполнямого файла (/proc/[pid]/exe) и имя команды (/proc/[pid]/comm) также показываются слитно с командной строкой.

Comm

   Имя команды процесса, полученное из /proc/[pid]/comm, если это можно прочитать.

Exe

   Сокращенное базовое имя исполняемого файла процесса, полученное из /proc/[pid]/exe, если это можно прочитать. Утилита htop может прочитать этот файл на linux для ВСЕХ процессов, только если она имеет такую возможность (capability CAP_SYS_PTRACE) или имеет привилегии root.

PID

   Числовой идентификатор процесса (process ID).

STATE (S)

   Состояние процесса:

      S sleeping (idle)
      R running
      D для disk sleep (uninterruptible)
      Z zombie (ожидание процесса родителя, чтобы прочитать его статус выхода)
      T для трассируемых или приостановленных (например сигналом SIGTSTP)
      W для paging

PPID

   Числовой идентификатор родительского процесса (parent process ID).

PGRP

   Числовой идентификатор группы процессов (process's group ID).

SESSION (SID)

   Идентификатор сессии процесса ID.

TTY_NR (TTY)

   Терминал, управляющий процессом.

TPGID

   Идентификатор процесса группы процессов переднего плана (foreground process group) управляющего терминала.

MINFLT

   Количество ошибок обращения к странице (page faults), случившихся в основной памяти.

CMINFLT

   Количество незначительных ошибок (minor faults) для ожидаемых потомков процесса (см. MINFLT выше).

MAJFLT

   Количество page faults, произошедших вне основной памяти.

CMAJFLT

   Количество major faults для ожидаемых потомков процесса (см. MAJFLT выше).

UTIME (UTIME+)

   Время CPU пользователя, которое потратил процесс на CPU в режиме пользователя (т. е. все время кроме системных вызовов), измеряемое в тиках системы (clock ticks).

STIME (STIME+)

   Системное время CPU, которое представляет собой количество времени, затраченное ядром на выполнение системных вызовов от имени процесса, измеряемое в тиках (clock ticks).

CUTIME (CUTIME+)

   Время пользователя CPU потомков процесса, которое представляет собой количество времени, в течение которого ожидаемые дочерние процессы процесса выполнялись в пользовательском режиме (см. UTIME выше).

CSTIME (CSTIME+)

   Системное время CPU потомков процесса, которое представляет собой количество времени, которое ядро ​​потратило на выполнение системных вызовов от имени всех ожидаемых дочерних процессов (см. STIME выше).

PRIORITY (PRI)

   Внутренний приоритет ядра для процесса. Как правило это просто значение nice плюс 20. Отличается для процессов реального времени (real-time processes).

NICE (NI)

   Значение nice процесса, от 19 (низкий приоритет) до -20 (высокий приоритет). Высокое значение увиличивает "хорошесть" процесса для системы, когда процесс уступает процессорное время другим процессам, у которых более высокий относительный приоритет. Применяются обычные ограничения разрешений операционной системы для настройки приоритета.

STARTTIME (START)

   Время, когда процесс стартовал.

PROCESSOR (CPU)

   Идентификатор процессора (CPU ID), на котором процесс выполнялся последний раз.

M_VIRT (VIRT)

   Объем виртуальной памяти процесса.

M_RESIDENT (RES)

   Объем резидентного набора памяти процесса (text + data + stack), т. е. размер используемой физической памяти.

M_SHARE (SHR)

   Объем общих страниц процесса (shared pages).

M_TRS (CODE)

   Объем набора резидентных text процесса (т. е. размер памяти для исполняемых инструкций процесса).

M_DRS (DATA)

   Объем набора резидентных data процесса (data + stack), т. е. размер всей памяти кроме исполняемых инструкций.

M_LRS (LIB)

   Объем библиотек процесса.

M_DT (DIRTY)

   Объем "грязных" страниц процесса (dirty pages).

M_SWAP (SWAP)

   Объем памяти свопа процесса.

M_PSS (PSS)

   Объем пропорционального набора; то же самое, что и M_RESIDENT, но каждая страница делится на количество процессов, разделяющих ее.

M_M_PSSWP (PSSWP)

   Пропорциональная доля подкачки этого сопоставления, в отличие от M_SWAP, не учитывает выгруженную страницу базовых объектов shmem.

ST_UID (UID)

   Идентификатор пользователя (user ID) владельца процесса.

PERCENT_CPU (CPU%)

   Процент времени CPU, который процесс потребляет в настоящий момент.

PERCENT_MEM (MEM%)

   Процент памяти, который процесс использует в настоящий момент (основывается на объеме резидентной памяти процесса, см. выше M_RESIDENT).

USER

   Имя пользователя владельца процесса, или ID если имя нельзя определить.

TIME (TIME+)

   Время, измеренная в тиках системы (clock ticks), которое является суммой пользовательского и системного времени (см. выше UTIME, STIME).

NLWP

   Количество потоков в процессе.

TGID

   Идентификатор группы потока (thread group ID).

CTID

   OpenVZ container ID, a.k.a virtual environment ID.

VPID

   OpenVZ process ID.

VXID

   VServer process ID.

RCHAR (RD_CHAR)

   Количество байт, прочитанных процессом.

WCHAR (WR_CHAR)

   Количество байт, записанных процессом.

SYSCR (RD_SYSC)

   Количество системных вызовов чтения (read(2) syscalls) для процесса.

SYSCW (WR_SYSC)

   Количество системных вызовов записи (write(2) syscalls) для процесса.

RBYTES (IO_RBYTES)

   Байтов read(2) I/O для процесса.

WBYTES (IO_WBYTES)

   Байтов write(2) I/O для процесса.

CNCLWB (IO_CANCEL)

   Байтов отмененных write(2) I/O.

IO_READ_RATE (DISK READ)

   Скорость I/O read(2) в байтах на секунду для процесса.

IO_WRITE_RATE (DISK WRITE)

   Скорость I/O write(2) в байтах на секунду для процесса.

IO_RATE (DISK R/W)

   Скорость I/O, IO_READ_RATE + IO_WRITE_RATE (см. выше).

CGROUP

   В какой cgroup находится процесс.

OOM

   OOM killer score.

CTXT

   Инкрементальная сумма добровольных (voluntary) и принудительных (nonvoluntary) переключений контекста.

IO_PRIORITY (IO)

   Класс планирования ввода/вывода (I/O scheduling class), за которым следует приоритет, если класс это поддерживает:

      R для Realtime
      B для Best-effort
      id для Idle

PERCENT_CPU_DELAY (CPUD%)

   Процент времени, потраченного на ожидание CPU (в состоянии runnable). Требуется CAP_NET_ADMIN.

PERCENT_IO_DELAY (IOD%)

   Процент времени, потраченного на ожидание завершения синхронного блочного I/O. Требуется CAP_NET_ADMIN.

PERCENT_SWAP_DELAY (SWAPD%)

   Процент времени, потраченного на переключение страниц. Требуется CAP_NET_ADMIN.

COMM

   Имя команды для процесса. Требуется Linux kernel 2.6.33 или более свежая версия.

EXE

   Исполняемый файл процесса, о котором сообщило ядро. Требуется CAP_SYS_PTRACE и PTRACE_MODE_READ_FSCRED.

Все другие флаги в настоящий момент не поддерживаются (всегда показывают '-').

ВНЕШНИЕ БИБЛИОТЕКИ

Хотя htop зависит от большинства библиотек, которые он использует во время сборки, из этого правила есть два примечательных исключения. Оба этих исключения относятся к данным, отображаемым в индикаторах заголовка htop, и вместо этого были намеренно созданы как необязательные зависимости времени выполнения. Эти исключения описаны ниже:

libsystemd

   Привязки libsystemd используются в счетчике SystemD для определения количества активных служб и общего состояния системы. Поиск функций для определения этой информации во время выполнения позволяет сборкам поддерживать эти счетчики, не заставляя менеджер пакетов устанавливать эти библиотеки в системах, которые в противном случае не используют systemd.

   Краткое описание: нет зависимости от времени сборки, необязательная зависимость от libsystemd во время выполнения посредством динамической загрузки, с резервным вариантом systemctl(1).

libsensors

   Привязки для libsensors используются для показаний температуры процессора в счетчиках использования процессора, если отображение температуры включено на экране настройки. Однако для того, чтобы htop правильно отображал эти температуры, предполагается правильная настройка libsensors через его обычные файлы конфигурации, и что все ядра CPU соответствуют датчикам температуры из драйвера coretemp, причем ядро ​​0 соответствует датчику с меткой "Core 0". Температура пакета может быть указана как "Package id 0". Если оно отсутствует, то определяется как максимальное значение из доступных показаний для каждого ядра.

   Краткое описание: зависимость времени сборки от заголовочных файлов libsensors(3) C, необязательная зависимость времени выполнения от libsensors(3) посредством динамической загрузки.

ФАЙЛ КОНФИГУРАЦИИ

   По умолчанию htop считывает и записывает свою конфигурацию по XDG-совместимому пути ~/.config/htop/htoprc. Конфигурационный файл перезаписывается встроенной в htop программой конфигурации (Setup), так что его не следует редактировать вручную. Если конфигурация пользователя не существует, то htop пытается прочитать конфигурацию системного уровня из /etc/htoprc, и как последний шанс, выполнит откат к значениям по умолчанию, жестко вшитыми в код (hard-coded defaults). При выходе htop сохраняет свою текущую выбранную конфигурацию, а при входе её считывает, так что htop вспомнит свой общий вид, который вы использовали последний раз.

   Вы можете переназначить конфигурационный файл, используя переменную окружения $HTOPRC (так что у вас может быть, например, несколько конфигураций на разных машинах, которые имеют общую домашнюю директорию).

РАЗМЕРЫ ПАМЯТИ

   Отображаемые объемы памяти имеют удобочитаемую форму. Размеры печатаются в степенях 1024 (т. е. 1023M = 1072693248 байт).

   Решение использовать это соглашение было принято для того, чтобы сохранить экранное пространство и сделать представления размера памяти последовательными по всему htop.

СМ. ТАКЖЕ

   proc(5), top(1), free(1), ps(1), uptime(1) and limits.conf(5).

АВТОРЫ

   Утилита htop была изначально разработана Hisham Muhammad. Сейчас htop поддерживается комьюнити .

[Ссылки]

1. How to read memory usage in htop? site:serverfault.com.
2. Ubuntu FAQ.

 

Добавить комментарий


Защитный код
Обновить

Top of Page