性能

性能问题


前面三篇文章分别介绍了如何利用Kudu Process ExplorerKudu Rest APIKudu Console+ProcDump来手工抓取内存转储文件。

实际中,很多性能问题随机发生,并且仅仅持续一段时间。当问题发生后,IT管理员或者开发人员来不及采取任何措施抓取数据,可能就已经恢复了。在本文将介绍当网站性能下降时如何自动抓取dump文件。
继续阅读


kudu - process explorer -- process id

通常,在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。

继续阅读


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

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

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

kudu - process list

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

内存转储文件,顾名思义,就是将内存中的数据转储保存在转储文件中(通常为.dmp文件),技术人员可以通过分析该文件查找软件错误的原因。收集内存转储文件时,通常需要登录到问题机器运行特定的工具。下面的文档列出了几个常用工具。
Choosing the Best Tool
http://msdn.microsoft.com/en-us/library/windows/hardware/ff539117(v=vs.85).aspx

内存转储文件是一个比较冷门的概念,即使一些资深的技术人员也可能对此很生疏。在开始之前,我们介绍一下内存转储文件的基本概念。内存转储文件相当于一个内存的snapshot,在特定问题发生的时候对进程或者整个系统的内存状态进行一次“照相”,将当前的内存状态保持到文件中。这个文件就称为内存转储文件,通常是.dmp文件。内存转储文件包含进程或者系统的瞬时状态,比如当前正在执行的函数、CPU指令等,以及内存、句柄、CPU等资源的使用情况等等。
继续阅读


目前,Microsoft Azure网站不支持远程调试PHP站点。但是,您仍然可以使用XDebug扩展模块排错PHP网站问题。Xdebug是一个开源PHP程序调试器,可以用来跟踪,调试和分析PHP程序的运行状况。

下面具体介绍如何使用XDebug的性能分析功能查找PHP网站的性能瓶颈。在
Azure网站上的PHP — 配置PHP扩展模块中介绍了如何配置XDebug PHP扩展模块。

要启用XDebug的Profiling功能,需要创建一个包含如下内容用的.user.ini文件,并通过FTP上传到/site/wwwroot目录下。
继续阅读

xdebug profiler output

failed request tracing3

该文章最早以英文发表在Team的博客。
Windows AZure Web Sites FREB trace for slow requests

IIS失败请求跟踪

从IIS 7开始,IIS提供了一个非常实用的功能:失败请求跟踪。在页面运行时,IIS失败请求跟踪通过ETW记录整个页面处理过程的详细信息。通过分析请求跟踪结果可以定位或者缩小问题的范围。

IIS提供了两种失败请求跟踪规则:

  • 状态码(StatusCode)

指定要跟踪的HTTP状态代码,可以在该列表中输入多个以逗号分隔的状态代码。 还可以使用子状态代码来细分状态代码,如“404.2, 500”。比如某个页面间歇性返回404,您可以创建一个规则,跟踪状态码为404的请求。只有当服务器响应的HTTP状态代码为404是,IIS才会将跟踪结果保存下来。

  • 请求执行时间(timeTaken)

主要用于IIS请求耗费时间过长。比如,某个页面正常情况下响应时间为5秒。某些情况下,可能响应时间超过20秒。要排查该问题,您可以创建一个规则要求IIS跟踪执行时间超过15秒的请求。

 Azure网站中的失败请求跟踪
继续阅读