Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Det kan vara svårt att diagnostisera programmets prestandaproblem, särskilt när du kör i en produktionsmiljö i det dynamiska molnet. Långsamma svar i ditt program kan orsakas av infrastruktur, ramverk eller programkod som hanterar begäran i pipelinen.
Kodoptimeringar, en AI-baserad tjänst i Azure Application Insights, fungerar tillsammans med Application Insights Profiler för .NET för att identifiera problem med processor- och minnesanvändning på kodnivå och ge rekommendationer om hur du åtgärdar dem.
Fatta välgrundade beslut och optimera koden med hjälp av prestandadata och insikter i realtid som samlats in från din produktionsmiljö.
Du kan granska dina kodoptimeringar i Azure-portalen.
Kodoptimeringar och Application Insights Profiler för .NET
.NET Profiler och kodoptimeringar fungerar tillsammans för att ge en holistisk metod för identifiering av prestandaproblem.
Kodoptimeringar
Kodoptimeringar identifierar, analyserar och löser de profileringsdata som samlas in av Application Insights Profiler för .NET. När .NET Profiler laddar upp data till Application Insights analyserar vår maskininlärningsmodell en del av data för att ta reda på var programmets kod kan optimeras. Kodoptimeringar:
- Visar aggregerade data som samlats in över tid.
- Ansluter data med metoderna och funktionerna i programkoden.
- Begränsar den skyldige genom att hitta flaskhalsar i koden.
- Tillhandahåller prestandakorrigeringar på kodnivå baserat på insikter.
Identifiera
Med hjälp av den konsoliderade översiktssidan för kodoptimering kan du se alla rekommendationer för kodoptimering i dina Azure-prenumerationer och Application Insights-resurser i Azure-portalen. Identifiera flaskhalsar i koden och granska rekommendationer på kodnivå för utvecklings-, test-, förproduktions- och produktionsmiljöer.
Analysera
När miljöns data har samlats in ger kodoptimeringar rekommendationer på kodnivå varje timme. Som standard visar den aggregerade datavyn ett rullande 24-timmarsfönster med nyligen identifierade problem, med en 30-dagars historik där du kan granska och analysera tidigare händelser.
Lös problemet
När du har identifierat och analyserat kodoptimeringsresultatet kan du lösa dessa problem i koden med hjälp av tilläggen För kodoptimeringar i Visual Studio och Visual Studio Code . Med dessa tillägg interagerar du med GitHub Copilot för att ta emot en kodkorrigering som baseras på insikter om kodoptimeringar.
Du kan också skapa ett GitHub-problem från sidan Kodoptimeringar i Azure-portalen och tilldela det till GitHub Copilot-kodningsagenten. Därifrån öppnar GitHub Copilot en pull-begäran och pushar kodändringar baserat på insikter om kodoptimering.
Demovideo
Application Insights Profiler för .NET
.NET Profiler fokuserar på att spåra specifika begäranden, ned till millisekunderna. Det ger en utmärkt "helhetsbild" av problem i ditt program och allmänna metodtips för att åtgärda dem.
Med Application Insights Profiler för .NET kan du samla in, identifiera och visa prestandaspårningar för ditt program som körs i Azure, oavsett scenario. Spårningsprocessen för .NET Profiler sker automatiskt i stor skala och påverkar inte användarna negativt. .NET Profiler identifierar:
- Medianvärde, snabbaste och långsammaste svarstid för varje webbförfrågan dina kunder gör.
- Kodsökvägen "frekvent" ägnar mest tid till att hantera en viss webbbegäran.
Aktivera Profiler för .NET i alla dina Azure-program för att samla in data med följande utlösare:
- Samplingsutlösare: Startar Profiler slumpmässigt ungefär en gång i timmen i två minuter.
- CPU-utlösare: Startar Profiler när cpu-användningsprocenten är över 80 procent.
- Minnesutlösare: Startar Profiler när minnesanvändningen är över 80 procent.
Var och en av dessa utlösare kan konfigureras, aktiveras eller inaktiveras.
Kostnader och omkostnader
Kodoptimeringar genereras automatiskt när Application Insights Profiler för .NET har aktiverats. Profiler samlar som standard aktivt in spårningar varje timme i 30 sekunder eller under perioder med hög CPU- eller minnesanvändning i 30 sekunder. Spårningar varje timme (kallas sampling) är bra för proaktiv justering, medan höga CPU- och minnesspårningar (kallas utlösare) är användbara för reaktiv felsökning.
Anmärkning
När Application Insights Profiler för .NET aktivt kör och samlar in spårningar lägger den vanligtvis till mellan 5 % till 15 % av processor- och minneskostnaderna till servern.
Det finns ingen extra kostnad för att lagra data som samlas in av .NET Profiler. Data tas bort automatiskt efter 15 dagar.
Vissa kodoptimeringsfunktioner (till exempel förslag på kodnivåkorrigering) kräver Copilot för GitHub och/eller Copilot för Azure.
Aktivera .NET Profiler
Allt eftersom ramverk och Azure-tjänster utvecklas kan du aktivera .NET Profiler för dina .NET-appar som körs i Azure via ett antal alternativ.
Azure-tjänst | Så här aktiverar du | Detaljer |
---|---|---|
De flesta Azure-tjänster | Kodändring i ditt program (mest universella) |
Om din .NET-app körs på varianter av Azure PaaS-tjänster eller Containrar kan du välja mellan två alternativ för att aktivera .NET Profiler: - Application Insights Profiler för ASP.NET Core som använder Application Insights SDK, eller - NyAzure Monitor OpenTelemetry Profiler för .NET (förhandsversion) som använder Azure Monitor OpenTelemetry Distro |
Azure App Service | Ingen kodändring för ditt program | Eftersom Profiler är förinstallerat kan du aktivera Profiler för .NET i portalen för: - Azure App Service – .NET-app i Windows - Azure Functions – App Service-plan |
Virtuella datorer | Ingen kodändring för ditt program | När du har aktiverat Application Insights SDK i programkoden kan du aktivera Profiler för .NET i ARM-mallen. - Skalningsuppsättningar för virtuella Azure-datorer och virtuella datorer för Windows - Azure Service Fabric |
Information och exempel för att aktivera Profiler för .NET
- Azure App Service – .NET-app i Windows
- Azure App Service – .NET-app i Linux
-
Behållare:
- Azure Container-applikationer
- Azure Kubernetes Services
- Azure Container Instances (Azure containertjänster)
- Skalningsuppsättningar för virtuella Azure-datorer och virtuella datorer för Windows
- Azure Functions – App Serviceplan
- Azure Service Fabric
Anmärkning
Du kan också använda Java Profiler för Azure Monitor Application Insights, för närvarande i förhandsversion.
Regioner som stöds
Kodoptimeringar är tillgängliga i samma regioner som Application Insights. Du kan kontrollera de tillgängliga regionerna med hjälp av följande kommando:
az account list-locations -o table
Du kan ange en explicit region med hjälp av anslutningssträng. Läs mer om anslutningssträngar med exempel.
Begränsningar
Profilering av webbappar:
- Även om du kan använda .NET Profiler utan extra kostnad måste webbappen finnas på den grundläggande nivån för funktionen Web Apps i Azure App Service, åtminstone.
- Du kan bara koppla en profilerare till varje webbapp.
Felsökning
Profiler
Om du har aktiverat Profiler för .NET men inte ser spårningar kan du läsa felsökningsguiden.
Kodoptimeringar
Stöter du på problem? I felsökningsguiden för kodoptimeringar finns scenariolösningar.
Nästa steg
Lär dig hur du aktiverar .NET Profiler med kodoptimeringar i din Azure-tjänst: