分享方式:


使用適用於 .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和記憶體追蹤(稱為觸發程式)則有助於進行回應式疑難解答。

注意

當 Profiler 正在主動執行並收集追蹤時,通常會將 5% 到 15% 的 CPU 和記憶體額外負荷新增至您的伺服器。

儲存 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: