通常,在Azue网站中,当下列情景发生时,Hang模式的内存转储文件可以帮助技术人员查找问题原因:

  • 请求响应缓慢 — 比如网站耗费很长的时间处理HTTP请求
  • 资源利用率过高 — 比如CPU、Memory等资源使用率很高
  • 资源泄露 — 比如Memory使用量持续上升

关于更多内存转储文件收集、分析的内容,请访问www.debugging.com.cn

在上一篇文章中,介绍了使用Kudu Process Explorer收集Hang模式的内存转储文件。同时,也提到Kudu Process Explorer收集的是mini dump,该文件包含极其有限的信息。很多情况下,我们需要一个full dump(完整的内存转储文件)分析问题。在本文中,将介绍如何使用Kudu Rest API来收集Hang模式的full dump。


Kudu提供了一套Rest API可以用于管理网站部署,查看网站信息,诊断网站问题等。Kudu Rest API的URL为https://yoursite.scm.azurewebsites.net/api。访问Kudu Rest API与访问Kudu站点一样,需要认证。您可以使用Azure订阅账户或者Azure网站部署用户。关于Kudu站点,请参考Amit的文章:
http://azure.microsoft.com/blog/2014/03/28/windows-azure-websites-online-tools-you-should-know-about-2/

首先,登录到Kudu站点,如下图所示,点击Processes Explorer
kudu - process explorer

如下图所示,在进程列表中包含两个W3WP.EXE,其中一个为Kudu站点的IIS工作进程(标记有SCM)。另外一个为客户网站的工作进程,记住该进程的ID(4696)。
kudu - process explorer -- process id

回到Kudu站点首页,如下图所示,点击Rest API下面的Processes and mini-dumps

kudu - Rest API

如下图所示,Kudu Rest API返回网站的进程列表。通常包含两个W3WP.EXE,前面我们介绍了在如何Kudu Process Explorer中查看Kudu站点和客户站点的工作进程信息。点击网站工作进程(4696)对应的链接。
kudu api -- process list

如下图所示,Kudu Rest API的返回信息中包含mini dump, GC dump的链接。Kudu Process Explorer也是通过调用这两个Rest API生成dump文件。
kudu - rest api - dump link

如果要生成full memory dump,那么需要在mini dump的API URL后面加上Query String: dumpType=2。另外,还可以加上format=zip压缩内存转储文件。下面是一个例子:
GET /api/diagnostics/processes/{id}/dump?dumpType=2&format=zip

在本例中,在浏览器中输入https://wzhaotest.scm.azurewebsites.net/api/processes/4696/dump?dumpType=2&format=zip,即可生成包含进程完整内存信息的转储文件。

更多关于Rest API的信息,请参考文档。
https://github.com/projectkudu/kudu/wiki/REST-API
https://github.com/projectkudu/kudu/wiki/Process-Threads-list-and-minidump-gcdump-diagsession

Leave a comment

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