Получите максимальное использование ЦП для процесса

Можно ли получить максимальное использование для процесса?

Такие инструменты, как «top» и «ps», как представляется, выводят мгновенное использование ЦП. И «pidstat», кажется, делает средний …

Но все ли заметят пик?

  • Как мне получить команду «top» для ее вывода?
  • Процент CPU одного процесса
  • Top говорит, что используется 100% процессор, но 50% ядер простаивают?
  • Какие процессы меняют память
  • Почему linux использует swap-память, когда еще нет неиспользованной физической памяти
  • Понимание% CPU при работе с верхней командой
  • Понимание вывода верхней команды на многоядерном компьютере ARM
  • Общее использование ЦП и использование ЦП в списке процессов различаются в верхней реализации FreeBSD?
  • 3 Solutions collect form web for “Получите максимальное использование ЦП для процесса”

    Я думаю, что нет файла, который содержит эту информацию по умолчанию.

    Вы должны записать его сторонним инструментом, а затем выполнить расчет.

    Например, используйте скрипт вроде:

    while true; do uptime >> uptime.log; sleep 1; done 

    Затем выполните некоторую обработку с помощью awk например, и получите нужные данные.

    Это даст вам нагрузку в каждую минуту:

     awk '{print $1, substr($8, 1, length($8)-1)}' uptime.log 

    теперь вы можете получить максимальное использование.

    Возможным решением может быть использование ps как вы предложили, сценарий оболочки и расписание cron.

    Сценарий оболочки должен получить текущее использование процессора, сравнить его с предыдущим максимальным значением и, если это больше, обновите файл.

     #!/bin/bash CURRENT_VALUE=`ps -p 3445 -o %cpu | sed -n '2p'` PREVIOUS_VALUE=`sed -n '2p' max_cpu_usage_of_pid.sh.out` if (( $(echo "$PREVIOUS_VALUE $CURRENT_VALUE" | awk '{print ($1 > $2)}') )); then ps -p 3445 -o %cpu > max_cpu_usage_of_pid.sh.out fi 
    • Примечание 1: файл max_cpu_usage_of_pid.sh.out должен существовать
    • Примечание 2: у меня были некоторые трудности с сопоставлением двух десятичных чисел в сценарии bash, это было решено

    PS: Я не специалист по bash-сценариям, любые улучшения или предложения приветствуются:)

    Короткий ответ был бы то, что нет или, вероятно, не то, что вы ищете.

    Процессы статистики процессора по большей части являются кумулятивными. Каждый раз, когда ОС решает, какие процессы запускаться с использованием планировщика, поэтому в любой заданной точке, если вы сократите ее до наименьшего значения времени, процесс использует 100% CPU. С несколькими ядрами его 1 / Nth доступных процессоров.

    Единственный способ получить его – использовать более длинный размер выборки, а затем продолжить просмотр кумулятивных значений. Так действует сверху. Если счетчик пользователя jiffy был равен 100, а теперь 150, то теперь мы знаем, что за этот период времени «потреблялось» 50 «CPU». Посмотрев на счетчики системы, мы можем определить, что это такое.

    Таким образом, вы можете сделать что-то вроде run top с низким временем обновления и в пакетном режиме. Это может дать вам то, что вам нужно, но я задаюсь вопросом, зачем вам это нужно, и ответит ли он на любой вопрос, который у вас есть в вашей системе.

    Linux и Unix - лучшая ОС в мире.