9.2.3. Процессы в реальном времени: команда top

9.2.3. Процессы в реальном времени: команда top

Команда top предназначена для наблюдения за процессами в реальном времени и интерактивного управления ими. Терминал, на котором запущена программа top, превращается в окно, разделенное на области (рис. 9.4, сверху вниз):

? сведения о системе — продолжительность текущего сеанса, количество задач, использование памяти и процессора, средняя длина очереди задач, ожидающих выполнения (load average) и т.п.;

? командная строка;

? заголовки столбцов;

? область задач. Задачи в терминологии top — это не только пользовательские процессы — потомки init, но и системные процессы — части ядра.

Рис. 9.4. Программа top запущена на виртуальном терминале

Каждые несколько секунд (по умолчанию 3 секунды) окно обновляется.

В командную строку можно вводить команды управления самими задачами или порядком отображения сведений в окне программы top. Вот некоторые из таких команд:

h — вызов справки;

q — завершение работы программы (для выхода можно нажать и комбинацию Ctrl+C);

u — показывать только процессы, запущенные определенным пользователем (следует указывать его регистрационное имя, а не UID);

d — изменить интервал обновления;

f — добавить или удалить столбцы;

F — изменить столбец, по которому сортируются задачи. По умолчанию это %CPU — доля использованного процессорного времени, но можно сортировать, например, по убыванию объема занятой памяти;

i — переключатель отображения: либо все задачи, либо только активные (в состоянии Running);

k — отправить процессу сигнал. Программа спросит у вас PID процесса, а затем номер или название сигнала. По умолчанию посылается сигнал TERM;

r — изменить приоритет процесса.

Количество и порядок отображаемых свойств процесса (столбцов) можно изменять. Всего доступно 26 свойств процесса (нумеруемых буквами английского алфавита), и соответствующие им заголовки столбцов перечислены в секции DESCRIPTIONS of Fields man-страницы команды top. На рис. 9.4 (команда top запущена с настройками по умолчанию) отображены следующие свойства:

? PID — PID процесса;

? USER — регистрационное имя владельца процесса;

? PR — приоритет;

? NI — показатель уступчивости (см. п.9.2.4);

? VIRT — занятая виртуальная память в килобайтах;

? RES — физическая (без подкачки) память, занятая процессом;

? SHR — объем разделяемой памяти, используемой процессом;

? S — состояние процесса;

? %CPU — доля процессорного времени, доставшаяся процессу с момента последнего обновления экрана;

? %MEM — доля занятой процессом физической памяти;

? TIME+ — процессорное время, израсходованное с момента запуска процесса, в секундах с сотыми долями;

? COMMAND — либо имя исполняемого файла программы, либо вся командная строка с аргументами. Режим переключается вводом в командную строку команды «с».

Процесс может находиться в одном из следующих состояний, отображаемых в столбце «S»:

? R (Running) — активен, то есть находится в основной памяти и ждет выделения ему процессорного времени либо уже выполняется;

? S (Sleeping) — выгружен из основной памяти;

? T (Traced) — приостановлен, например, в ходе отладки;

? D — состояние непрерываемого ожидания: процесс может быть «разбужен» только прямым (direct) сигналом от оборудования;

? Z — зомби. Это процесс, родитель которого не получил сигнала о завершении потомка и не очистил связанные с ним структуры ядра. То есть дочернего процесса нет, он не тратит процессорного времени и других ресурсов, а запись в таблице процессов осталась. Такие процессы нужно убивать вручную.

Данный текст является ознакомительным фрагментом.