Назад | Перейти на главную страницу

Какой ближайший эквивалент «средней нагрузки» в Windows доступен через WMI?

В Linux есть понятие средней нагрузки, которое определяется как:

Средняя загрузка системы - это среднее количество процессов, которые находятся в рабочем или непрерывном состоянии. Процесс в рабочем состоянии либо использует ЦП, либо ожидает использования ЦП. Процесс в непрерывном состоянии ожидает некоторого доступа к вводу-выводу, например ждет диска. Средние значения берутся за три временных интервала. Средние значения нагрузки не нормализованы для количества ЦП в системе, поэтому средняя загрузка 1 означает, что система с одним ЦП загружена все время, а в системе с 4 ЦП это означает, что она простаивает 75% времени.

Какой ближайший эквивалент доступен через WMI? Существуют ли принципиальные различия между двумя ОС, которые определяют, как следует измерять такую ​​метрику производительности? Какие отличия?

В Process Queue Length считать от System Объект счетчика производительности:

Длина очереди процессора - это количество потоков в очереди процессора [...]

Это значение доступно в WMI через Win32_PerfFormattedData_PerfOS_System.

Я не знаю какой-либо такой меры общей рабочей нагрузки, это просто процентное соотношение ЦП с некоторой разбивкой по типам требуемых ЦП. Это действительно затрудняет понимание того, насколько перегружена машина. Когда система Linux сообщает о средней нагрузке 63, а система Windows сообщает о 100% ЦП ... ну, они оба работают на пределе, но это все, что вы можете сказать о системе Windows.

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

Вы можете получить мгновенный Загрузка процессора в процентах с помощью этой команды:

wmic cpu get loadpercentage

Что возвращает:

LoadPercentage
10

К сожалению, я не вижу времени средние из wmic cpu get, что было бы неплохо.

Если вы используете Python, psutil эмулирует getloadavg () в Windows через длину очереди процессора:

 >>> import psutil
 >>> psutil.getloadavg()
 (3.14, 3.89, 4.67)

PR, показывающий, как это делается: https://github.com/giampaolo/psutil/pull/1485