Azure App Service .NET Profiler
在App Service服務中,如果部署了.NET應用,平臺有一個非常好的工具可以檢視請求的效能分佈及異常時的Stack Traces。
進入路徑: App Service Azure Overview --> Networking(網路) --> Troubleshoot(排除故障) --> Collect .NET Profiler Trace
在收集 Profiler 跟蹤之前應瞭解的內容
- 啟動探查器跟蹤後,透過瀏覽到 Web 應用重現問題。
- 探查器跟蹤將在 60 秒後自動停止。
- 如果啟用了執行緒報告選項,則還將收集程序內執行緒的原始堆疊跟蹤。
- 使用執行緒報告選項,您的應用程式可能會暫停幾秒鐘,直到所有執行緒都完成DUMP收集。
- Web 應用不會因執行探查器而重新啟動。
- 探查器跟蹤將有助於識別 ASP.NET 或 ASP.NET Core 應用程式中的問題。
在收集完Profiler Trace後,它會幫助自動分析並生產報告。點選檢視報告連結,會對當前收集響應慢的請求進行耗時分析:Application Code,Platform 和 Network
Application Code :應用程式程式碼表示在執行應用程式程式碼時呼叫的處理程式或模組所花費的時間(例如 ManagedPipelineHandler),或者與為應用程式完成的任何顯式配置(例如 RewriteModule)密切相關的時間。任何外部或第三方處理程式、模組都屬於這一類。不屬於本機 IIS 處理程式或模組的任何內容都歸類為應用程式。
Platform :平臺表示請求在 Azure 應用服務中預安裝的核心本機模組或 IIS 處理程式(例如 DefautlDocumentModule、StaticFileHandler 等)中花費的時間。請求在這些模組中花費過多時間可能表示整體平臺存在問題,因此可以聯絡 Microsoft 支援部門以獲取更多詳細資訊。
Network :這表示從客戶端讀取請求實體正文所花費的時間,或將響應緩衝區重新整理回客戶端所花費的時間。等待從應用程式發出的外部出站網路呼叫(如資料庫、快取、外部 HTTP 請求等)所花費的時間不計算在內,而是分組在“應用程式程式碼”下。
參考文件:https://www.cnblogs.com/lulight/articles/18081286