Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het diagnosticeren van de prestatieproblemen van uw toepassing kan lastig zijn, met name bij het uitvoeren in een productieomgeving in de dynamische cloud. Trage reactietijden in je applicatie kunnen worden veroorzaakt door infrastructuur, framework of toepassingscode die verzoeken in de pijplijn verwerkt.
Code-optimalisaties, een op AI gebaseerde service in Azure-toepassing Insights, werkt samen met application Insights Profiler voor .NET om prestatieproblemen met CPU- en geheugengebruik op codeniveau te detecteren en aanbevelingen te doen voor het oplossen ervan.
Neem weloverwogen beslissingen en optimaliseer uw code met behulp van realtime prestatiegegevens en inzichten die zijn verzameld uit uw productieomgeving.
U kunt uw codeoptimalisaties bekijken in Azure Portal.
Codeoptimalisaties en Application Insights Profiler voor .NET
De .NET Profiler en Code Optimizations werken samen om een holistische benadering van prestatieprobleemdetectie te bieden.
Codeoptimalisaties
Codeoptimalisaties identificeert, analyseert en lost de profileringsgegevens op die zijn verzameld door application Insights Profiler voor .NET. Naarmate de .NET Profiler gegevens uploadt naar Application Insights, analyseert ons machine learning-model enkele van de gegevens om te vinden waar de code van de toepassing kan worden geoptimaliseerd. Codeoptimalisaties:
- Geeft geaggregeerde gegevens weer die in de loop van de tijd zijn verzameld.
- Hiermee worden gegevens verbonden met de methoden en functies in uw toepassingscode.
- Beperkt de schuld door knelpunten in de code te vinden.
- Biedt prestatiecorrecties op codeniveau op basis van inzichten.
Identificeren
Met behulp van de geconsolideerde overzichtspagina codeoptimalisaties kunt u alle aanbevelingen voor codeoptimalisatie in uw Azure-abonnementen en Application Insights-resources in Azure Portal bekijken. Identificeer knelpunten in uw code en bekijk aanbevelingen op codeniveau voor ontwikkel-, test-, preproductie- en productieomgevingen.
Analyseren
Zodra de gegevens van uw omgeving zijn verzameld, biedt codeoptimalisaties aanbevelingen op codeniveau op uurbasis. In de samengevoegde gegevensweergave ziet u standaard een doorlopend 24-uursvenster met onlangs geïdentificeerde problemen, met een geschiedenis van 30 dagen waarmee u eerdere gebeurtenissen kunt bekijken en analyseren.
Oplossen
Nadat u de resultaten van Code Optimization hebt geïdentificeerd en geanalyseerd, kunt u deze problemen in uw code oplossen met behulp van de Visual Studio - en Visual Studio Code-extensies voor Code Optimizations. Met deze extensies kunt u communiceren met GitHub Copilot om een codefix te ontvangen die is gebaseerd op inzichten in code-optimalisaties.
U kunt ook een GitHub-probleem maken op de pagina Codeoptimalisaties in Azure Portal en deze toewijzen aan de GitHub Copilot-coderingsagent. Van daaruit opent GitHub Copilot een pull request en pusht commits van codewijzigingen op basis van codeoptimalisatie-inzichten.
Demovideo
Application Insights Profiler voor .NET
De .NET Profiler is gericht op het traceren van specifieke aanvragen, tot in milliseconden. Het biedt een uitstekend overzicht van problemen in uw toepassing en algemene aanbevolen procedures om deze problemen op te lossen.
Met Application Insights Profiler voor .NET kunt u prestatietraceringen vastleggen, identificeren en weergeven voor uw toepassing die wordt uitgevoerd in Azure, ongeacht het scenario. Het traceringsproces van .NET Profiler vindt automatisch plaats, op schaal en heeft geen negatieve invloed op uw gebruikers. De .NET Profiler identificeert:
- De gemiddelde, snelste en langzaamste responstijden voor de webaanvragen die door uw klanten worden verzonden.
- Het 'hot'-codepad besteedt de meeste tijd aan het verwerken van een bepaalde webaanvraag.
Schakel profiler voor .NET in voor al uw Azure-toepassingen om gegevens te verzamelen met de volgende triggers:
- Samplingtrigger: Profiler wordt ongeveer één keer per uur voor twee minuten gestart.
- CPU-trigger: Start Profiler wanneer het CPU-gebruikspercentage hoger is dan 80 procent.
- Geheugentrigger: Start Profiler wanneer het geheugengebruik hoger is dan 80 procent.
Elk van deze triggers kan worden geconfigureerd, ingeschakeld of uitgeschakeld.
Kosten en overhead
Codeoptimalisaties worden automatisch gegenereerd nadat Application Insights Profiler voor .NET is ingeschakeld. Profiler verzamelt standaard iedere uur gedurende 30 seconden actief traceringen of bij hoge CPU- of geheugengebruik voor 30 seconden. De traceringen per uur (ook wel steekproeven genoemd) zijn ideaal voor proactieve afstemming, terwijl de hoge CPU- en geheugentraceringen (triggers genoemd) nuttig zijn voor reactieve probleemoplossing.
Opmerking
Wanneer de Application Insights Profiler voor .NET actief is en traceringen worden verzameld, voegt het doorgaans tussen de 5% en 15% CPU- en geheugengebruik toe aan uw server.
Er zijn geen extra kosten verbonden aan het opslaan van gegevens die zijn vastgelegd door .NET Profiler. De gegevens worden na 15 dagen automatisch verwijderd.
Voor sommige functies voor codeoptimalisatie (zoals suggesties voor oplossingen op codeniveau) is Copilot vereist voor GitHub en/of Copilot voor Azure.
.NET Profiler inschakelen
Naarmate frameworks en Azure-services zich ontwikkelen, kunt u .NET Profiler inschakelen voor uw .NET-apps die in Azure worden uitgevoerd via een aantal opties.
Azure-dienst | Inschakelen | Bijzonderheden |
---|---|---|
De meeste Azure-services | Codewijziging in uw toepassing (meest universeel) |
Als uw .NET-app wordt uitgevoerd op varianten van Azure PaaS-services of -containers, kunt u kiezen tussen twee opties voor het inschakelen van .NET Profiler: - Application Insights Profiler voor ASP.NET Core die gebruikmaakt van de Application Insights SDK, of - NieuweAzure Monitor OpenTelemetry Profiler voor .NET (Preview) die gebruikmaakt van Azure Monitor OpenTelemetry Distro |
Azure App Service | Geen codewijziging voor uw toepassing | Omdat Profiler vooraf is geïnstalleerd, kunt u Profiler inschakelen voor .NET in de portal voor: - Azure App Service - .NET-app op Windows - Azure Functions - App Serviceplan |
Virtuele machines | Geen codewijziging voor uw toepassing | Nadat u de Application Insights SDK in uw toepassingscode hebt ingeschakeld, kunt u profiler voor .NET inschakelen in uw ARM-sjabloon. - Virtuele Azure-machines en virtuele-machineschaalsets voor Windows - Azure Service Fabric |
Details en voorbeelden voor het inschakelen van Profiler voor .NET
- Azure App Service - .NET-app in Windows
- Azure App Service - .NET-app in Linux
-
Containers:
- Azure Container Apps - een dienst van Microsoft waarmee je containers kunt uitvoeren en beheren in de cloud.
- Azure Kubernetes Services
- Azure Container Instances (Azure-containerinstanties)
- Virtuele Azure-machines en virtuele-machineschaalsets voor Windows
- Azure Functions - App Serviceplan
- Azure Service Fabric
Opmerking
U kunt ook De Java Profiler voor Azure Monitor Application Insights gebruiken, momenteel in preview.
Ondersteunde regio's
Codeoptimalisaties zijn beschikbaar in dezelfde regio's als Application Insights. U kunt de beschikbare regio's controleren met behulp van de volgende opdracht:
az account list-locations -o table
U kunt een expliciete regio instellen met behulp van verbindingsreeks s. Meer informatie over verbindingsreeks s met voorbeelden.
Beperkingen
Web-apps profileren:
- Hoewel u de .NET Profiler zonder extra kosten kunt gebruiken, moet uw web-app minimaal worden gehost in de basic-laag van de functie Web Apps van Azure-app Service.
- U kunt slechts één profiler aan elke web-app koppelen.
Probleemoplossingsproces
Profiler
Als u profiler voor .NET hebt ingeschakeld, maar geen traceringen ziet, raadpleegt u de gids voor probleemoplossing.
Codeoptimalisaties
Ondervindt u problemen? Raadpleeg de gids voor probleemoplossing voor codeoptimalisaties voor scenariooplossingen.
Volgende stappen
Meer informatie over het inschakelen van .NET Profiler met codeoptimalisaties in uw Azure-service: