Ответы:
Зачем использовать, 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 до п].=-+