Ответы:
Зачем использовать, 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
читает список процессов и самостоятельно отображает результат, не
Правильный ответ :
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
bash
(x2 или head
тоже) ps
...
sort
, второй показывает, как указывать столбцы, не мешая сортировке. Объясняя что-то .. всегда лучше быть кратким и объяснять одну вещь за один раз.
В зависимости от ваших потребностей вы можете найти это немного более читабельным:
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
решений на основе.
top -o cpu -n 5
это способ достижения того же самого. Кто-нибудь знает? Мой top
отличается от вашего top
.
-o
и -n
устанавливает количество обновлений дисплея перед выходом.
top
, похоже, нет пакетного режима, который довольно ограничен. Должен быть какой-то способ проникновения top
в другие команды. Я сделаю некоторые исследования.
top
работал так, как описано во второй половине дня. Приветствия.
Самый быстрый вкладыш, который я нашел для этого (примечание 6, потому что заголовок складывается):
ps aux k-pcpu | head -6
Обратите внимание, что текущие версии ps имеют возможность сортировки внутри них на основе кодов полей (приведенных на странице руководства ps). Код поля для использования процессора - «с». Вы можете использовать --sort c
в конце команды PS, например:ps aux --sort c
Это поместит процесс, используя большую часть процессора внизу списка. Обратный порядок списка, добавив минус к коду поля, используемому для сортировки, напримерps aux --sort -c
Чтобы добавить точку к другим ценным ответам, я предпочитаю:
ps auxk-c | head -6
Он также печатает заголовок, что приятно.
Здесь k
идентично --sort
и c
указывает %cpu
поле использования процессора (псевдоним ) для сортировки, а -
для обратной сортировки.
Вы можете добавить больше спецификаторов разделенных ,
, другие возможные спецификаторы: %mem
, args
, bsdstart
, pid
, gid
, uid
... , которые вы можете найти полный список в стандартном формате спецификаторы разделе страницы человека. Например:
ps auxk -gid,-%mem | head -11
напечатает 10 процессов с самым высоким идентификатором группы, внутренне отсортированным по использованию памяти.
У инструмента командной строки ps
есть свой собственный параметр сортировки, поэтому я предпочитаю:
$ ps -eo pcpu,args --sort=-%cpu | head
Вы можете добавить столбцы, которые вы хотите. Посмотрите, какие другие варианты доступны через ps
страницу руководства .
$ man ps
top
в Mac OS X есть опция режима регистрации в форме top -l numberOfSamples
(которая, кажется, эквивалентна пакетному режиму GNU top
). Однако необходимо иметь как минимум две выборки, поскольку «для первой отображаемой выборки будет отображаться неверный% ЦП для каждого процесса, так как он рассчитывается с использованием разницы между выборками» ( 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
Я считаю, что самый простой способ увидеть процесс загрузки 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 до п].=
-
+