在前面的两篇文章中,分别介绍了利用Kudu Process ExplorerKudu Rest API来收集Hang模式内存转储文件。本文介绍如何使用Kudu Console和ProcDump来抓取内存转储文件。


英文版本

下载工具

从微软网站下载ProcDump工具。

上传工具

如英文版本所述,您可以利用FTP将ProcDump工具上传到网站目录下,或者可以利用Kudu Console来上传。首先,使用您的Azure订阅账户登录到Kudu站点。Kudu站点的URL为https://.SCM.azurewebsites.net。在Kudu网站,点击顶部的Debug Console,然后选择一个自己喜欢的控制台:CMD或者PowerShell。在这里以Powershell为例。

在PowerShell Console上方,有一个文件浏览器。点击Site目录,进入该目录。点击文件浏览器左上方的+图标,添加一个文件夹,在本文中,将该文件夹命名为Tools。点击Tools文件夹,进入该文件夹。如下图所示,将下载的ProcDump拖拽到文件浏览器,ProcDump将被上传并自动解压缩。
kudu drag-drop

生成内存转储文件

当问题发生的时候(比如您的应用运行缓慢,资源利用率很高(CPU/内存)),我们可以利用ProcDump来生成内存转储文件。

首先,登录到Kudu网站,选择PowerShell Console,然后进入tools目录。在PowerShell Console中运行Get-Process命令。该命令列出与您的网站相关的所有进程,包括PHP和NODE进程。

记下对应的进程ID,然后运行ProcDump命令生成内存转储文件。在本例中,以node.exe为例,对应的命令行为“.\procdump -accepteula -ma 5048”
-accepteula告诉ProcDump不要弹出版权信息的对话框。因为在Kudu PowerShell Console中,无法看到任何UI窗口。
-ma告诉ProcDump生成完整的内存转储文件。
5048为Node.exe的进程ID。

如下图所示,命令运行后,在当前目录下生成一个.dmp文件。点击该文件左侧的下载图标,可以将该文件下载到本地进行分析。关于如何分析Dump文件,请访问www.debugging.com.cn

Kudu PowerShell command Console

Leave a comment

电子邮件地址不会被公开。 必填项已用*标注