天天看點

适用于 Linux 的 .NET Core App Service 診斷工具正式釋出

作者:Mark Downie, Puneet Gupta

翻譯:汪宇傑

導語

我們很高興地宣布面向 .NET Core 的 App Services Linux 診斷工具正式釋出。借助此功能,我們現在為收集可幫助您調試應用程式代碼問題的深度診斷資料提供内置支援。這些資料包括記憶體轉儲和分析器跟蹤。這些工具使開發人員能夠診斷 Linux 上的各種 .NET 代碼場景,包括:

  • 性能緩慢
  • 高記憶體
  • 高CPU
  • 運作時錯誤和異常

這些工具使您能夠自我診斷您的應用程式,以确定應用程式代碼是否導緻了問題。

此工具已認證最新的 Azure App Service 平台更新 (96) 啟用。要檢查您的 Linux 應用程式的目前平台版本,請從您的應用程式的 kudu 控制台檢查環境變量 PLATFORM_VERSION。

在 Diagnose and Solve 中收集資料

要在 Linux 中托管的 .NET Core 應用程式上通路這些新功能,請導航到 Diagnose and Solve 頁面 > Diagnostics Tools,然後選擇 Collect .NET Profiler Trace 或 Collect Memory Dump。

适用于 Linux 的 .NET Core App Service 診斷工具正式釋出

在 Kudu 中收集資料

Linux 應用程式服務的 Kudu 控制台已更新,以在 Process Explorer 頁面上包含新的記憶體轉儲和配置檔案收集選項。

要導航到這種新的 Kudu 界面,請使用以下位址(<mysite>替換為你的應用程式名稱):https://<mysite>.scm.azurewebsites.net/newui 以檢視新界面。

适用于 Linux 的 .NET Core App Service 診斷工具正式釋出

當您選擇 Process Explorer 頁面時,您可以确定要調試的流程。使用下拉菜單選擇記憶體轉儲的類型,然後單擊Collect Dump。或者,您可以從下拉清單中選擇配置檔案的長度,然後單擊 Start Profiling。

分析問題

使用最新版本的 Visual Studio,您現在可以打開和分析在 Linux 上收集的托管轉儲,并使用 Visual Studio 中可用的一流調試工具!

在 Visual Studio 中打開托管的 Linux 核心轉儲

在 Windows 機器上建立的記憶體轉儲具有衆所周知的擴充名 (*.dmp),是以與您最喜歡的記憶體分析工具有直接的關聯。預設情況下,在 Linux 機器上生成的核心轉儲是在沒有擴充名的情況下建立的。

如果您的托管核心轉儲沒有擴充名,您可以使用“打開檔案”對話框,或将檔案拖放到您的 IDE 中,Visual Studio 會自動将其識别為 Linux 核心托管記憶體轉儲并将其打開。

但是,如果檔案被重命名為包含 Windows 轉儲擴充名 (*.dmp),那麼就需要在“打開檔案”對話框中使用 Visual Studio 的“打開方式”功能,更多詳細資訊請點選此處。

https://devblogs.microsoft.com/visualstudio/linux-managed-memory-dump-debugging/#opening-the-linux-core-dump-in-visual-studio

Linux 核心轉儲檔案摘要

打開托管 Linux 核心轉儲檔案摘要視窗後,将顯示轉儲檔案的摘要和子產品資訊,以及您可以執行的操作清單,這與 Visual Studio 中現有的轉儲處理體驗保持一緻。

适用于 Linux 的 .NET Core App Service 診斷工具正式釋出

要開始調試,請從摘要頁面的“Actions”菜單選擇“Debug with Managed Only”,然後開始使用您已經習慣的牛逼調試工具。

例如,您可以從使用并行堆棧視窗檢視線程或任務清單開始。或者通過線上程之間切換并從 Calls Stacks 視圖中檢查最有趣的幀來更深入地挖掘。然後,您可以使用 Locals 或 Autos 視窗檢查變量的值和狀态。本質上,您可以檢查流程的每個細節,就像在 Linux 上的托管代碼中設定斷點一樣。

診斷分析

Visual Studio 還開發了一組分析器來幫助識别記憶體轉儲中可能表明生産服務存在問題的關鍵信号。Visual Studio 目前支援以下分析器,并在不久的将來推出新的和改進的分析:

  • CLR 線程池
  • 異步同步
  • 死鎖檢測
适用于 Linux 的 .NET Core App Service 診斷工具正式釋出

檢視有關針對托管 Linux 記憶體轉儲運作分析的更多詳細資訊。

https://devblogs.microsoft.com/visualstudio/managed-memory-dump-analyzers/#automatic-analysis-of-a-memory-dump

總結

在我們的 Azure PaaS 産品中,我們繼續投資于全面的診斷體驗,以幫助您最大限度地提高對 Azure PaaS 的投資。我們很高興為深度診斷工件開發了新的調試功能,這将幫助您分析全面而複雜的各項服務。