Zmierzyć aplikację

Narzędzia Introscope pozwalają monitorować i mierzyć wydajność aplikacji działających w sieci Web.

Narzędzia Introscope pozwalają monitorować i mierzyć wydajność aplikacji działających w sieci Web.

Aplikację Web tworzy się dość łatwo - liczne zintegrowane narzędzia programistyczne pozwalają nie tylko opracować kliencką i serwerową część aplikacji współpracującej z istniejącą bazą danych, ale także w razie potrzeby utworzą bazę danych, testują i uruchamiają program oraz osadzają go na jednym z serwerów aplikacyjnych. Na tym jednak zadanie programisty się nie kończy - zwykle pojawiają się problemy z wydajnością aplikacji.

Wydajność aplikacji Web zależy od wielu czynników, w tym również zewnętrznych. Wpływ mają liczne warstwy powodujące opóźnienia: sieć telekomunikacyjna, sieci zewnętrzne, jakość aplikacji oraz systemów z nią współpracujących u partnerów handlowych i klientów. Biorąc pod uwagę złożoność aplikacji Web, istnieje wiele czynników, które mogą spowodować jej nieefektywność:

  • aplikację wykorzystuje się w sposób, którego nie można było przewidzieć w trakcie jej tworzenia

  • podczas tworzenia aplikacji nie udało się symulować realnych warunków jej obciążenia

  • współpraca z systemami produkcyjnymi układa się inaczej niż zakładano

  • ogólne środowisko działania aplikacji jest bardziej złożone niż zakładano.

    Poprawienie wydajności działających aplikacji Web wymaga zdiagnozowania przyczyn powstawania problemów. Dokładna analiza wydajności elementów wpływających na wydajność pozwala nie tylko na wskazanie "wąskich gardeł", ale też umożliwia opracowanie środków zaradczych. Na rynku istnieją liczne systemy monitorowania sieci (Tivoli TME, HP Openview, CA Unicenter), lecz nie zapewniają one szczegółowości niezbędnej w przypadku tak złożonych programów, jak aplikacje Web.

    Jak i co mierzyć?

    Sama świadomość, że potrzebne jest precyzyjne mierzenie nie wystarcza: trzeba również wiedzieć co mierzyć. Które elementy są ważne? Z jaką rozdzielczością mierzyć? Jakie działania można wywoływać w czasie rzeczywistym, aby zapobiegać problemom?

    Popularną techniką pomiaru wydajności jest używanie symulowanych transakcji, wywoływanych przez próbkowanie (ping) adresów korespondentów w sieci. Symulowane transakcje pozwalają na pomiar opóźnienia do korespondenta i z powrotem, zapewniając pomiar czynników zewnętrznych. Wymaga to jednak tworzenia specjalnych kont w bazie danych, testowych użytkowników z agentami, generującymi sztuczne transakcje, i innych elementów, nie powiązanych z działaniem aplikacji. Zakłada się przy tym, że aplikacja działa bezbłędnie. Metody te są dostępne w produktach firm Keynote, Service Metrics (obecnie część Exodus) i Mercury Interactive.

    Inna metoda pomiaru wydajności polega na stworzeniu aplikacji "zinstrumentalizo- wanej", zawierającej liczne "lekkie" (mało obciążające procesor) procesy, monitorujące działanie modułów i metod aplikacji, interfejsów do modułów zależnych, węzłów sieci i baz danych związanych z aplikacją. Instrumentalizacja aplikacji umożliwia identyfikację problemów w czasie rzeczywistym, z dokładnością do modułu o rozmiarze określonym przez programistę. Pozwala to na wywołanie automatycznych systemów naprawczych i/lub zapisanie wyników pomiaru do pliku w celu dalszych analiz.

    Zinstrumentalizowanie aplikacji jest często stosowane w testowaniu aplikacji (metodą "czarnej skrzynki"), ale dodatkowy kod jest usuwany po upewnieniu się, że aplikacja działa poprawnie. Zinstrumentalizowanie dla celów testowania spowalnia bowiem mocno aplikację i znacznie zwiększa rozmiar kodu. Natomiast zinstrumentalizowanie w celu pomiaru wydajności musi być obecne w aplikacji przez cały czas; z tego powodu musi być możliwie mało inwazyjne i nie powinno znacząco wpływać na wydajność aplikacji.

    Introscope monitoruje aplikacje Java

    Firma Wily Technology opracowała Introscope, pakiet do monitorowania aplikacji Java, osadzonych na popularnych serwerach aplikacyjnych: IBM WebSphere, BEA WebLogic, Sun iPlanet oraz w środowiskach transakcyjnych: BEA Web-Logic Commerce Server, monitor transakcyjny BEA Tuxedo, IBM CICS, IBM MQ Series i in.

    Introscope automatyzuje proces zinstrumentalizowania istniejących aplikacji z dokładnością do poszczególnych komponentów, modułów i metod (bez konieczności dostępu do kodu źródłowego), spowalniając jednak jej działanie 1-5%. Introscope może monitorować komponenty EJB, servlety, JSP, inne standardowe komponenty J2EE oraz kolejki JMS, bazy danych JDBC i monitory transakcyjne. Istnieje możliwość selektywnego wyłączania monitorowania działania poszczególnych modułów.

    Firma Wily Technology, współpracując z działem serwerów aplikacyjnych IBM, opracowała specjalny pakiet przeznaczony do monitorowania aplikacji osadzonych na serwerze aplikacyjnym IBM WebSpere - Introscope PowerPack, o lepszej rozdzielczości niż standardowy pakiet Introscope.


  • TOP 200