Strumenti di diagnostica delle prestazioni

Di Mike Rousos

Questo articolo elenca gli strumenti per la diagnosi dei problemi di prestazioni in ASP.NET Core.

Strumenti di diagnostica di Visual Studio

Gli strumenti di profilatura e diagnostica integrati in Visual Studio sono un buon punto di partenza per iniziare a analizzare i problemi di prestazioni. Questi strumenti sono potenti e pratici da usare dall'ambiente di sviluppo di Visual Studio. Gli strumenti consentono l'analisi dell'utilizzo della CPU, dell'utilizzo della memoria e degli eventi di prestazioni nelle app core ASP.NET. La funzionalità predefinita semplifica la profilatura in fase di sviluppo.

Altre informazioni sono disponibili nella documentazione di Visual Studio.

Application Insights

Application Insights fornisce dati approfonditi sulle prestazioni per l'app. Application Insights raccoglie automaticamente i dati relativi a velocità di risposta, tassi di errore, tempi di risposta delle dipendenze e altro ancora. Application Insights supporta la registrazione di eventi personalizzati e metriche specifiche per l'app.

app Azure lication Insights offre diversi modi per fornire informazioni dettagliate sulle app monitorate:

  • Mappa delle applicazioni: consente di individuare i colli di bottiglia delle prestazioni o gli hot spot degli errori in tutti i componenti delle app distribuite.

  • Esplora metriche di Azure è un componente di Microsoft portale di Azure che consente di tracciare grafici, correlare visivamente le tendenze e analizzare picchi e cali nei valori delle metriche.

  • Pannello Prestazioni nel portale di Application Insights:

    • Mostra i dettagli delle prestazioni per diverse operazioni nell'app monitorata.
    • Consente di eseguire il drill-in una singola operazione per controllare tutte le parti/dipendenze che contribuiscono a una durata prolungata.
    • Il profiler può essere richiamato da qui per raccogliere tracce delle prestazioni su richiesta.
  • app Azure lication Insights Profiler consente la profilatura regolare e su richiesta delle app .NET. portale di Azure mostra le tracce delle prestazioni acquisite con stack di chiamate e percorsi ad accesso frequente. I file di traccia possono anche essere scaricati per un'analisi più approfondita usando PerfView.

Application Insights può essere usato in un'ampia gamma di ambienti:

  • Ottimizzato per il funzionamento in Azure.
  • Funziona in produzione, sviluppo e gestione temporanea.
  • Funziona in locale da Visual Studio o in altri ambienti di hosting.

Per altre informazioni sul monitoraggio basato su codice, vedere Application Insights per ASP.NET Core. Per altre informazioni sul monitoraggio senza codice, vedere Monitorare le prestazioni del servizio app Azure.

PerfView

PerfView è uno strumento di analisi delle prestazioni creato dal team .NET specificamente per la diagnosi dei problemi di prestazioni di .NET. PerfView consente l'analisi dell'utilizzo della CPU, del comportamento di memoria e GC, degli eventi di prestazioni e dell'ora del clock wall.

Per altre informazioni su PerfView, vedere la guida dell'utente disponibile nello strumento o in GitHub.

Windows Performance Toolkit

Windows Performance Toolkit (WPT) è costituito da due componenti: Windows Performance Recorder (WPR) e Windows analizzatore prestazioni (WPA). Gli strumenti producono profili di prestazioni approfonditi di sistemi operativi e app Windows. WPT offre modi più avanzati per visualizzare i dati, ma la raccolta dei dati è meno potente rispetto a quella di PerfView.

PerfCollect

Anche se PerfView è uno strumento di analisi delle prestazioni utile per gli scenari .NET, viene eseguito solo in Windows, quindi non è possibile usarlo per raccogliere tracce dalle app di ASP.NET Core in esecuzione in ambienti Linux.

PerfCollect è uno script bash che usa strumenti di profilatura Linux nativi (Perf e LTTng) per raccogliere tracce in Linux che possono essere analizzate da PerfView. PerfCollect è utile quando i problemi di prestazioni vengono visualizzati in ambienti Linux in cui Non è possibile usare direttamente PerfView. Al contrario, PerfCollect può raccogliere tracce da app .NET Core che vengono quindi analizzate in un computer Windows usando PerfView.

Altre informazioni su come installare e iniziare a usare PerfCollect sono disponibili in GitHub.

Altri strumenti di prestazioni di terze parti

Di seguito sono elencati alcuni strumenti di prestazioni di terze parti utili per l'analisi delle prestazioni delle applicazioni .NET Core.