Jak oszacować frekwencję (liczbę użytkowników) w witrynie IIS

Jak szybko oszacuj bieżącą liczbę połączeń użytkowników z witrynami na serwerze WWW IIS, działa na serwerze Windows? Takie informacje umożliwią dokładniejszą ocenę i prognozowanie obciążenia serwera, wybór optymalnego czasu na serwisowanie i aktualizację witryny, przewidywanie obciążenia serwera wraz ze wzrostem liczby użytkowników.

Najłatwiejszym sposobem ustalenia liczby aktywnych użytkowników sesji w witrynie IIS jest użycie liczników wydajności w Monitorze wydajności systemu Windows..

Otwórz konsolę Wydajność Monitoruj, uruchomienie polecenia perfmon i przejdź do konsoli monitora wydajności (Narzędzia monitorowania -> Monitor wydajności).

Następnie musisz dodać potrzebne nam liczniki do okna monitora (domyślnie licznik wyświetla całkowite obciążenie procesora w oknie - możesz je usunąć). Aby dodać nowy licznik, kliknij zielony przycisk na pasku narzędzi (jest podświetlony na zrzucie ekranu) lub naciśnij kombinację klawiszy Ctrl+N..

Na liście dostępnych kategorii liczników znajdujemy i rozszerzamy grupę usług internetowych. W tej kategorii interesują nas trzy liczniki:

  • Prąd Anonimowy Użytkownicy - Liczba anonimowych użytkowników IIS
  • Prąd Non-Anonimowy Użytkownicy - liczba autoryzowanych (nieanonimowych) użytkowników IIS;
  • Prąd Połączenia - całkowita liczba aktywnych połączeń na serwerze IIS.

Wybierzemy żądany licznik, aw polu Wystąpienia wybranych obiektów wybierz jedną lub więcej witryn IIS, dla których chcesz wyświetlić informacje o połączeniu. Informacje o użytkownikach wszystkich witryn na serwerze znajdują się w instancji _Razem. Pozostaje nacisnąć przycisk Dodaj >>, tak, aby żądany licznik przesunął się na listę dodanych liczników w prawym oknie.

W ten sam sposób dodaj wszystkie niezbędne liczniki i kliknij OK.

Teraz konsola Monitora wydajności wyświetli w czasie rzeczywistym informacje o liczbie aktywnych połączeń (sesji) użytkowników na serwerze / stronie sieci Web IIS (domyślnie wartości liczników są wyświetlane na wykresach liniowych). Wybierając dowolny licznik na dolnym panelu, możesz zobaczyć jego bieżącą (ostatnią), średnią (średnią), minimalną (minimalną) i maksymalną (maksymalną) wartość dla danego okresu czasu.

Możesz dodać własne liczniki wydajności do bieżącej konsoli i zapisać je w osobnym widoku, którego później możesz użyć, aby szybko uzyskać dostęp do informacji o obciążeniu na serwerze internetowym.

Dostęp do danych licznika wydajności dla witryn IIS można również uzyskać z PowerShell. Aby to zrobić, wystarczy użyć polecenia cmdlet, aby uzyskać dane z licznika wydajności Zdobądź licznik.

Lista wszystkich dostępnych liczników wydajności dla usługi sieci Web może być wyświetlana w następujący sposób:

(Get-Counter -ListSet „Web Service”). Licznik

Aby uzyskać informacje o bieżącej liczbie aktywnych połączeń na serwerze IIS (counter \ Web Service (*) \ Current Connections), użyj tego polecenia:

Get-Counter -Counter „\ Web Service (*) \ Current Connections”

Jak widać, to polecenie zwróciło zarówno całkowitą liczbę połączeń z serwerem IIS, jak i statystyki dla każdej witryny.

Wskazówka.

  • Wartości kilku liczników można wyświetlić, określając je oddzielając je przecinkami;
  • Z kluczem -Ciągłe informacje o wartości licznika będą stale wysyłane do konsoli, dopóki nie zostanie wykonane przerwanie przez polecenie CTRL + C..

Jak powiedzieliśmy, możesz uzyskać liczbę aktywnych sesji dla określonej witryny IIS. Na przykład, aby uzyskać bieżącą liczbę połączeń w witrynie o nazwie Site1, uruchom polecenie (możesz podać nazwę serwera, na którym sprawdzany jest licznik, podczas sprawdzania lokalnej liczby połączeń w witrynie nie można określać localhost):

Get-Counter „usługa sieciowa (Site1) \ bieżące połączenia” -ComputerName web-app01

Aby uniknąć podawania nazwy serwera za każdym razem, możesz użyć zmiennej środowiskowej COMPUTERNAME

Get-Counter „usługa sieciowa (Site1) \ bieżące połączenia” -ComputerName $ env: COMPUTERNAME

Aby uzyskać wartość liczbową licznika „bieżących połączeń” całego serwera internetowego IIS (całkowite obciążenie IIS), możesz użyć następującego kodu:

((Usługa sieci Web Get-Counter -Counter (_total) \ bieżące połączenia -komputer $ env: COMPUTERNAME) | Select-Object -Rozwiń liczniki) .Cookedvalue

Spróbujmy użyć prostego skryptu, aby utworzyć dodatkowe sesje na naszej stronie i sprawdzić wartość licznika. Możesz zakończyć liczbę wywołań IIS za pomocą polecenia cmdlet Invoke-WebRequest lub możesz po prostu otworzyć kilka okien w przeglądarce:

Licznik $ = 20
dla ($ i = 1; $ i -le $ counter; $ i ++)
$ SiteAdress = "http: // localhost: 9666 /"
Rozpocznij proces $ SiteAdress

Następnie sprawdź wartość licznika bieżących połączeń i upewnij się, że wzrasta.

Jeśli na serwerze działa kilka witryn IIS i musisz uzyskać liczbę połączeń z każdym z nich w formie tabeli, możesz użyć tego skryptu (aby pobrać dane z IIS do PowerShell, musisz załadować moduł WebAdministration):

administracja modułem importu
funkcja get-CurrentConnection ($ Site)
Get-Counter "usługa sieciowa ($ Site) \ bieżące połączenia, usługa internetowa ($ Site) \ Bajty otrzymane / s, usługa internetowa ($ Site) \ Bajty wysłane / s" -nazwa_komputera $ env: COMPUTERNAME

$ IISsites = reż IIS: \ Sites | Wybierz imię
$ CurrentConnection = @ ()
foreach ($ site w $ IISsites)

Witryna Write-Host $
$ ConnCount = Psobject nowego obiektu | get-CurrentConnection -Site $ site.name
$ CurrentConnection + = $ ConnCount

$ CurrentConnection | out-gridview

Można również wyświetlić wartości liczbowe liczników połączeń dla wszystkich takich witryn (pierwsza wartość to całkowita liczba połączeń z IIS):

Get-wmiObject -class Win32_PerfRawData_W3SVC_WebService | wybierz obiekt-rozwiń bieżące połączenia

Możesz również wyświetlić informacje o ilości odebranych / przesłanych danych dla każdej witryny lub całego serwera internetowego, korzystając z usługi internetowej liczników (nazwa strony) \ Bajty odebrane / s oraz usługi sieciowej (nazwa pliku) \ Bajty wysłane / s ».

Przeanalizowaliśmy więc technikę, która pozwala uzyskać informacje o obciążeniu witryn działających na serwerze sieci Web IIS.