Перечислите 10 лучших процессов потребления ресурсов процессора и памяти - Linux
409
Thangan
Я пытаюсь найти топ-10 процессов, которые потребляют больше ресурсов процессора и памяти, используя команду
ps -Ao user,uid,comm,pid,pcpu,pmem --sort=-pcpu | head -n 10
Но это не показывает правильные данные, как я мог видеть для того же процесса, значение CPU% колеблется в верхней команде, как 10%, а затем 250%.
Пожалуйста, помогите составить список процессов с высокой загрузкой процессора, учитывая все ядра.
Мы не можем установить какой-либо инструмент в качестве сервера Prod. Для пояснения, требование заключается в том, что всякий раз, когда на сервере появляется предупреждение о высокой загрузке ЦП, мы пытаемся захватить 10 лучших процессов вместе с ЦП и памятью и отправить их в виде почты. Если мы извлечем только верхний вывод в то время, это может не показать использование процесса между ядрами, поскольку оно будет колебаться.
Процессы просто «подпрыгивают», используя много ЦП в одну секунду и очень мало в следующую? Вы не можете ничего с этим поделать, за исключением, может быть, среднего времени процессора
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, он является интерактивным, и вы можете просматривать список процессов, завершать процесс и так далее.
Кажется, в вашем флаге сортировки есть орфографическая ошибка ( -pcpc должен быть -pcpu )
В любом случае, выполнение исправленной команды дает следующий снимок, показывающий объединенную загрузку ЦП для первых 9 процессов, отсортированных по убыванию по использованию процессора (используйте head -n 11, чтобы получить первые 10):
Исправил мою команду (опечатка). Проблема здесь в том, что он показывает использование ЦП процессом для определенного ядра, поскольку я мог видеть, как тот же процесс работает в другом ядре с очень высокой загрузкой ЦП .... Есть ли способ показать Использование ЦП определенного процесса в ядре?
Thangan 5 лет назад
0
Извините за задержку с ответом. Если вы видите кратные значения одного имени процесса (в пс), это будет другой экземпляр этого приложения, если не указано, чтобы показать каждый поток. Добавление флага `-L` позволяет вам показывать темы. Это можно проверить, добавив `tid` в список столбцов при использовании флага` -L`, если TID и PID на строку имеют одно и то же значение, это указывает на отдельный процесс. Многопоточный процесс будет иметь повторяющиеся PID, но с разными TID.
husjon 5 лет назад
0