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 — зомби. Это процесс, родитель которого не получил сигнала о завершении потомка и не очистил связанные с ним структуры ядра. То есть дочернего процесса нет, он не тратит процессорного времени и других ресурсов, а запись в таблице процессов осталась. Такие процессы нужно убивать вручную.
Данный текст является ознакомительным фрагментом.