it-swarm-ru.tech

Показать пять лучших процессорных процессов с `ps`

Как показать топ-5 процессов, потребляющих процессор, с помощью ps?

115
PlanasB

Зачем использовать ps, если это легко сделать с помощью команды top?

Если вы должны использовать ps, попробуйте это:

ps aux | sort -nrk 3,3 | head -n 5

Если вы хотите что-то действительно "топовое" с постоянными обновлениями, используйте watch

watch "ps aux | sort -nrk 3,3 | head -n 5"
112
Boban P.

правильный ответ:

ps --sort=-pcpu | head -n 6

Таким образом, вы можете указать столбцы, не мешая сортировке.

Пример:

ps -Ao user,uid,comm,pid,pcpu,tty --sort=-pcpu | head -n 6

Примечание для MAC OS X: В Mac OS X ps не распознает --sort, но предлагает -r для сортировки по текущему использованию процессора. Таким образом, для Mac OS X вы можете использовать:

ps -Ao user,uid,comm,pid,pcpu,tty -r | head -n 6
94
Facundo Victor

В зависимости от ваших потребностей вы можете найти это немного более читабельным:

ps -eo pcpu,pid,user,args --no-headers| sort -t. -nk1,2 -k4,4 -r |head -n 5

образец вывода:

 1.3     4 root     [ksoftirqd/0]
 1.1     9 root     [ksoftirqd/1]
 1.0 17606 nobody   /usr/sbin/gmetad
 1.0    13 root     [ksoftirqd/2]
 0.3 17401 nobody   /usr/sbin/gmond

(поля% CPU, PID, USER, COMMAND)

28
Ryan Horrisberger

Я не думаю, что ps это то, что вы ищете. Вы смотрели на вывод top?

Если у вас есть GNU-Top, попробуйте использовать его пакетный режим, чтобы выложить список процессов, отсортированный по использованию процессора, и использовать head/tail, чтобы получить верхние 5 строк (первые 8 - заголовки):

top -b -n 1 | head -n 12  | tail -n 5

Вершина BSD, кажется, ведет себя по-другому и не имеет неинтерактивного режима, поэтому используйте одно из других решений на основе ps.

24
Caleb

Самый быстрый вкладыш, который я нашел для этого (примечание 6, потому что заголовок складывается):

ps aux k-pcpu | head -6
6
Nestor Urquiza

Обратите внимание, что текущие версии ps имеют возможность сортировки внутри них на основе кодов полей (приведенных на странице руководства ps). Код поля для использования процессора - "с". Ты можешь использовать --sort c в конце команды ps, например ps aux --sort c

Это поместит процесс, используя большую часть процессора внизу списка. Обратный порядок в списке путем добавления минуса к коду поля, используемому для сортировки, например. ps aux --sort -c

5
Cian D

Чтобы добавить точку к другим ценным ответам, я предпочитаю:

ps auxk-c | head -6

Он также печатает заголовок, который является хорошим.

Здесь k идентично --sort и ​​c указывает использование процессора (псевдоним %cpu) поле для сортировки, а - для обратной сортировки.

Вы можете добавить больше спецификаторов, разделенных ,, другие возможные спецификаторы: %mem, args, bsdstart, pid, gid, uid ..., полный список которых вы можете найти в СТАНДАРТНЫЕ ФОРМАТИЧЕСКИЕ ХАРАКТЕРИСТИКИ раздел справочной страницы. Например:

 ps auxk -gid,-%mem | head -11

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

4
2i3r

У инструмента командной строки ps есть свой собственный параметр сортировки, поэтому я предпочитаю:

$ ps -eo pcpu,args --sort=-%cpu | head

Вы можете добавить столбцы, которые вы хотите. Посмотрите, какие другие опции доступны на странице руководства ps.

$ man ps
3
Christopher James Morton

Я считаю, что самый простой способ увидеть процесс загрузки топ-5 процессоров это,

ps -eo pid,comm,%cpu,%mem --sort=-%cpu | head -n 5

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

ps -eo pid,comm,%cpu,%mem --sort=-%mem | head -n 5

Куда,

-e: Этот флаг используется для выбора всего процесса

-o: Этот флаг используется для форматирования как пользовательский.

pid: этот аргумент используется для отображения pid

comm: Этот аргумент используется только для отображения имени команды. Чтобы получить полную команду, используйте args, cmd или command

%cpu: Этот аргумент показывает процент использования ЦП процессом в формате "##. #". Здесь также можно использовать pcpu.

%mem: Этот аргумент показывает отношение размера резидентного набора процесса к физической памяти на машине, выраженное в процентах. Здесь также можно использовать pmem.

--sort: Укажите порядок сортировки. После = _ - знак используется для сортировки наибольшего значения в верхней части, где по умолчанию используется значение + - перечислить возрастающий числовой порядок [т.е. от 0 до n].

0
muhammad

top в Mac OS X имеет параметр режима ведения журнала в виде top -l numberOfSamples (что, по-видимому, эквивалентно пакетному режиму GNU top). Однако необходимо иметь как минимум два сэмпла, потому что "отображается первый сэмпл будет отображаться неверный% CPU для каждого процесса, так как он рассчитывается с использованием дельты между выборками "(man 1 top).

# examples
top -o cpu -l 2 -n 5 | tail -n 6
top -o cpu -l 2 -n 5 -stats pid,command,cpu | tail -n 6
top -o cpu -l 2 -n 5 -stats pid,command,cpu -U $(logname) | tail -n 6
0
ulf

top покажет, что использует ваш процессор. Если он у вас установлен, htop позволяет вам более детально управлять, включая фильтрацию - в вашем случае - процессором.

0
PSN