Мониторинг Bandwith на удаленной машине с WMI - PullRequest
1 голос
/ 08 февраля 2012

Я пытаюсь отслеживать пропускную способность интерфейсов на удаленной машине с Windows.До сих пор я использовал SNMP с Формула пропускной способности Cisco , но для этого необходимо получить две выборки в два разных времени.Наконец, что не менее важно, кажется, что значение, которое я записываю с помощью SNMP, совершенно неверно.Так как у меня есть поддержка WMI, я бы хотел использовать ее, но единственное значение, которое я нашел (который, кажется, то, что я ищу), это BytesTotalPerSec из Win32_PerfRawData_Tcpip_NetworkInterface .Однако это значение больше похоже на общий счетчик (точно так же, как и на SNMP).Есть ли способ получить текущую полосу пропускания через WMI?Чтобы уточнить поле Current Bandwidth, всегда возвращайте 1000000000 (который является максимальной пропускной способностью), и, как вы можете себе представить, это бесполезно.

1 Ответ

4 голосов
/ 11 февраля 2012

Данные счетчика производительности представлены в 2 местах: Win32_PerfRawData * и Win32_PerfFormattedData *. Первый содержит необработанные данные, последний содержит производную статистику и является тем, что вам нужно.

То, что вы обычно видите в perfmon (например), это данные Win32_PerfFormattedData *.

Попробуйте это:

Set objWMI = GetObject("winmgmts://./root\cimv2")
set objRefresher = CreateObject("WbemScripting.Swbemrefresher")
Set objInterfaces = objRefresher.AddEnum(objWMI, _
  "Win32_PerfFormattedData_Tcpip_NetworkInterface").ObjectSet

While (True)
    objRefresher.Refresh
    For each RefreshItem in objRefresher

        For each objInstance in RefreshItem.ObjectSet
            WScript.Echo objInstance.Name & ";" _
              & objInstance.BytesReceivedPersec & ";" _
              & objInstance.BytesSentPersec

        Next

    Next
    Wscript.Echo
    Wscript.Sleep 1000
Wend

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

Если вам нужна минимальная пропускная способность, вы можете получить ее самостоятельно из необработанных данных, взяв 2 образца (вы должны сделать это в Windows 2000 в любом случае)

См. Раздел Windows 2000, если это имеет больше смысла.

Производная статистика в Windows 2000

Здесь есть отличная статья Создайте свой собственный поставщик форматированных данных производительности

Если вы хотите собрать больше статистической информации за более длительный интервал выборки

John

...