azure - 如何诊断 Azure WebJob 中的内存泄漏

标签 azure azure-webjobs azure-web-app-service

我怀疑 WebJob 中可能存在内存泄漏,但我不确定如何明确证明我确实存在内存泄漏。我怀疑我可以通过转到 Kudu 管理控制台中的/processExplorer 来找到信息,启动配置文件并下载结果。但是,我不完全确定这是否是要走的路线,或者我收到文件后应该如何处理该文件。

如有任何建议,我们将不胜感激。

最佳答案

I can find the information by going to the /processExplorer in the Kudu management console, start a profile, and download the results

获得.diagsession文件后,您可以使用Visual Studio打开它。您将看到 CPU 使用趋势,但内存数据不包含在该文件中。为了方便您判断是否存在内存泄漏,以下步骤供您引用。

  1. 手动并及时刷新 kudu 上的 Process Explorer(例如每 30 秒一次)。
  2. 刷新Process Explorer后,需要记录私有(private)内存和虚拟内存,用于诊断内存泄漏。单击进程名称后面的属性按钮,您将看到当前进程的私有(private)内存和虚拟内存。
  3. 记录完足够的数据后,您需要比较虚拟内存和私有(private)内存的增长速度。如果虚拟内存和私有(private)内存都增长得很快,或者虚拟内存增长得比私有(private)内存快,则说明存在内存泄漏。

如果您需要更多内存泄漏信息,您可以从进程属性页面下载内存转储文件,并使用WinDbg查看其详细信息。您还可以使用 Azure 网站的诊断即服务在线分析转储文件。有关如何使用它的更多信息。以下链接供您引用。

DaaS – Diagnostics as a Service for Azure Web Sites

关于azure - 如何诊断 Azure WebJob 中的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42381992/

相关文章:

azure - 将访问策略添加到位于另一个资源组中的 Key Vault

c# - Azure DevOps 使用 API 获取工作项通知

azurew 网站持续部署 - Web Deploy 无法修改目标上的文件 'XXX',因为该文件已被外部进程锁定

azure - 如何使用 Azure WebJobs 运行计划脚本

azure - PnP 继续 Webjob 不执行来配置网站集

c# - Azure WebJob 部署问题

由于 Always On 功能,Azure Web App (API) 突然在 Application Insights 中显示 404 错误

azure - 无法检索提供程序 Terraform Azure 的可用版本列表

azure - 如何从 Azure DevOps YAML 管道访问 AzureResourceManagerTemplateDeployment (@3) 任务中的 "deploymentOutputs"?

azure - Azure 搜索 .NET 客户端 API 中的空间搜索