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

10

В Linux есть понятие Load Average, которое определяется как:

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

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

leonigmig
источник

Ответы:

9

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

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

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

Ричард
источник
Немного углубившись в этот ответ stackoverflow.com/questions/807506/…, похоже, дает хорошее представление о различиях между операционными системами.
leonigmig
1
Досадно: «Это свойство отображает только последнее наблюдаемое значение; оно не среднее». : - |
Blaisorblade
Длина очереди процесса представляет только количество процессов, ожидающих ЦП. Он не показывает процессы, ожидающие дискового ввода-вывода или сетевого ввода-вывода. Тем не менее, коллега Linux рассматривает процессы в состоянии непрерывного сна также при расчете нагрузки. Процессы в этом состоянии означают, что они ожидают какого-то ввода-вывода.
Амит Бхайра
4

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

sysadmin1138
источник
3

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

Джим Б
источник
0

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

wmic cpu get loadpercentage

Который возвращает:

LoadPercentage
10

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

Майк Т
источник
1
Это просто процент использования процессора за последний период выборки, он не имеет ничего общего с «средней нагрузкой».
GreyCat
0

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

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

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

Джампаоло Родола
источник