WMI - данные о производительности NonAnonymousUsersPerSec

Я хочу контролировать свой IIS (ферму SharePoint) с помощью WMI. Я пытаюсь получить от системы следующую информацию:

  • CurrentConnections
  • NonAnonymousUsersPerSec
  • AnonymousUsersPerSec

Моя проблема в том, что мне нужны те же данные, что и в «Мониторе надежности и производительности» (perfmon), когда я добавляю \ Web Service (_Total) \ Anonymous User / ses и \ web Service (_Total) / NonAnonymous Users / ses к монитор.

Этот монитор показывает мне около 20 неанонимных пользователей в секунду и 0 анонимных. Я считаю, что эти значения правильные. Количество подключений одинаково, как в perfmon-monitor, так и в запросе WMI.

Но значение CurrentUser полностью отличается от значения в мониторе.

Как я могу получить эти данные с помощью запросов WMI?

класс Win32_PerfFormattedData_W3SVC_WebService

SelectQuery queryCurrentUser = new SelectQuery("SELECT * FROM Win32_PerfFormattedData_W3SVC_WebService WHERE Name LIKE \"_Total\"");
  • Текущие соединения: ~ 150
  • NonAnonymousUsersPerSec: 0
  • AnonymousUsersPerSec: 0

класс Win32_PerfRawData_W3SVC_WebService

SelectQuery queryCurrentUser = new SelectQuery("SELECT * FROM Win32_PerfRawData_W3SVC_WebService WHERE Name LIKE \"_Total\"");
  • Текущие соединения: ~ 150
  • NonAnonymousUsersPerSec: ~ 150000
  • AnonymousUsersPerSec: ~ 2000000

Код:

ManagementScope scope = new ManagementScope("\\\\" + stringServer + "\\root\\CIMV2");

//PerfRawData query
SelectQuery queryCurrentUser = new SelectQuery("SELECT * FROM Win32_PerfRawData_W3SVC_WebService WHERE Name LIKE \"_Total\"");

//PerfFormattedData query
SelectQuery queryCurrentUser = new SelectQuery("SELECT * FROM Win32_PerfFormattedData_W3SVC_WebService WHERE Name LIKE \"_Total\"");

ManagementObjectSearcher currentUsers = new ManagementObjectSearcher(scope, queryCurrentUser);
ManagementObjectCollection currentUsersCollection = currentUsers.Get();

foreach (ManagementObject queryObj in currentUsersCollection) 
{
Console.WriteLine("CurrentConnections {0}", queryObj["CurrentConnections"]);
Console.WriteLine("NonAnonymousUsersPerSec {0}", queryObj["NonAnonymousUsersPerSec"]);
Console.WriteLine("AnonymousUsersPerSec {0}", queryObj["AnonymousUsersPerSec"]);
}

person LaPhi    schedule 21.03.2012    source источник


Ответы (1)


Я нашел решение!

Класс Win32_PerfFormattedData_ASPNET_ASPNETApplications.

Значения указаны в RequestsPerSec и AnonymousRequestsPerSec.

person LaPhi    schedule 30.03.2012