ps

[править]

Материал из Википедии — свободной энциклопедии

Текущая версия (не проверялась)

Перейти к: навигация, поиск

У этого термина существуют и другие значения, см. PS.

ps (от англ. process status) — программа в UNIX, Unix-подобных и других POSIX-совместимых операционных системах, выводящая отчёт о работающих процессах.

Содержание

[убрать]

  • 1 Синтаксис

  • 2 Выводимая информация

  • 3 Параметры STAT

  • 4 Примеры использования

  • 5 Примечания

  • 6 Ссылки

[править] Синтаксис

ps [опции]

  • Опции, отбирающие процессы для отчёта:

    • -A : все процессы;

    • -a : связанные с конкретным терминалом, кроме главных системных процессов сеанса, часто используемая опция;

    • -N : отрицание выбора;

    • -d : все процессы, кроме главных системных процессов сеанса;

    • -e : все процессы;

    • T : все процессы на конкретном терминале;

    • a : процессы, связанные с текущим терминалом, а так же процессы других пользователей;

    • r : информация только о работающих процессах;

    • x : процессы, отсоединённые от терминала.

[править] Выводимая информация

Столбцы:

  • UID : идентификатор пользователя;

  • PID : идентификатор процесса;

  • PPID : идентификатор родительского процесса;

  • C : приоритет процесса, используемый планировщиком задач;

  • STIME : время старта процесса;

  • TTY : терминал, с которым связан данный процесс;

  • TIME : общее время работы процесса;

  • CMD : команда, запустившая данный процесс «с некоторыми опциями выводит и каталог откуда процесс был запущен»;

  • STAT : состояние, в котором на данный момент находится процесс.

[править] Параметры STAT

  • R : процесс выполняется в данный момент

  • S : процесс ожидает выполнение (спит)

  • D : процесс в полной (непрерываемой) спячке, например, ожидает ввода/вывода

  • Z : zombie или defunct процесс, то есть процесс у которого нет родителя

  • T : процесс остановлен

  • W : процесс в свопе

  • < : процесс в приоритетном режиме.

  • N : процесс в режиме низкого приоритета

  • L : real-time процесс, имеются страницы, заблокированные в памяти.

[править] Примеры использования

# ps

PID TTY TIME CMD

2643 pts/0 00:00:00 su

2644 pts/0 00:00:00 bash

3092 pts/0 00:00:00 ps

# ps ax

PID TTY STAT TIME COMMAND

1 ? S 0:01 init [3]

2 ? SN 0:00 [ksoftirqd/0]

3 ? S< 0:00 [events/0]

4 ? S< 0:00 [khelper]

5 ? S< 0:00 [kblockd/0]

29 ? S 0:00 [pdflush]

# ps af

PID TTY STAT TIME COMMAND

2617 pts/0 Ss 0:00 -bash

2643 pts/0 S 0:00 \_ su -

2644 pts/0 S 0:00 \_ -bash

3100 pts/0 R+ 0:00 \_ ps af

2176 tty6 Ss+ 0:00 /sbin/mingetty tty6

2175 tty5 Ss+ 0:00 /sbin/mingetty tty5

[править] Примечания

  • Альтернативой ps является команда top, удобно выводящая на экран постоянно обновляющуюся информацию, однако top ограничена размерами окна, поэтому всё, что не может поместиться на экран, просто игнорируется.

  • Для команды ps удобно пользоваться конвейером и утилитой less для пролистывания выводимой информации с помощью кнопок вверх и вниз, например ps ax | less

  • С помощью утилиты grep удобно искать и выводить только нужные процессы, например ps ax | grep smbd

  • В связи с возможностью написания модуля, подгружаемого к ядру, и возвращающего на запрос от ps модифицированный список процессов, администраторам не рекомендуется всецело полагаться на результаты ps и top при подозрениях на возможность несанкционированного вмешательства.

PS(1)

НАЗВАНИЕ ps - выдача информации о состоянии процессов

СИНТАКСИС

ps [-e] [-d] [-a] [-f] [-l] [-n файл_с_системой] [-t список_терминалов]

[-p список_идентификаторов_процессов]

[-u список_идентификаторов_пользователей]

[-g список_идентификаторов_лидеров_групп]

ОПИСАНИЕ Команда ps выдает информацию об активных процессах. По умолчанию информация дается только о процессах, ассоциированных с данным терминалом. Выводятся идентификатор процесса, идентификатор терминала, истраченное к данному моменту время ЦП и имя команды. Если нужна иная информация, следует пользоваться опциями.

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

Командой ps обрабатываются следующие опции:

-e

Вывести информацию обо всех процессах.

-d

Вывести информацию обо всех процессах, кроме лидеров групп.

-a

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

-f

Генерировать полный листинг (см. ниже раз яснение смысла колонок).

-l

Генерировать листинг в длинном формате (см. ниже).

-n файл_с_системой

Считать, что операционная система загружена из файла_с_системой, а не из файла /unix.

-t список_терминалов

Выдавать информацию только о процессах, ассоциированных с терминалами из заданного списка_терминалов. Терминал - это либо имя файла-устройства, например ttyномер или console, либо просто номер, если имя файла начинается с tty.

-p список_идентификаторов_процессов

Выдавать информацию только об указанных процессах.

-u список_идентификаторов_пользователей

Выдавать информацию только о процессах с заданными идентификаторами или входными именами пользователей. Идентификатор пользователя выводится в числовом виде, а при наличии опции -f - в символьном.

-g список_идентификаторов_лидеров_групп

Выводить информацию только о процессах, для которых указаны идентификаторы лидеров групп. Лидер группы - это процесс, номер которого идентичен его идентификатору группы. Shell, запускаемый при входе в систему, является стандартным примером лидера группы.

При указании опции -f ps пытается определить имя команды и аргументы, с которыми был создан процесс, исследуя пользовательский блок процесса. Если это не удается, имя процесса выводится так же, как и при отсутствии опции -f, только заключается в квадратные скобки.

Ниже приводятся заголовки колонок выдачи и об ясняется смысл их содержимого. Буквы l или f в скобках означают, что эта колонка появляется соответственно при длинном или полном формате выдачи; отсутствие букв означает, что данная колонка выводится всегда. Отметим, что опции -l и -f влияют только на формат выдачи, но не на список процессов, информация о которых будет предоставлена.

F (l)

Флаги (шестнадцатеричные), логическая сумма которых дает следующие сведения о процессе:

00

Процесс терминирован; элемент таблицы процессов свободен.

01

Системный процесс: всегда в основной памяти.

02

Процесс трассируется родительским процессом.

04

Родительский трассировочный сигнал остановил процесс; родительский процесс ждет [см. ptrace(2)].

08

Процесс не может быть разбужен сигналом.

10

Процесс в основной памяти.

20

Процесс в основной памяти; блокирован до завершения события.

40

Идет сигнал к удаленной системе.

80

Процесс в очереди на ввод/вывод.

S (l)

Статус процесса:

O

Активный: обрабатывается процессором.

S

Спящий: ожидает завершения события.

R

Готов: стоит в очереди на выполнение.

I

Рождающийся: процесс создается.

Z

Состояние "зомби": процесс завершен, но родительский процесс не ждет этого.

T

Трассируемый: процесс остановлен сигналом, так как родительский процесс трассирует его.

X

Растущий: процесс ожидает получения большего об ема основной памяти.

UID (f,l)

Идентификатор владельца процесса; при указании опции -f выдается входное имя пользователя.

PID

Идентификатор процесса (необходим для терминирования процесса).

PPID (f,l)

Идентификатор родительского процесса.

C (f,l)

Доля выделенного планировщиком времени ЦП.

STIME (f)

Время запуска процесса (часы:минуты:секунды). Если процесс запущен более чем 24 часа назад, выдается месяц и день запуска.

PRI (l)

Приоритет процесса; большее число означает меньший приоритет.

NI (l)

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

ADDR (l)

Адрес процесса в памяти.

SZ (l)

Размер (в блоках по 512 байт) образа процесса в памяти.

WCHAN (l)

Адрес события, которого ожидает процесс. У активного процесса эта колонка пуста.

TTY

Управляющий терминал (обычно - терминал, с которого был запущен процесс; см. ниже СЮРПРИЗЫ). Если такового нет, выдается символ ?.

TIME

Истраченное процессом время ЦП.

COMMAND

Имя программы; если указана опция -f, то выводится полное имя команды и ее аргументы.

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

ФАЙЛЫ

/dev

/dev/sxt/*

/dev/tty*

/dev/kmem Виртуальная память ядра.

/dev/mem Память.

/etc/passwd Файл паролей, из которого берется инфор-

мация об идентификаторах пользователей.

/etc/ps_data Внутренняя структура данных.

/unix Имя файла, откуда была загружена операци-

онная система.

СМ. ТАКЖЕ acctcom(1), kill(1), nice(1). getty(1M) в Справочнике администратора.

СЮРПРИЗЫ Во время выполнения команды ps положение вещей может измениться; таким образом, ps дает лишь хорошее приближение к действительности.

Некоторые сведения, относящиеся к процессам, отмеченным как , не соответствуют действительности.

Если не указана ни одна из опций -t, -p, -u, -g, команда ps проверяет стандартный ввод, стандартный вывод и стандартный протокол (в указанном порядке) для определения управляющего терминала и пытается вывести информацию о процессах, ассоциированных с этим терминалом. В ситуации, когда все три стандартных направления ввода/ вывода переназначены, ps не может найти и выдать имя управляющего терминала.

Команда ps -ef может не отметить начало входа в систему, а вывести сведения о последнем запуске getty(1M) для данной терминальной линии.

11.3. ps

Итак, теперь вы знаете как переключаться между несколькими процессами, запущенными из командной строки. А также вы знаете, что в системе постоянно выполняется много других процессов. Так каким же образом можно получить перечень всех этих программ? Для этого вам нужно воспользоваться командой ps(1). У этой команды есть много опций, поэтому мы рассмотрим только самые важные из них. Чтобы получить полный список опций, обратитесь к странице руководства ps. Использование страниц руководства подробно рассмотрено в Разд. 2.1.1.

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

Рисунок 11-1. Наиболее общий вывод команды ps

% ps

PID TTY TIME CMD

7923 ttyp0 00:00:00 bash

8059 ttyp0 00:00:00 ps

И хотя процессов здесь не так уж и много, это весьма типичная информация. Вы увидите те же самые колонки при использовании ps, независимо от того, сколько процессов выполняется в системе. Что же это тогда значит?

PID - это идентификатор процесса (process ID). Все работающие процессы имеют уникальные идентификаторы в диапазоне от 1 до 32767. Каждому новому процессу присваивается следующий свободный PID. Когда процесс завершает свою работу (или убивается, как вы увидите в следующем разделе), он освобождает свой PID. При достижении в системе максимального PID, следущим берётся первый свободный PID с наименьшим номером и так по кругу.

Колонка TTY обозначает терминал, в котором выполняется процесс. При простом вызове ps будет выведен список только тех программ, которые выполняются в текущем терминале. Поэтому все процессы будут иметь одну и ту же информацию в колонке TTY. Как видно в примере, оба процесса в списке выполняются в терминале ttyp0. Это означает, что они выполняются или удалённо, или в каком-нибудь X-терминале.

Колонка TIME содержит данные о времени, в течение которого процесс использует ресурсы центрального процессора. Однако это не то время, в течение которого выполняется процесс. Помните, что Linux является многозадачной операционной системой. В ней постоянно выполняется множество процессов и каждый из них получает небольшую порцию процессорного времени. Поэтому колонка TIME должна содержать для каждого процесса как можно меньшее значение времени по сравнению с тем временем, в течение которого выполняется этот процесс. Если вы видите в этой колонке значение более нескольких минут, это может означать, что что-то идёт не так.

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

Вы можете получить полный список процессов, выполняемых в вашей системе, используя правильный набор опций. Это скорее всего приведёт к тому, что вы получите большой список процессов (на моём ноутбуке на время написания этого предложения их было 55 (а на моём ПК - 110 :) - прим. переводчика), поэтому я несколько сокращу вывод:

% ps -ax

PID TTY STAT TIME COMMAND

1 ? S 0:03 init [3]

2 ? SW 0:13 [kflushd]

3 ? SW 0:14 [kupdate]

4 ? SW 0:00 [kpiod]

5 ? SW 0:17 [kswapd]

11 ? S 0:00 /sbin/kerneld

30 ? SW 0:01 [cardmgr]

50 ? S 0:00 /sbin/rpc.portmap

54 ? S 0:00 /usr/sbin/syslogd

57 ? S 0:00 /usr/sbin/klogd -c 3

59 ? S 0:00 /usr/sbin/inetd

61 ? S 0:04 /usr/local/sbin/sshd

63 ? S 0:00 /usr/sbin/rpc.mountd

65 ? S 0:00 /usr/sbin/rpc.nfsd

67 ? S 0:00 /usr/sbin/crond -l10

69 ? S 0:00 /usr/sbin/atd -b 15 -l 1

77 ? S 0:00 /usr/sbin/apmd

79 ? S 0:01 gpm -m /dev/mouse -t ps2

94 ? S 0:00 /usr/sbin/automount /auto file /etc/auto.misc

106 tty1 S 0:08 -bash

108 tty3 SW 0:00 [agetty]

109 tty4 SW 0:00 [agetty]

110 tty5 SW 0:00 [agetty]

111 tty6 SW 0:00 [agetty]

[вывод сокращён]

Большинство этих процессов запускаются во время загрузки на большинстве систем. Я внёс некоторые изменения в свою систему, поэтому ваш список наверняка будет совершенно иным. Однако вы увидите большинство этих процессов и в своей системе. Как видите, эти опции позволили получить опции командной строки выполняемых процессов. Уязвимость в ядре в функции ptrace стала причиной исправления кода ядра, в результате которого для многих выполняемых процессов больше не показываются опции командной строки. В данном примере названия этих процессов заключены в квадратные скобки, например у процессов с PID'ами от 108 до 111. В этом листинге также появилось несколько новых колонок и некоторая другая интересная информация.

Во-первых, вы заметите, что большинство процессов в списке работают в tty“?”. Они не привязаны ни к одному из терминалов. Это является самым распространённым случаем для демонов, т.е. процессов, которые выполняются без привязки к какому-либо терминалу. Примеры демонов: sendmail, BIND, apache и NFS. Обычно они ожидают запросов от клиентов и возвращают информацию на полученные запросы.

Во-вторых, здесь появился новый столбец: STAT. В нём отображается состояние процесса. S означает, что процесс спит (sleeping), т.е. ожидает какого-либо события. Z означает процесс-зомби. Такой процесс появляется в том случае, когда умирает его родительский процесс, оставив после себя дочерний процесс. Это нехорошая ситуация. D означает процесс, который перешёл в “непробудный” сон. Часто такие процессы невозможно убить даже путём отправки им сигнала SIGKILL. Вы узнаете больше о SIGKILL в следующем разделе, посвящёном команде kill. W означает paging (страничную подкачку файлов). Мёртвые процессы обозначаются как X. Процессы, отмеченные как T, трассируются или остановлены. R означает, что процесс можно запустить.

Если вы хотите получить ещё более подробную информацию о выполняемых процессах, попробуйте выполнить следующую команду:

% ps -aux

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 1 0.0 0.0 344 80 ? S Mar02 0:03 init [3]

root 2 0.0 0.0 0 0 ? SW Mar02 0:13 [kflushd]

root 3 0.0 0.0 0 0 ? SW Mar02 0:14 [kupdate]

root 4 0.0 0.0 0 0 ? SW Mar02 0:00 [kpiod]

root 5 0.0 0.0 0 0 ? SW Mar02 0:17 [kswapd]

root 11 0.0 0.0 1044 44 ? S Mar02 0:00 /sbin/kerneld

root 30 0.0 0.0 1160 0 ? SW Mar02 0:01 [cardmgr]

bin 50 0.0 0.0 1076 120 ? S Mar02 0:00 /sbin/rpc.port

root 54 0.0 0.1 1360 192 ? S Mar02 0:00 /usr/sbin/sysl

root 57 0.0 0.1 1276 152 ? S Mar02 0:00 /usr/sbin/klog

root 59 0.0 0.0 1332 60 ? S Mar02 0:00 /usr/sbin/inet

root 61 0.0 0.2 1540 312 ? S Mar02 0:04 /usr/local/sbi

root 63 0.0 0.0 1796 72 ? S Mar02 0:00 /usr/sbin/rpc.

root 65 0.0 0.0 1812 68 ? S Mar02 0:00 /usr/sbin/rpc.

root 67 0.0 0.2 1172 260 ? S Mar02 0:00 /usr/sbin/cron

root 77 0.0 0.2 1048 316 ? S Mar02 0:00 /usr/sbin/apmd

root 79 0.0 0.1 1100 152 ? S Mar02 0:01 gpm

root 94 0.0 0.2 1396 280 ? S Mar02 0:00 /usr/sbin/auto

chris 106 0.0 0.5 1820 680 tty1 S Mar02 0:08 -bash

root 108 0.0 0.0 1048 0 tty3 SW Mar02 0:00 [agetty]

root 109 0.0 0.0 1048 0 tty4 SW Mar02 0:00 [agetty]

root 110 0.0 0.0 1048 0 tty5 SW Mar02 0:00 [agetty]

root 111 0.0 0.0 1048 0 tty6 SW Mar02 0:00 [agetty]

[вывод сокращён]

Это практически вся информация о системе. В ней присутствует дополнительная информация о процессе: какой пользователь его запустил, сколько он использует системных ресурсов (колонки %CPU, %MEM, VSZ и RSS) и когда был запущен. Очевидно, что такая подробная информация может пригодиться системному администратору. Следует отметить ещё один момент: данные теперь вылезают за пределы экрана, и вы не можете увидеть их полностью. Опция -w заставит ps переносить длинные строки.

Это не слишком удобно, но это работает. Теперь в вашем распоряжении полный отчёт по всем процессам. Существует даже ещё более подробная информация, которую вы можете получить о процессе. Обратитесь к хорошей странице руководства по команде ps. Тем не менее представленные выше опции являются самыми популярными, и скорее всего именно их вы будете использовать наиболее часто.

  • Home

  • Карта сайта

  • О Sun Solaris

Начало формы

Конец формы

Команда ps

01.07.2008

Команду ps можно использовать для того, чтобы определить, какие процессы ра­ботают (или не работают), а также получить следующую более детальную ин­формацию о каждом процессе:

  • PID (Process ID);

  • UID (UserlD);

  • приоритет;

  • контролирующий терминал;

  • процессорное время;

  • текущее состояние.

Команда ps отображает информацию о состоянии системы на тот момент, когда вы выполнили эту команду. Если вы наблюдаете за изменением состояния системы с течением времени, имейте в виду, что в то время, когда вы читаете с экрана инфор­мацию, полученную при помощи ps, эта информация уже несколько устарела. Далее перечислены наиболее часто используемые ключи команды ps. Более полный список ключей можно найти в страницах электронной докумен­тации ps(1). -e Доклад обо всех процессах

-f Показать владельца процесса по имени вместо UID в первой колонке. Этот ключ отменяет ключи -l, -t, -s и -r и включает -а

-l Генерирует длинный доклад, в котором содержатся все поля за исключением STIME

О чем докладывает команда ps Когда вы набираете ps -e и нажимаете Enter, вы получаете доклад о процессах, который выглядит приблизительно следующим образом:

sol% /usr/bin/ps -e

PIO TTY TIME COMD

0 ? 0:02 sched

1 ? 0:01 init

2 ? 0:00 pageout

192 ? 0:00 sac

79 ? 0:10 inetd

75 ? 0:01 in.route

136 ? 0:04 automon

143 ? 0:01 cron

123 ? 0:01 statd

104 ? 0:01 rpebind

106 ? 0:01 rpc.rwall

108 ? 0:01 rpc.ruse

110 ? 0:01 rpc.spra

113 ? 0:01 ypbind

115 ? 0:00 keyserv

117 ? 0:01 kerbd

127 ? 0:02 lockd

251 pts/0 0:00 ps

165 ? 0:00 sendmail

193 ? 0:01 ttymon

174 ? 0:03 syslogd

!56 ? 0:01 Ipsched

209 ? 0:02 in.rlogi

211 pts/0 0:03 csh

164 ? 0:00 IpNet

Описание колонок вывода ps

PID Идентификатор процесса (Process ID)

TTY Терминал, с которого запущен процесс (или его родитель). Если процесс не имеет контролирующего терминала, в этом ноле стоит знак вопроса (?). Процессы, помеченные знаком вопроса, как правило, являются системными процессами

TIME Суммарное процессорное время, используемое для выполнения данного процесса

COMD Имя команды, которая сгенерировала этот процесс. Обратите внимание, что при использовании команды ps -e в составе доклада отображаются только первые восемь символов имени файла

Если вы наберете ps -el и нажмете Enter, вы получите листинг, который вы­глядит следующим образом

sol% /usr/bin/ps -el

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME COMD

19 T 0 0 0 80 0 SY f010f1c8 0 ? 0:02 sched

8 S 0 1 0 251 1 20 ff1ad800 48 ff1ad9c4 ? 0:01 init

19 S 0 2 0 0 0 SY ff1ad000 0 ff1ad07d ? 0:00 pageout

8 S 0 192 0 49 1 20 ff1f7000 238 ff2de348 ? 0:00 sac

8 S 0 79 1 80 1 20 ff232800 291 f010f1a4 ? 0:10 inetd

8 S 0 75 1 80 1 20 ff249000 258 f010f1a4 ? 0:01 in.route

8 S 0 136 1 80 1 20 ff2c3000 327 f010f1a4 ? 0:04 automon

8 S 0 143 1 149 1 20 ff293000 287 ff2de448 ? 0:01 cron

8 S 0 123 1 80 1 20 ff28e000 270 f010f1a4 ? 0:01 statd

8 S 0 104 1 80 1 20 ff25a000 301 f010f1a4 ? 0:01 rpcbind

8 S 0 106 1 77 1 20 ff258800 272 f010f1a4 ? 0:01 rpc.rwall

8 S 0 108 1 80 1 20 ff260800 272 f010f1a4 ? 0:01 rpc.ruse

8 S 0 110 1 78 1 20 ff256600 272 f010f1a4 ? 0:01 rpc.spra

(остальные строки удалены из этого примера)

Описание полей этого листинга далее:

F Текущее состояние процесса. Обозначается шестнадцатиричным числом, представляющим собой сумму флагов

  • 00 - Процесс завершен, его место в таблице процессов свободно

  • 01 - Процесс является системным и всегда находится в памяти

  • 02 - За процессом следит его родительский процесс

  • 04 - За процессом следит родительский процесс, при этом процесс остановлен

  • 08 - Процесс невозможно вывести из состояния ожидания сигналом

  • 10 - Процесс в настоящее время находится в памяти и блокирован до момента, пока завершится событие

  • 20 - Процесс нельзя переместить в виртуальную намять

S Текущее состояние процесса. Обозначается одной из латинских букв:

  • О - В текущий момент процесс исполняется процессором

  • S - Находится в состоянии ожидания (sleeping); ожидает завершения ввода/вывода

  • R - Готов к работе

  • I - Находится в состоянии холостого хода (Idle); процесс создается

  • Z - Зомби. Процесс завершил рабту и его родитель не ожидает, однако мертвый процесс все еще содержится в таблице процессов

  • Т - Остановлен, так как родительский процесс следит за ним

  • X - Ожидает выделения дополнительной памяти

UID Идентификатор пользователя (User ID), владеющего процессом

PID Идентификатор процесса (Process ID)

PPID Идентификатор родительского процесса

С Нагрузка на процессор, создаваемая процессом (оценка доли процессорного времени, используемого процессом)

PRI Приоритет выполнения процесса. Чем больше это число, тем ниже приоритет

NI Число nice, соответствующее процессу. Это число влияет на приоритет процесса. Чем больше это число, тем ниже приоритет процесса, а значит, тем меньше процесс расходует процессорного времени

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

TTY Терминал, с которого запущен процесс (или его родитель). Если процесс не имеет контролирующего терминала, в этом поле отображается знак вопроса (как правило, это означает, что процесс является системным)

TIME Общее количество процессорного времени, использованного па выполнение процесса с момента его запуска

COMD Команда, в результате выполнения которой начал работу процесс

Использование доклада ps Если вы просто хотите проверить, какие процессы и демоны в настоящий момент работают в системе, используйте команду ps -е. Если вы нуждаетесь в более под­робной информации о работающих в системе процессах, используйте команду ps -el. Полный список ключей команды ps можно найти в страницах электрон­ной документации ps(1). Когда у вас появится опыт, вы сможете заранее пред­ставлять себе, как именно будет выглядеть доклад, и сможете быстро обнаружить, что именно является аномалией. Чтобы идентифицировать потенциальные проблемы, вы можете использовать следующие соображения.

  • Обращайте внимание на множество идентичных заданий, принадлежащих одному и тому же пользователю. Подобная ситуация может возникнуть в слу­чае, если кто-либо запустил сценарий, который породил множество фоновых задач, не ожидая при этом окончания работы каждой из них. Чтобы понять, в чем дело, обратитесь к пользователю. В случае необходимости используйте команду kill для того, чтобы уничтожить некоторые из задач.

  • Обращайте внимание на процессы, в поле TIME которых обозначено слишком большое количество процессорного времени. Слишком большое значение TIME Может указывать на то, что процесс находится в бесконечном цикле.

  • Обращайте внимание на поле С, при помощи которого вы можете обнаружить Маловажные процессы, потребляющие слишком большую долю процессорного времени. Если вы думаете, что некоторый процесс не имеет права на столь большое внимание со стороны ЦПУ, используйте команду priocntl для того, чтобы понизить его приоритет. Более подробно об этом рассказывается в стра­ницах электронной документации priocntl(1).

  • Обращайте внимание на поле SZ, при помощи которого вы можете обнаружить процессы, использующие слишком большой объем памяти. Если процесс за­владел слишком большим объемом памяти, вы можете уничтожить его. Если большое количество процессов нуждается в больших объемах памяти, возмож­но, в вашей системе следует установить больший объем ОЗУ.

  • Следите за процессами, которые со временем потребляют все большее коли­чество процессорного времени. Это обстоятельство можно обнаружить, вос­пользовавшись ключом -f. Сравните стартовое время процесса (STIME) и сум­марное процессорное время, потраченное на выполнение процесса (TIME).

Соседние файлы в папке материалы к собеседованию