Среди полей вывода команды «ps»% CPU не является фактическим использованием ЦП в этом процессе?

Например, одно из полей вывода этой команды стиля BSD, ps aux , является «% CPU». Альтернативная команда ps -efl выводит поле «C» (или CP).

Согласно странице ps :

  • % CPU – это процесс использования процессора в формате «##. #». В настоящее время используется время процессора, деленное на время выполнения процесса (cputime / realtime ratio), выраженное в процентах.
  • C по существу% CPU выражается как целое число

Вот как страница ps man описывает% CPU или C. Но большинство книг и веб-сайтов в Интернете просто говорят: %CPU or C is CPU usage of a process .

Можно было бы подумать, что это означает% вычислительной мощности процессора, используемой процессом, из общей доступной вычислительной мощности от ЦП. Или это только я?

(PS: Я новичок)

  • Как я могу получить процесс с самым большим pid?
  • Поле TIME в ps -ef
  • Как найти идентификатор процесса команды, запущенной в другом терминале?
  • Использование ps и наблюдение за соблюдением родительского и дочернего процессов
  • Как перечислить все запущенные X-приложения?
  • Что означает aux в `ps aux`?
  • Когда начался процесс
  • Предел HP-UX SZ для ps?
  • One Solution collect form web for “Среди полей вывода команды «ps»% CPU не является фактическим использованием ЦП в этом процессе?”

    Отношение времени процессора к реальному времени (рассчитанное одним из многих разумных способов) является показателем процента мощности процессора, используемой процессом, из общей вычислительной мощности, доступной от ЦП.

    Каждый процесс в системе может находиться в двух состояниях: он либо работает на процессоре, либо ждет (реальность немного сложнее, чем это, и есть больше состояний процесса, но для простоты этот ответ не " t различать нерабочие состояния, такие как runnable, прерывание ожидания, прерывание без прерывания и т. д.).

    Обычный процесс обычно тратит некоторое время на процессор, а затем заканчивается ожиданием события (например, данные, поступающие в сетевое соединение, завершение ввода-вывода диска, блокировка становится доступной, CPU становится доступным снова для запускаемого процесса после того, как он израсходовал свой квант времени).

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

    В идеализированной ситуации (без накладных расходов от планировщика, без прерываний и т. Д.), И при идеальном измерении сумма времени процессора, используемого каждым процессом в системе в течение одной секунды, будет меньше одной секунды, а оставшееся время – время ожидания процессора. Когда вы добавляете больше процессов, особенно связанных с процессором, сокращается доля свободного времени процессора, а общая сумма процессорного времени, используемая всеми процессами в пределах каждой секунды, приближается к одной секунде. В этот момент добавление дополнительных процессов может привести к запущенным процессам, ожидающим процессор, и, таким образом, увеличению длительностей очередей (и, следовательно, средних значений нагрузки) и, в конечном счете, замедлению системы.

    Обратите внимание, что при простом соотношении времени процессорного времени процесса и времени, прошедшего с момента его запуска, в конечном итоге отображается среднее потребление ЦП процесса. Поскольку некоторые процессы изменяют поведение во время выполнения (например, сервер базы данных, ожидающий запросов, к тому же серверу базы данных, выполняющему ряд сложных запросов), часто более интересно знать самое последнее использование ЦП. По этой причине некоторые системы (например, FreeBSD, Mac OS X) используют разлагающееся среднее значение по этой странице :

    Использование CPU процесса; это затухающее среднее значение до минуты предыдущего (реального) времени. Поскольку временная база, на которой это вычисляется, варьируется (поскольку процессы могут быть очень молодыми), сумма всех полей% cpu может превышать 100%.

    Linux имеет упрощенный учет, который дает вам использование ЦП в соответствии с этой man-страницей :

    В настоящее время использование ЦП выражается в процентах от времени, затраченного на выполнение в течение всего жизненного цикла процесса. Это не идеально, и оно не соответствует стандартам, которые ps в противном случае соответствует. Использование процессора вряд ли составит до 100%.

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