Udostępnij za pośrednictwem


Znajdowanie i diagnozowanie problemów z wydajnością w usłudze Application Insights

Usługa Application Insights gromadzi dane telemetryczne z Twojej aplikacji, aby pomóc w analizie jej działania i wydajności. Tymi informacjami można się posłużyć przy identyfikowaniu stwierdzonych problemów albo identyfikowaniu usprawnień aplikacji, które miałyby największy wpływ na użytkowników. Ten samouczek przedstawia proces analizowania wydajności składników serwera aplikacji i perspektywy klienta.

Dowiedz się, jak odbywa się:

  • Identyfikowanie wydajności operacji po stronie serwera.
  • Analizowanie operacji serwera w celu określenia głównej przyczyny niskiej wydajności.
  • Zidentyfikuj najwolniejsze operacje po stronie klienta.
  • Analizowanie szczegółów widoków stron przy użyciu języka zapytań.

Wymagania wstępne

W celu ukończenia tego samouczka:

  • Zainstaluj program Visual Studio 2019 z następującymi obciążeniami:
    • Tworzenie aplikacji na platformie ASP.NET i aplikacji internetowych
    • Tworzenie aplikacji na platformie Azure
  • Wdrażanie aplikacji .NET na platformie Azure i włączanie zestawu SDK usługi Application Insights
  • Włącz profiler usługi Application Insights dla swojej aplikacji.

Logowanie się do platformy Azure

Zaloguj się w witrynie Azure Portal.

Identyfikowanie wolnych operacji serwera

Usługa Application Insights zbiera informacje o wydajności różnych operacji w aplikacji. Identyfikując operacje z najdłuższym czasem trwania, można zdiagnozować potencjalne problemy lub kierować do bieżącego rozwoju, aby poprawić ogólną wydajność aplikacji.

  1. Wybierz pozycję Application Insights, a następnie wybierz swoją subskrypcję.

  2. Aby otworzyć panel Wydajność , wybierz pozycję Wydajność w menu Zbadaj lub wybierz wykres Czasu odpowiedzi serwera.

    Zrzut ekranu przedstawiający widok Wydajność.

  3. Ekran Wydajność przedstawia liczbę i średni czas trwania każdej operacji dla aplikacji. Te informacje umożliwiają zidentyfikowanie tych operacji, które mają największy wpływ na użytkowników. W tym przykładzie dobrymi kandydatami do przyjrzenia się bliżej są operacje GET Customers/Details i GET Home/Index z powodu ich względnie długiego czasu trwania i względnie dużej liczby wywołań. Inne operacje mogą mieć wyższy czas trwania, ale były rzadko wywoływane, więc efekt ich poprawy byłby minimalny.

    Zrzut ekranu przedstawiający panel Serwer wydajności.

  4. Wykres przedstawia obecnie średni czas trwania wybranych operacji w czasie. Możesz przełączyć się na 95. percentyl, aby znaleźć problemy z wydajnością. Dodaj interesujące Cię operacje, przypinając je do grafu. Wykres pokazuje, że istnieją pewne szczyty, które warto zbadać. Aby je dalej odizolować, zmniejsz przedział czasu grafu.

    Zrzut ekranu przedstawiający operacje przypinania.

  5. Panel wydajności po prawej stronie pokazuje rozkład czasów trwania różnych żądań dla wybranej operacji. Zmniejsz okno, aby rozpocząć w okolicy 95. percentyla. Karta Szczegółowe informacje o najważniejszych 3 zależnościach może na pierwszy rzut oka powiedzieć, że zależności zewnętrzne prawdopodobnie przyczyniają się do powolnych transakcji. Wybierz przycisk z liczbą przykładów, aby wyświetlić listę przykładów. Następnie wybierz dowolny przykład, aby wyświetlić szczegóły transakcji.

  6. Na pierwszy rzut oka widać, że wywołanie tabeli platformy Azure Fabrikamaccount przyczynia się najbardziej do całkowitego czasu trwania transakcji. Zobaczysz też, że wyjątek spowodował jego niepowodzenia. Wybierz dowolny element na liście, aby wyświetlić jego szczegóły po prawej stronie.

    Zrzut ekranu przedstawiający szczegóły transakcji kompleksowej operacji.

  7. Profiler pomaga uzyskać dalszą diagnostykę na poziomie kodu, pokazując rzeczywisty kod, który został uruchomiony dla operacji i czas wymagany dla każdego kroku. Niektóre operacje mogą nie mieć śladu, ponieważ profiler jest uruchamiany okresowo. Z upływem czasu coraz więcej operacji powinno mieć ślady. Aby uruchomić profilera dla operacji, wybierz pozycję Ślady profilera.

  8. Ślad pokazuje poszczególne zdarzenia dla każdej operacji, dzięki czemu można zdiagnozować główną przyczynę dla czasu trwania ogólnej operacji. Wybierz jeden z najlepszych przykładów, który ma najdłuższy czas trwania.

  9. Wybierz pozycję Ścieżka gorąca, aby wyróżnić konkretną ścieżkę zdarzeń, które najbardziej przyczyniają się do łącznego czasu trwania operacji. W tym przykładzie widać, że najwolniejsze wywołanie pochodzi z FabrikamFiberAzureStorage.GetStorageTableData metody . Część, która zajmuje najwięcej czasu, to CloudTable.CreateIfNotExist metoda . Jeśli ten wiersz kodu jest wykonywany za każdym razem, gdy funkcja zostanie wywołana, niepotrzebne wywołanie sieciowe i zasoby procesora CPU zostaną zużyte. Najlepszym sposobem naprawienia kodu jest umieszczenie tego wiersza w jakiejś metodzie uruchamiania, która jest wykonywana tylko raz.

    Zrzut ekranu przedstawiający szczegóły profilera.

  10. Porada dotycząca wydajności w górnej części ekranu obsługuje ocenę, że nadmierny czas trwania jest spowodowany oczekiwaniem. Wybierz link oczekiwania do dokumentacji dotyczącej interpretowania różnych typów zdarzeń.

    Zrzut ekranu przedstawiający poradę dotyczącą wydajności.

  11. Aby uzyskać dalszą analizę, wybierz pozycję Pobierz ślad , aby pobrać ślad. Te dane można wyświetlić przy użyciu narzędzia PerfView.

Używanie danych dzienników dla serwera

Dzienniki udostępnia zaawansowany język zapytań, którego można użyć do analizowania wszystkich danych zebranych przez usługę Application Insights. Za pomocą tej funkcji można przeprowadzić głęboką analizę danych dotyczących żądań i wydajności.

  1. Wróć do panelu szczegółów operacji i wybierz pozycję Ikona dziennikówWyświetl w dziennikach (Analiza)..

  2. Zostanie otwarty ekran Dzienniki z zapytaniem dla każdego z widoków w panelu. Zapytania te można uruchomić w proponowanej formie lub dostosować do własnych wymagań. Pierwsze zapytanie pokazuje czas trwania operacji w miarę upływu czasu.

    Zrzut ekranu przedstawiający zapytanie dotyczące dzienników.

Identyfikowanie wolnych operacji klienta

Oprócz identyfikowania procesów serwera do zoptymalizowania, usługa Application Insights może analizować perspektywę przeglądarek klienta. Te informacje mogą pomóc zidentyfikować potencjalne ulepszenia składników klienta, a nawet zidentyfikować problemy z różnymi przeglądarkami lub różnymi lokalizacjami.

  1. Wybierz pozycję Przeglądarka w obszarze Zbadaj, a następnie wybierz pozycję Wydajność przeglądarki. Alternatywnie wybierz pozycję Wydajność w obszarze Zbadaj i przejdź do karty Przeglądarka , wybierając przycisk przełącznika Serwer/przeglądarka w prawym górnym rogu, aby otworzyć podsumowanie wydajności przeglądarki. Ten widok zawiera wizualne podsumowanie różnych telemetrii aplikacji z perspektywy przeglądarki.

    Zrzut ekranu przedstawiający podsumowanie przeglądarki.

  2. Wybierz jedną z nazw operacji, wybierz przycisk Przykłady w prawym dolnym rogu, a następnie wybierz operację. Szczegóły kompleksowej transakcji są otwierane po prawej stronie, gdzie można wyświetlić właściwości widoku strony. Możesz wyświetlić szczegóły klienta żądającego strony, w tym typ przeglądarki i jego lokalizację. Te informacje mogą pomóc w określeniu, czy występują problemy z wydajnością powiązane z konkretnymi typami klientów.

    Zrzut ekranu przedstawiający właściwości widoku strony.

Używanie danych dzienników dla klienta

Podobnie jak dane zebrane na potrzeby wydajności serwera, usługa Application Insights udostępnia wszystkie dane klienta do głębokiej analizy przy użyciu dzienników.

  1. Wróć do podsumowania przeglądarki i wybierz pozycję Ikona dzienników Wyświetl w obszarze Dzienniki (analiza)..

  2. Zostanie otwarty ekran Dzienniki z zapytaniem dla każdego z widoków w panelu. Pierwsze zapytanie pokazuje czas trwania dla różnych wyświetleń stron w miarę upływu czasu.

    Zrzut ekranu przedstawiający ekran Dzienniki.