Windows Azure角色无响应

Irw*_*win 5 debugging role azure azure-worker-roles

我有一个辅助角色,其中运行多个线程来处理来自客户端的连接.在负载测试期间,我们注意到该角色没有响应,并且在我们重新启动之前一直处于该状态.在visual studio调试器中查看它(通过暂停活动进程),我们可以看到许多线程在等待,但是当它被取消暂停时,就不会发生任何活动.我怎么知道是什么导致角色留在那个州?

Avk*_*han 6

正如您提到的,当您执行负载测试时,您的辅助角色开始出现问题,可以安全地假设角色最初工作正常.这推断出问题是特定于应用程序而不是特定于平台的结论.有两种方法可以从Windows Azure VM获取一些诊断信息:

  • 选项1(首选):为了检查Azure VM中发生的情况,您确实需要在角色中添加Windows Azure诊断,以便将性能计数器,内存详细信息,角色流程运行状况和其他数据从Azure VM转移到您可以离线分析的Azure存储.

  • 选项2:启用对Azure VM的RDP访问,然后登录Azure VM并在Azure VM中安装Perfmon,Process Explorer和其他运行状况监视工具,并监视正在发生的情况.

  • 选项3(最后手段):RDP到您的Azure VM并安装WinDBG并调试主机进程

在这种情况下,当你有一个工人角色停止工作时,这是我真正建议任何人:

  1. 寻找CPU,内存压力,线程列表,找出哪些线程被阻止,可能是什么原因.
  2. 查找主机工作进程运行状况,当它上次启动时,是否由于某种原因进行回收,在Azure VM中运行多长时间
  3. 如果您有一个在您的辅助角色中设置为"ProgramEntryPoint"的单独进程,请检查其运行状况
  4. 在应用程序的系统级别检查事件日志是否有任何线索.在Worker角色中,我看不到应用程序事件日志中会有什么东西,但值得一看.
  5. 我使用进程监视器来监视一些进程并收集日志,以查看进程何时处理最后状态,访问内容以及是否被其他问题匮乏.

最重要的是,你真的需要在Azure VM中挖掘根本原因,就像在内部部署机器上一样.