WMI - данные о производительности NonAnonymousUsersPerSec - PullRequest
0 голосов
/ 21 марта 2012

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

  • CurrentConnections
  • NonAnonymousUsersPerSec
  • AnonymousUsersPerSec

Моя проблема в том, что мне нужны те же данные, что и в «Мониторе надежности и производительности» (perfmon), когда я добавляю \ Web-сервис (_Total) \ Анонимный пользователь / ses и \ веб-сервис (_Total) / Неанонимные пользователи / ses на монитор.

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

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

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

Win32_PerfFormattedData_W3SVC_WebService class

SelectQuery queryCurrentUser = new SelectQuery("SELECT * FROM Win32_PerfFormattedData_W3SVC_WebService WHERE Name LIKE \"_Total\"");
  • CurrentConnections: ~ 150
  • NonAnonymousUsersPerSec: 0
  • AnonymousUsersPerSec: 0

Win32_PerfRawData_W3SVC_WebService class

SelectQuery queryCurrentUser = new SelectQuery("SELECT * FROM Win32_PerfRawData_W3SVC_WebService WHERE Name LIKE \"_Total\"");
  • CurrentConnections: ~ 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"]);
}

1 Ответ

0 голосов
/ 30 марта 2012

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

Класс Win32_PerfFormattedData_ASPNET_ASPNETApplications.

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

...