使用適用於 .NET 的 Application Insights Profiler 在 Azure 中分析生產應用程式
診斷應用程式的效能問題可能很困難,尤其是在動態雲端中的生產環境上執行時。 如果應用程式中的回應緩慢,那麼有可能是管線中處理要求的基礎結構、架構或應用程式程式碼所造成。
透過適用於 .NET 的 Application Insights Profiler,不論案例為何,您都可以擷取、識別及檢視在 Azure 中執行之應用程式的效能追蹤。 .NET Profiler 追蹤程式會自動大規模地發生,而且不會對使用者造成負面影響。 .NET Profiler 會識別:
- 客戶執行之每個 Web 要求的回應時間中間值、最快值和最慢值。
- 處理特定 Web 要求時花費最多時間的「經常性」程式路徑。
在所有 Azure 應用程式上啟用適用於 .NET 的分析工具,以使用下列觸發程式收集資料:
- 取樣觸發程序:大約每小時隨機啟動一次 Profiler,持續兩分鐘。
- CPU 觸發程序:當 CPU 使用率百分比超過 80% 時啟動 Profiler。
- 記憶體觸發程序:當記憶體使用率高於 80% 時啟動 Profiler。
這些每一個觸發程序都可以加以設定、啟用或停用。
取樣率和額外負荷
根據預設,Profiler 會每小時主動收集 30 秒的追蹤,或在高 CPU 或記憶體使用量期間收集 30 秒的追蹤。 每小時追蹤(稱為取樣)非常適合主動微調,而高CPU和記憶體追蹤(稱為觸發程式)則有助於進行回應式疑難解答。
注意
當適用於 .NET 的 Application Insights Profiler 正在主動執行及收集追蹤時,通常會將 5% 到 15% 的 CPU 和記憶體額外負荷新增至伺服器。
儲存 .NET Profiler 所擷取的數據不需要額外費用。 在 15 天後即會自動刪除資料。
.NET Profiler 中支援
Profiler 可與下列 Azure 服務上所部署的 .NET 應用程式搭配運作。 在下面的連結中檢視針對每種服務類型啟用 Profiler 的特定指示。
計算平台 | .NET (>= 4.6) | .NET Core |
---|---|---|
Azure App Service | Yes | Yes |
適用於 Windows 的 Azure 虛擬機器和虛擬機器擴展集 | Yes | Yes |
適用於 Linux 的 Azure 虛擬機器和虛擬機器擴展集 | No | Yes |
Azure 雲端服務 | Yes | Yes |
適用於 Windows 的 Azure 容器執行個體 | No | Yes |
適用於 Linux 的 Azure 容器執行個體 | No | Yes |
Kubernetes | No | Yes |
Azure Functions | Yes | Yes |
Azure Service Fabric | Yes | 是 |
注意
您也可以使用 Java Profiler for Azure Monitor Application Insights (目前處於預覽狀態)。
如果您已啟用適用於 .NET 但未看到追蹤的 Profiler,請參閱 疑難解答指南。
限制
- 資料保留:預設資料保留期為 5 天。
- 分析 Web 應用程式:
- 雖然您可以不需額外費用使用 .NET Profiler,但您的 Web 應用程式必須至少裝載在 Azure App 服務 Web Apps 功能的基本層中。
- 您只能將一個分析工具附加到每個 Web 應用程式。
- Linux 上的 .NET Profiler 僅支援以 Windows 為基礎的 Web 應用程式。
下一步
瞭解如何在 Azure 服務上啟用 .NET Profiler: