Как показать топ-5 процессов, потребляющих процессор, с помощью ps?
102
Зачем использовать, ps
когда вы можете сделать это легко с помощью top
команды?
Если вы должны использовать ps
, попробуйте это:
ps aux | sort -nrk 3,3 | head -n 5
Если вы хотите что-то действительно «топовое» с постоянными обновлениями, используйте watch
watch "ps aux | sort -nrk 3,3 | head -n 5"
ps aux | sort -nrk 3,3 | head -n 5
top
самом деле работает.top
читает список процессов и самостоятельно отображает результат, неПравильный ответ :
Таким образом, вы можете указать столбцы, не мешая сортировке.
Пример:
Примечание для MAC OS X : в Mac OS X
ps
не распознает--sort
, но предлагает-r
сортировать по текущей загрузке процессора. Таким образом, для Mac OS X вы можете использовать:источник
bash
(x2 илиhead
тоже)ps
...sort
, второй показывает, как указывать столбцы, не мешая сортировке. Объясняя что-то .. всегда лучше быть кратким и объяснять одну вещь за один раз.В зависимости от ваших потребностей вы можете найти это немного более читабельным:
образец вывода:
(поля% CPU, PID, USER, COMMAND)
источник
Я не думаю
ps
, что вы ищете. Вы смотрели на выход изtop
?Если у вас есть GNU-Top, попробуйте использовать его в пакетном режиме, чтобы выложить список процессов, отсортированный по использованию процессора, и использовать head / tail, чтобы получить верхние 5 строк (первые 8 - заголовки):
Вершина BSD, кажется, ведет себя по-другому и не имеет неинтерактивного режима, поэтому используйте одно из других
ps
решений на основе.источник
top -o cpu -n 5
это способ достижения того же самого. Кто-нибудь знает? Мойtop
отличается от вашегоtop
.-o
и-n
устанавливает количество обновлений дисплея перед выходом.top
, похоже, нет пакетного режима, который довольно ограничен. Должен быть какой-то способ проникновенияtop
в другие команды. Я сделаю некоторые исследования.top
работал так, как описано во второй половине дня. Приветствия.Самый быстрый вкладыш, который я нашел для этого (примечание 6, потому что заголовок складывается):
источник
Обратите внимание, что текущие версии ps имеют возможность сортировки внутри них на основе кодов полей (приведенных на странице руководства ps). Код поля для использования процессора - «с». Вы можете использовать
--sort c
в конце команды PS, например:ps aux --sort c
Это поместит процесс, используя большую часть процессора внизу списка. Обратный порядок списка, добавив минус к коду поля, используемому для сортировки, например
ps aux --sort -c
источник
Чтобы добавить точку к другим ценным ответам, я предпочитаю:
Он также печатает заголовок, что приятно.
Здесь
k
идентично--sort
иc
указывает%cpu
поле использования процессора (псевдоним ) для сортировки, а-
для обратной сортировки.Вы можете добавить больше спецификаторов разделенных
,
, другие возможные спецификаторы:%mem
,args
,bsdstart
,pid
,gid
,uid
... , которые вы можете найти полный список в стандартном формате спецификаторы разделе страницы человека. Например:напечатает 10 процессов с самым высоким идентификатором группы, внутренне отсортированным по использованию памяти.
источник
У инструмента командной строки
ps
есть свой собственный параметр сортировки, поэтому я предпочитаю:Вы можете добавить столбцы, которые вы хотите. Посмотрите, какие другие варианты доступны через
ps
страницу руководства .источник
top
в Mac OS X есть опция режима регистрации в формеtop -l numberOfSamples
(которая, кажется, эквивалентна пакетному режиму GNUtop
). Однако необходимо иметь как минимум две выборки, поскольку «для первой отображаемой выборки будет отображаться неверный% ЦП для каждого процесса, так как он рассчитывается с использованием разницы между выборками» (man 1 top
).источник
top
будет отображать то, что использует ваш процессор. Если он установлен, онhtop
позволяет более детально управлять, включая фильтрацию - в вашем случае - процессором.источник
Я считаю, что самый простой способ увидеть процесс загрузки 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
: Этот аргумент используется для показа pidcomm
: Этот аргумент используется только для отображения имени команды. Чтобы получить полное использование командыargs
,cmd
илиcommand
%cpu
: Этот аргумент показывает процент использования процессором процессора в формате "##. #". Здесьpcpu
также можно использовать.%mem
: Этот аргумент показывает отношение размера резидентного набора процесса к физической памяти на машине, выраженное в процентах. Здесьpmem
также можно использовать.--sort
: Укажите порядок сортировки. После знак используется для сортировки наибольшее значение в вершине , где параметр по умолчанию , который должен перечислить все большее численное заказ [т.е. от 0 до п].=
-
+
источник
top -bn1 |sed -n '7,12'p
работает как хороший маленький лайнер тоже.Хотя я предпочитаю использовать PS с --sort = X -o X, Y, Z
используя ps, вы можете получить различную статистику grep для процесса ИЛИ пользователя и затем суммировать ИЛИ с помощью конвейера в awk.
источник