Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La diagnosi dei problemi di prestazioni dell'applicazione può essere difficile, soprattutto quando si esegue in un ambiente di produzione nel cloud dinamico. Le risposte lente nell'applicazione potrebbero essere causate dall'infrastruttura, dal framework o dal codice dell'applicazione che gestisce la richiesta nella pipeline.
Ottimizzazioni del codice, un servizio basato su intelligenza artificiale (AI) in Azure Application Insights, funziona in combinazione con Application Insights Profiler per .NET per rilevare problemi di prestazioni relativi all'uso della CPU e della memoria a livello di codice, fornendo raccomandazioni su come risolverli.
Prendere decisioni informate e ottimizzare il codice usando dati sulle prestazioni in tempo reale e informazioni dettagliate raccolte dall'ambiente di produzione.
È possibile esaminare le ottimizzazioni del codice nel portale di Azure.
Ottimizzazioni del codice e Application Insights Profiler per .NET
Il profiler .NET e le ottimizzazioni del codice interagiscono per fornire un approccio olistico al rilevamento dei problemi di prestazioni.
Ottimizzazioni del codice
Le ottimizzazioni del codice identificano, analizzano e risolvono i dati di profilatura raccolti dal profiler di Application Insights per .NET. Quando .NET Profiler carica i dati in Application Insights, il modello di Machine Learning analizza alcuni dei dati per trovare dove è possibile ottimizzare il codice dell'applicazione. Ottimizzazioni del codice:
- Visualizza i dati aggregati raccolti nel tempo.
- Connette i dati con i metodi e le funzioni nel codice dell'applicazione.
- Risale al colpevole identificando colli di bottiglia all'interno del codice.
- Fornisce correzioni delle prestazioni a livello di codice basate su informazioni dettagliate.
Identifica
Usando la pagina di panoramica consolidata ottimizzazioni del codice, è possibile visualizzare tutte le raccomandazioni di ottimizzazione del codice nelle sottoscrizioni di Azure e nelle risorse di Application Insights nel portale di Azure. Identificare i colli di bottiglia nel codice e rivedere le raccomandazioni a livello di codice per gli ambienti di sviluppo, test, pre-produzione e produzione.
Analizza
Dopo aver raccolto i dati dell'ambiente, Le ottimizzazioni del codice forniscono raccomandazioni a livello di codice su base oraria. Per impostazione predefinita, la visualizzazione dei dati aggregati mostra una finestra di 24 ore in sequenza dei problemi identificati di recente, con una cronologia di 30 giorni per esaminare e analizzare gli eventi passati.
Risolvi
Dopo aver identificato e analizzato i risultati dell'ottimizzazione del codice, è possibile risolvere questi problemi nel codice usando le estensioni Ottimizzazione codice di Visual Studio e Visual Studio Code . Con queste estensioni, interagire con GitHub Copilot per ricevere una correzione del codice basata sulle informazioni dettagliate sulle ottimizzazioni del codice.
Video dimostrativo
Application Insights Profiler per .NET
.NET Profiler è incentrato sulla traccia di richieste specifiche, fino al millisecondo. Offre un'eccellente visualizzazione dei problemi all'interno dell'applicazione e delle procedure consigliate generali per risolverli.
Con Application Insights Profiler per .NET è possibile acquisire, identificare e visualizzare le tracce delle prestazioni per l'applicazione in esecuzione in Azure, indipendentemente dallo scenario. Il processo di traccia di .NET Profiler viene eseguito automaticamente, su larga scala e non influisce negativamente sugli utenti. Il profiler .NET identifica:
- I tempi di risposta medi, più veloci e più lenti per ogni richiesta Web effettuata dai tuoi clienti.
- Il percorso di codice "critico" che impiega più tempo per gestire una determinata richiesta Web.
Abilitare Profiler per .NET in tutte le applicazioni Azure per raccogliere dati con i trigger seguenti:
- Trigger di campionamento: avvia Profiler in modo casuale circa una volta all'ora per due minuti.
- Trigger CPU: avvia Profiler quando la percentuale di utilizzo della CPU è superiore all'80%.
- Trigger di memoria: avvia Profiler quando l'utilizzo della memoria supera l'80%.
Ognuno di questi trigger può essere configurato, abilitato o disabilitato.
Costi e costi generali
Le ottimizzazioni del codice vengono generate automaticamente dopo l'abilitazione di Application Insights Profiler per .NET. Per impostazione predefinita, Profiler raccoglie attivamente le tracce ogni ora per 30 secondi o durante periodi di utilizzo elevato della CPU o della memoria per 30 secondi. Le tracce orarie (denominate campionamento) sono ideali per l'ottimizzazione proattiva, mentre le tracce di memoria e CPU elevate (denominate trigger) sono utili per la risoluzione dei problemi reattiva.
Annotazioni
Quando Application Insights Profiler per .NET è in esecuzione e raccoglie attivamente tracce, in genere aggiunge tra il 5% e il 15% del sovraccarico di CPU e memoria al server.
Non sono previsti costi aggiuntivi per l'archiviazione dei dati acquisiti da .NET Profiler. I dati vengono eliminati automaticamente dopo 15 giorni.
Alcune funzionalità di ottimizzazione del codice ( ad esempio i suggerimenti di correzione a livello di codice) richiedono Copilot per GitHub e/o Copilot per Azure.
Abilitazione di .NET Profiler
Man mano che i framework e i servizi di Azure si evolvono, è possibile abilitare .NET Profiler per le app .NET in esecuzione in Azure tramite diverse opzioni.
Servizio di Azure | Come abilitare | Dettagli |
---|---|---|
La maggior parte dei servizi di Azure | Modifica del codice nell'applicazione (la maggior parte universale) |
Se l'app .NET viene eseguita in varianti di servizi o contenitori PaaS di Azure, è possibile scegliere tra due opzioni per abilitare .NET Profiler: - Application Insights Profiler per ASP.NET Core che usa Application Insights SDK o - NuovoProfiler OpenTelemetry di Monitoraggio di Azure per NET (anteprima) che usa Distro OpenTelemetry di Monitoraggio di Azure |
Servizio app di Azure | Nessuna modifica del codice per l'applicazione | Poiché Profiler è preinstallato, è possibile abilitare Profiler per .NET nel portale per: - Servizio App di Azure - App .NET su Windows - Funzioni di Azure - Piano di servizio app |
Macchine virtuali | Nessuna modifica del codice per l'applicazione | Dopo aver abilitato l'SDK di Application Insights nel codice dell'applicazione, è possibile abilitare il Profiler per .NET nel modello ARM. - Macchine virtuali di Azure e set di scalabilità di macchine virtuali per Windows - Azure Service Fabric |
Dettagli ed esempi per l'abilitazione di Profiler per .NET
- Servizio app di Azure - App .NET in Windows
- Servizio app di Azure - App .NET in Linux
- Contenitori:
- App contenitore di Azure
- Servizi Azure Kubernetes
- Istanze di Azure Container
- Macchine virtuali di Microsoft Azure e set di scalabilità di macchine virtuali per Windows
- Funzioni di Azure - Piano di servizio app
- Azure Service Fabric
Annotazioni
È anche possibile usare il Profiler Java per Azure Monitor Application Insights, attualmente in anteprima.
Regioni supportate
Le ottimizzazioni del codice sono disponibili nelle stesse aree di Application Insights. È possibile controllare le aree disponibili usando il comando seguente:
az account list-locations -o table
È possibile impostare un'area esplicita usando le stringhe di connessione. Altre informazioni sulle stringhe di connessione con esempi.
Limitazioni
Profilazione delle applicazioni web
- Anche se è possibile usare .NET Profiler senza costi aggiuntivi, l'app Web deve essere ospitata nel livello di base della funzionalità di App Web del servizio app Azure, almeno.
- È possibile collegare un solo profiler a ogni app Web.
Risoluzione dei problemi
Profiler
Se hai abilitato il profiler per .NET ma non vengono visualizzate tracce, consulta la guida alla risoluzione dei problemi.
Ottimizzazioni del codice
Si verificano problemi? Per le soluzioni di scenario, vedere la guida alla risoluzione dei problemi di Ottimizzazioni del codice .
Passaggi successivi
Informazioni su come abilitare .NET Profiler con ottimizzazioni del codice nel servizio di Azure: