Udostępnij za pośrednictwem


Monitorowanie i analizowanie zachowania środowiska uruchomieniowego za pomocą optymalizacji kodu

Diagnozowanie problemów z wydajnością aplikacji może być trudne, zwłaszcza w przypadku uruchamiania w środowisku produkcyjnym w chmurze dynamicznej. Powolne odpowiedzi w aplikacji mogą być spowodowane przez infrastrukturę, strukturę lub kod aplikacji obsługujący żądanie w potoku.

Optymalizacje kodu, usługa oparta na sztucznej inteligencji w usłudze aplikacja systemu Azure Insights, współpracuje z profilerem usługi Application Insights dla platformy .NET w celu wykrywania problemów z wydajnością procesora CPU i pamięci na poziomie kodu i udostępniania zaleceń dotyczących ich rozwiązywania.

Podejmowanie świadomych decyzji i optymalizowanie kodu przy użyciu danych wydajności w czasie rzeczywistym i szczegółowych informacji zebranych ze środowiska produkcyjnego.

Optymalizacje kodu można przejrzeć w witrynie Azure Portal.

Optymalizacje kodu i profiler usługi Application Insights dla platformy .NET

Profiler platformy .NET i optymalizacje kodu współpracują ze sobą, aby zapewnić całościowe podejście do wykrywania problemów z wydajnością.

Optymalizacje kodu

Optymalizacje kodu identyfikują, analizują i usuwają dane profilowania zebrane przez profilera usługi Application Insights dla platformy .NET. Ponieważ program .NET Profiler przekazuje dane do usługi Application Insights, nasz model uczenia maszynowego analizuje niektóre dane, aby znaleźć, gdzie można zoptymalizować kod aplikacji. Optymalizacje kodu:

  • Wyświetla zagregowane dane zebrane w czasie.
  • Łączy dane z metodami i funkcjami w kodzie aplikacji.
  • Zawęża winowajcę, wyszukując wąskie gardła w kodzie.
  • Zapewnia poprawki wydajności na poziomie kodu na podstawie szczegółowych informacji.

Zidentyfikuj

Korzystając z strony skonsolidowanego przeglądu optymalizacji kodu, można zobaczyć wszystkie zalecenia dotyczące optymalizacji kodu w subskrypcjach platformy Azure i zasobach usługi Application Insights w portalu Azure. Zidentyfikuj wąskie gardła w swoim kodzie i przejrzyj zalecenia dotyczące kodu dla środowisk deweloperskiego, testowego, przedprodukcyjnego i produkcyjnego.

Analiza

Optymalizacje kodu, po zebraniu danych środowiska pracy, udostępniają rekomendacje na poziomie kodu co godzinę. Domyślnie zagregowany widok danych przedstawia 24-godzinne okno ostatnio zidentyfikowanych problemów z 30-dniową historią do przeglądania i analizowania przeszłych zdarzeń.

Rozwiąż

Po zidentyfikowaniu i przeanalizowaniu wyników optymalizacji kodu możesz rozwiązać te problemy w kodzie przy użyciu rozszerzeń Optymalizacje kodu visual Studio i Visual Studio Code . Korzystając z tych rozszerzeń, należy wchodzić w interakcje z rozwiązaniem GitHub Copilot, aby otrzymywać poprawkę kodu uziemiona w szczegółowych danych optymalizacji kodu.

Film demonstracyjny

Profiler usługi Application Insights dla platformy .NET

Program .NET Profiler koncentruje się na śledzeniu określonych żądań w milisekundach. Zapewnia on doskonały "ogólny obraz" problemów w aplikacji i ogólne najlepsze rozwiązania, aby je rozwiązać.

Za pomocą profilera usługi Application Insights dla platformy .NET można przechwytywać, identyfikować i wyświetlać ślady wydajności aplikacji działającej na platformie Azure, niezależnie od scenariusza. Proces śledzenia profilera platformy .NET odbywa się automatycznie, na dużą skalę i nie ma negatywnego wpływu na użytkowników. Program .NET Profiler identyfikuje:

  • Średnie, najszybsze i najwolniejsze czasy odpowiedzi dla poszczególnych żądań sieci Web wysyłanych przez klientów.
  • Gorąca ścieżka kodu zużywa najwięcej czasu na obsługę określonego żądania internetowego.

Włącz profiler dla platformy .NET we wszystkich aplikacjach platformy Azure, aby zebrać dane przy użyciu następujących wyzwalaczy:

  • Wyzwalacz próbkowania: Uruchamia profiler losowo, około raz na godzinę, przez dwie minuty.
  • Wyzwalacz CPU: uruchamia profiler, gdy procent użycia CPU wynosi ponad 80 procent.
  • Wyzwalacz pamięci: Uruchamia profiler, gdy użycie pamięci przekracza 80 procent.

Każdy z tych wyzwalaczy można skonfigurować , włączyć lub wyłączyć.

Koszty i nakłady pracy

Optymalizacje kodu są generowane automatycznie po włączeniu profilera usługi Application Insights dla platformy .NET. Domyślnie profiler aktywnie zbiera ślady co godzinę przez 30 sekund lub w okresach wysokiego użycia procesora CPU lub pamięci przez 30 sekund. Ślady godzinowe (nazywane próbkowaniem) doskonale nadają się do proaktywnego dostrajania, podczas gdy wysokie ślady zużycia procesora CPU i pamięci (nazywane wyzwalaczami) są przydatne do reaktywnego rozwiązywania problemów.

Uwaga / Notatka

Gdy profiler usługi Application Insights dla platformy .NET aktywnie działa i zbiera ślady, zwykle dodaje między 5% do 15% obciążenia procesora CPU i pamięci na serwerze.

Nie ma dodatkowych kosztów przechowywania danych przechwyconych przez program .NET Profiler. Dane są automatycznie usuwane po upływie 15 dni.

Niektóre funkcje optymalizacji kodu (takie jak sugestie poprawki na poziomie kodu) wymagają narzędzia Copilot dla usługi GitHub i/lub Copilot dla platformy Azure.

Włączanie programu .NET Profiler

W miarę rozwoju struktur i usług platformy Azure można włączyć program .NET Profiler dla aplikacji platformy .NET działających na platformie Azure za pomocą wielu opcji.

Usługa platformy Azure Jak włączyć Szczegóły
Większość usług platformy Azure Zmiana kodu w aplikacji
(najbardziej uniwersalne)
Jeśli aplikacja .NET działa w wariantach usług PaaS platformy Azure lub kontenerów, możesz wybrać między dwiema opcjami włączania profilera platformy .NET:
- Profiler usługi Application Insights dla platformy ASP.NET Core korzystającej z zestawu SDK usługi Application Insights lub
- NowyAzure Monitor OpenTelemetry Profiler dla platformy NET (wersja zapoznawcza), który korzysta z Azure Monitor OpenTelemetry Distro
Azure App Service Brak zmiany kodu dla aplikacji Ponieważ Profiler jest wstępnie zainstalowany, możesz włączyć Profiler dla platformy .NET w portalu:
- Azure App Service — aplikacja .NET w systemie Windows
- Azure Functions — plan usługi App Service
Maszyny wirtualne Brak zmiany kodu dla aplikacji Po włączeniu zestawu SDK usługi Application Insights w kodzie aplikacji, możesz włączyć Profiler dla platformy .NET w szablonie usługi ARM.
- Maszyny wirtualne platformy Azure i zestawy skalowania maszyn wirtualnych dla systemu Windows
- Azure Service Fabric

Szczegóły i przykłady włączania profilera dla platformy .NET

Uwaga / Notatka

Możesz również użyć profilera Java dla usługi Azure Monitor Application Insights, obecnie w wersji zapoznawczej.

Obsługiwane regiony

Optymalizacje kodu są dostępne w tych samych regionach co usługa Application Insights. Dostępne regiony można sprawdzić za pomocą następującego polecenia:

az account list-locations -o table

Możesz ustawić jawny region przy użyciu parametry połączenia. Dowiedz się więcej o łańcuchach połączeń z przykładami.

Ograniczenia

Profilowanie aplikacji internetowych:

  • Mimo że można korzystać z programu .NET Profiler bez dodatkowych kosztów, aplikacja internetowa musi być hostowana co najmniej w warstwie podstawowej funkcji Aplikacji Web usługi Azure App Service.
  • Do każdej aplikacji internetowej można dołączyć tylko jeden profiler.

Rozwiązywanie problemów

Dalsze kroki

Dowiedz się, jak włączyć program .NET Profiler przy użyciu optymalizacji kodu w usłudze platformy Azure: