2011-02-07 21 views
6

Aktualnie testuję aplikację ASP.NET. W aplikacji ładuje się 500 użytkowników, i podczas działania sprawdzam, w konsoli perfmon.exe, liczniki "Sessions Actives" i "Sessions Timed Out" na serwerze internetowym.Licznik czasu ASP.NET "Sesje przekroczone czasy" (perfmon.exe)

W moim web.config limit czasu sesji wynosi 3 minuty (do celów testu).

Tak jak w teście, licznik "Sessions Actives" pozostaje na około 900 aktywnych sesjach, co, jak zakładam, jest normalne z powodu 500 aktywnych użytkowników i około 400 innych, których sesje jeszcze się nie zakończyły.

Ale kiedy patrzę na licznik "Session Timed Out", nieustannie rośnie. Zmniejsza się stopniowo, gdy kończy się test obciążenia.

Czym dokładnie jest ten licznik? Jak rozumiem, są to przestarzałe sesje, które nie zostały jeszcze oczyszczone (przez garbage collector?) I nadal używają pamięci.

Ponieważ nasza aplikacja używa ogromny ammount pamięci, staram się znaleźć dokładnie gdzie jest to, że pamięć.

Odpowiedz

1

Licznik zdaje się wskazywać, co się dzieje. Oznacza to, że gdy sesje są aktywne, licznik dla aktywnych przechodzi na właściwą liczbę. W pewnym momencie zaczynają tracić czas i powodują wzrost limitu czasu sesji (tj. sesje, które są zwalniane przez ASP Infrastruktura .NET). Nie jestem pewien, czego się spodziewasz. Polecam przeczytanie rozdziałów: 15, 16 i 17 z książki Improving .NET Application Performance and Scalability. Są pod tym względem bardzo pouczające.

+0

Faktycznie, to, co naprawdę muszę wiedzieć, to czy te limitowane sesje wciąż używają pamięci. Dzięki za link, sprawdzę to dzisiaj. – Johnny5

+0

Po testowaniu więcej, ten zegar nie zejdzie, dopóki pula aplikacji nie zostanie zrestartowana (jak, iisreset). [Br] Ale nadal wydaje się, że sesja przekroczenia limitu czasu nie zostanie wyczyszczona (pamięć nie zostanie zwolniona) do mój loadtest się kończy. – Johnny5

+0

Czy w sesji jest uruchomiona zawartość RCW? na przykład czy wszelkie dotychczasowe obiekty COM są dostępne i przechowywane w sesji? Widziałem, jak sprawiają, że ładunek pozostaje wysoki. Wydaje się również, że warto przyjrzeć się innym licznikom, aby zorientować się, jaka konkretna rzecz to spożywanie pamięci. Użyłem rozdziałów, o których wspomniałem powyżej, aby dać mi wskazówki na temat tego, gdzie są przetrzymywane. Szczególnie pomocne są liczniki GC (gen0, gen1 i gen2). – gbvb

Powiązane problemy