Перечислите 10 лучших процессов потребления ресурсов процессора и памяти - Linux

409
Thangan

Я пытаюсь найти топ-10 процессов, которые потребляют больше ресурсов процессора и памяти, используя команду

ps -Ao user,uid,comm,pid,pcpu,pmem --sort=-pcpu | head -n 10 

Но это не показывает правильные данные, как я мог видеть для того же процесса, значение CPU% колеблется в верхней команде, как 10%, а затем 250%.

Пожалуйста, помогите составить список процессов с высокой загрузкой процессора, учитывая все ядра.

Мы не можем установить какой-либо инструмент в качестве сервера Prod. Для пояснения, требование заключается в том, что всякий раз, когда на сервере появляется предупреждение о высокой загрузке ЦП, мы пытаемся захватить 10 лучших процессов вместе с ЦП и памятью и отправить их в виде почты. Если мы извлечем только верхний вывод в то время, это может не показать использование процесса между ядрами, поскольку оно будет колебаться.

1
Процессы просто «подпрыгивают», используя много ЦП в одну секунду и очень мало в следующую? Вы не можете ничего с этим поделать, за исключением, может быть, среднего времени процессора Xen2050 5 лет назад 1
Можете ли вы помочь мне получить среднее время процессора для топ-10 процессов Thangan 5 лет назад 0
Я просто смотрел top или htop, но не знал, как это сделать в скрипте, но я искал бы его (кажется, что это должно быть распространено) Xen2050 5 лет назад 0
На самом деле, у нас нет htop ... Требование заключается в том, что всякий раз, когда на сервере появляется предупреждение о высокой загрузке ЦП, мы пытаемся перехватить 10 лучших процессов вместе с ЦП и памятью и отправить их в виде почты ... Если мы извлечем максимальный результат в то время может не показывать использование процессов между ядрами, так как он будет колебаться ... так что застряли в этой ситуации и нуждаетесь в вашей помощи ... Thangan 5 лет назад 1
Похоже, инструменты `sysstat` могут быть лучшим выбором, чем пытаться найти потребность в стоге сена. Tigger 5 лет назад 0

2 ответа на вопрос

0
harrymc

Вы можете использовать topкоманду для мониторинга процессов и использования системных ресурсов в Linux. Это один из самых полезных инструментов в наборе инструментов системного администратора, и он предустановлен в каждом дистрибутиве. В отличие от других команд, таких как ps, он является интерактивным, и вы можете просматривать список процессов, завершать процесс и так далее.

Примеры его использования см. В статье 12 Примеры команд TOP в Linux .

0
husjon

Кажется, в вашем флаге сортировки есть орфографическая ошибка ( -pcpc должен быть -pcpu )

В любом случае, выполнение исправленной команды дает следующий снимок, показывающий объединенную загрузку ЦП для первых 9 процессов, отсортированных по убыванию по использованию процессора (используйте head -n 11, чтобы получить первые 10):

$ ps -Ao user,uid,comm,pid,pcpu,pmem --sort=-pcpu | head -n 10 USER UID COMMAND PID %CPU %MEM husjon 1000 PathOfExile_x64 13233 225 4.7 husjon 1000 wineserver 13172 30.4 0.0 husjon 1000 chrome 12501 18.7 1.3 husjon 1000 chrome 10631 13.2 0.8 husjon 1000 lutris 12474 7.6 0.2 root 0 Xorg 620 5.6 0.1 husjon 1000 compton 2146 4.2 0.2 husjon 1000 chrome 10595 4.1 1.0 husjon 1000 chrome 32332 3.4 0.5 

Надеюсь это поможет

Исправил мою команду (опечатка). Проблема здесь в том, что он показывает использование ЦП процессом для определенного ядра, поскольку я мог видеть, как тот же процесс работает в другом ядре с очень высокой загрузкой ЦП .... Есть ли способ показать Использование ЦП определенного процесса в ядре? Thangan 5 лет назад 0
Извините за задержку с ответом. Если вы видите кратные значения одного имени процесса (в пс), это будет другой экземпляр этого приложения, если не указано, чтобы показать каждый поток. Добавление флага `-L` позволяет вам показывать темы. Это можно проверить, добавив `tid` в список столбцов при использовании флага` -L`, если TID и PID на строку имеют одно и то же значение, это указывает на отдельный процесс. Многопоточный процесс будет иметь повторяющиеся PID, но с разными TID. husjon 5 лет назад 0

Похожие вопросы