Показывать пять процессоров, обрабатывающих процессы с `ps`

Как показать первую пятерку процессорных процессов с ps?

11 Solutions collect form web for “Показывать пять процессоров, обрабатывающих процессы с `ps`”

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

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

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

Если вы хотите что-то действительно «top'esq с постоянными обновлениями, используйте часы

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

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

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

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

Пример:

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

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

 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)

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

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

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

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

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

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

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

 ps aux k-pcpu | head -6 

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

 ps auxk-c | head -6 

Он также печатает заголовок, что приятно.

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

Вы можете добавить больше спецификаторов, разделенных bsdstart другие возможные спецификаторы: %mem , args , bsdstart , pid , gid , uid … которые вы можете найти полный список в разделе STANDARD FORMAT SPECIFIERS на странице man. Например:

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

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

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

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

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

 $ man ps 

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 

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

top -bn1 |sed -n '7,12'p работает как приятный маленький лайнер.
Хотя я предпочитаю использовать ps с –sort = X -o X, Y, Z

используя ps, вы можете вытащить разные статистики grep для процесса ИЛИ пользователя, а затем суммировать ИЛИ avg их с трубой до awk.

  • Как я могу получить полный список процессов в Solaris без усеченных линий?
  • Вызовите 'ps' как обычный пользователь в Linux
  • Как получить RUSER и EUSER процесса (FreeBSD)
  • Получает ли этот диспетчер процесс зомби?
  • Найти всех пользователей, которые имеют более N процессов и эхо их в оболочке
  • Сортировка вывода `ps`
  • grep - почему скобки в шаблоне grep удаляют процесс grep из результатов ps?
  • AIX, почему ps показывает имя процесса между квадратными скобками?
  • Что может заставить ps сообщать uid вместо имени пользователя?
  • Перевод флагов GNU ps в стандартные флаги
  • Добавить поле sid в вывод ps -f
  • Linux и Unix - лучшая ОС в мире.