前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >适用于 Linux 的 .NET Core App Service 诊断工具正式发布

适用于 Linux 的 .NET Core App Service 诊断工具正式发布

作者头像
Edi Wang
发布2021-11-30 16:28:59
1.4K0
发布2021-11-30 16:28:59
举报
文章被收录于专栏:汪宇杰博客汪宇杰博客

作者: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。

在 Kudu 中收集数据

Linux 应用程序服务的 Kudu 控制台已更新,以在 Process Explorer 页面上包含新的内存转储和配置文件收集选项。

要导航到这种新的 Kudu 界面,请使用以下地址(<mysite>替换为你的应用程序名称):https://<mysite>.scm.azurewebsites.net/newui 以查看新界面。

当您选择 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 中现有的转储处理体验保持一致。

要开始调试,请从摘要页面的“Actions”菜单选择“Debug with Managed Only”,然后开始使用您已经习惯的牛逼调试工具。

例如,您可以从使用并行堆栈窗口查看线程或任务列表开始。或者通过在线程之间切换并从 Calls Stacks 视图中检查最有趣的帧来更深入地挖掘。然后,您可以使用 Locals 或 Autos 窗口检查变量的值和状态。本质上,您可以检查流程的每个细节,就像在 Linux 上的托管代码中设置断点一样。

诊断分析

Visual Studio 还开发了一组分析器来帮助识别内存转储中可能表明生产服务存在问题的关键信号。Visual Studio 目前支持以下分析器,并在不久的将来推出新的和改进的分析:

  • CLR 线程池
  • 异步同步
  • 死锁检测

查看有关针对托管 Linux 内存转储运行分析的更多详细信息。

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

总结

在我们的 Azure PaaS 产品中,我们继续投资于全面的诊断体验,以帮助您最大限度地提高对 Azure PaaS 的投资。我们很高兴为深度诊断工件开发了新的调试功能,这将帮助您分析全面而复杂的各项服务。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-11-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 汪宇杰博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档