| Termin | Definicja |
|---|---|
| Zarządzanie połączeniami | Zarządzanie połączeniami obejmuje monitorowanie i ograniczanie liczby jednoczesnych sesji z instancją. Na czym polega zarządzanie połączeniami z instancjąZarządzanie połączeniami obejmuje kontrolowanie sesji, które aplikacje, użytkownicy lub usługi otwierają do instancji systemu. Każde połączenie zwykle zajmuje zasoby potrzebne do uwierzytelnienia, obsługi komunikacji, przechowywania stanu sesji oraz wykonywania żądań. Monitorowanie pozwala określić, ile sesji jest aktywnych, ile pozostaje bezczynnych, jak długo trwają oraz które źródła generują największy ruch. W praktyce analizuje się między innymi identyfikator sesji, użytkownika, adres klienta, czas utworzenia połączenia, ostatnią aktywność i aktualnie wykonywaną operację. Ograniczanie liczby jednoczesnych sesji chroni instancję przed wyczerpaniem dostępnych zasobów. Limit może dotyczyć całej instancji, konkretnego użytkownika, aplikacji, puli połączeń albo pojedynczego rodzaju usługi. Po osiągnięciu limitu nowe żądanie może zostać odrzucone, wstrzymane do czasu zwolnienia zasobu lub obsłużone po zamknięciu wcześniej nieużywanej sesji. Sam limit nie rozwiązuje jednak problemu przeciążenia, jeżeli aplikacja utrzymuje połączenia przez długi czas albo otwiera wiele sesji dla pojedynczego zadania. Sesje aktywne, bezczynne i oczekująceWażnym elementem analizy jest rozróżnienie połączeń aktywnych od bezczynnych. Sesja aktywna wykonuje żądanie lub oczekuje na zakończenie operacji po stronie instancji. Sesja bezczynna pozostaje otwarta, ale w danej chwili nie przesyła pracy. Bezczynne połączenie może być prawidłowym elementem puli, ponieważ ponowne użycie istniejącej sesji jest zwykle tańsze niż jej każdorazowe tworzenie. Jeżeli takich sesji jest zbyt wiele, zajmują one limity i pamięć mimo braku bieżącej pracy. Połączenie oczekujące wymaga dodatkowej interpretacji. Instancja może czekać na dane od klienta, blokadę zasobu, zakończenie operacji wejścia i wyjścia albo odpowiedź innego komponentu. Długi czas oczekiwania nie zawsze oznacza błąd samego połączenia. Powtarzalny wzorzec, w którym wiele sesji czeka na ten sam zasób, może jednak wskazywać na blokowanie, zbyt długie transakcje, wadliwą konfigurację puli lub problem z aplikacją. Dlatego liczbę sesji należy zestawiać z czasem ich trwania, obciążeniem procesora, zużyciem pamięci i opóźnieniami operacji. Pule połączeń i kontrola czasu życiaPula połączeń przechowuje wcześniej utworzone sesje, aby aplikacja mogła je ponownie wykorzystać. Jej konfiguracja obejmuje zwykle minimalny i maksymalny rozmiar, czas oczekiwania na wolne połączenie, czas bezczynności oraz maksymalny czas życia sesji. Zbyt mała pula powoduje kolejki po stronie aplikacji, ponieważ żądania czekają na dostęp do sesji. Zbyt duża pula może natomiast doprowadzić do przekroczenia limitu instancji i zwiększyć konkurencję o pamięć, uchwyty oraz inne zasoby. Połączenie powinno być zwalniane po zakończeniu operacji, również wtedy, gdy operacja zakończyła się wyjątkiem. W przeciwnym razie może dojść do wycieku połączeń, czyli stopniowego zajmowania wszystkich dostępnych miejsc przez sesje, których aplikacja już nie używa. Mechanizmy wygaszania bezczynnych sesji ograniczają ten problem, ale nie zastępują poprawnego zwalniania zasobów w kodzie. Przydatne są także limity czasu dla nawiązania połączenia, oczekiwania na odpowiedź i wykonania operacji. Każdy z tych limitów dotyczy innego etapu i powinien być diagnozowany osobno. Objawy przeciążenia i działania serwisoweProblemy z zarządzaniem połączeniami mogą objawiać się komunikatami o przekroczeniu limitu sesji, błędach nawiązywania połączenia, długim czasie odpowiedzi, okresowym zawieszaniem aplikacji albo wzrostem liczby procesów oczekujących. Diagnostyka powinna rozpocząć się od ustalenia, czy problem występuje stale, czy tylko przy zwiększonym ruchu. Następnie porównuje się liczbę połączeń z konfiguracją instancji i aplikacji, sprawdza rozkład sesji według użytkowników oraz klientów, a także wyszukuje połączenia trwające nietypowo długo. Podczas naprawy można skorygować rozmiar puli, usunąć nieużywane sesje zgodnie z zasadami danego silnika, skrócić nieuzasadniony czas życia połączeń lub poprawić obsługę wyjątków w aplikacji. Należy zachować ostrożność przy wymuszaniu rozłączeń, ponieważ przerwanie aktywnej operacji może pozostawić pracę niedokończoną albo wywołać konieczność jej ponowienia. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i ich podzespołów, a w przypadku problemów z aplikacją można dodatkowo sprawdzić konfigurację klienta, sterowniki oraz lokalne objawy wpływające na stabilność połączeń. |