【发布时间】:2012-05-27 00:43:18
【问题描述】:
我有一个工作角色,其中运行许多线程来处理来自客户端的连接。在负载测试期间,我们注意到角色变得无响应,并保持在该状态直到我们重新启动它。 在 Visual Studio 调试器中查看它(通过暂停活动进程),我们可以看到许多线程在等待,但是当它取消暂停时,没有任何活动发生。 我如何知道是什么导致角色保持在该状态?
【问题讨论】:
标签: debugging azure azure-worker-roles role
我有一个工作角色,其中运行许多线程来处理来自客户端的连接。在负载测试期间,我们注意到角色变得无响应,并保持在该状态直到我们重新启动它。 在 Visual Studio 调试器中查看它(通过暂停活动进程),我们可以看到许多线程在等待,但是当它取消暂停时,没有任何活动发生。 我如何知道是什么导致角色保持在该状态?
【问题讨论】:
标签: debugging azure azure-worker-roles role
正如您提到的,当您执行负载测试时,您的 Worker 角色开始出现问题,可以安全地假设该角色最初工作正常。这会得出结论,即问题是特定于应用程序的,而不是特定于平台的。您可以通过两种方式从 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 并调试主机进程
在这种情况下,当你有一个工人角色停止工作时,这是我真正向任何人建议的:
最重要的是,您确实需要在 Azure VM 中挖掘根本原因,这与在本地计算机中所做的方式几乎相同。
【讨论】: