我有一个 Azure webrole 项目,其中涉及在实例上安装 3rd 方软件的长期启动任务;有时,我看到没有响应的实例,所以我正在实施一个探测,让负载均衡器注意到这一点,而不是将流量引导到不良实例。这当然是不够的——我想要的是让 Azure(Fabric?)然后重新启动实例,如果这没有帮助(也就是说,让实例正确回复探测)——重新映像实例. 是这种行为吗?如果是这样,记录在哪里?我搜索了很长时间,但没有找到任何有用的东西。
谢谢
我有一个 Azure webrole 项目,其中涉及在实例上安装 3rd 方软件的长期启动任务;有时,我看到没有响应的实例,所以我正在实施一个探测,让负载均衡器注意到这一点,而不是将流量引导到不良实例。这当然是不够的——我想要的是让 Azure(Fabric?)然后重新启动实例,如果这没有帮助(也就是说,让实例正确回复探测)——重新映像实例. 是这种行为吗?如果是这样,记录在哪里?我搜索了很长时间,但没有找到任何有用的东西。
谢谢
Using the management API you should be able to externally monitor your role instances. Then, if one is taking to long you should be able to force it to be re-imaged.
http://blogs.msdn.com/b/kwill/archive/2013/02/28/heartbeats-recovery-and-the-load-balancer.aspx描述了角色实例的运行状况、Azure 为恢复所做的工作以及如何使用负载平衡器探针。
当您说您的实例没有响应时,这是否意味着该实例在门户中显示为忙碌(或就绪之外的其他内容),或者只是 IIS 没有响应请求?如果是前者(实例显示忙碌),那么您不需要负载均衡器探测,因为 Azure 会自动从轮换中删除该实例。如果是后者(IIS 没有响应),那么您可能会在您的 Web 代码中实现 StatusCheck 事件,这样如果 w3wp 本身有问题,那么实例将被结构取消旋转,但如果 w3wp 本身是健康的并且它只是没有响应的请求,那么您将需要负载平衡器探测。
拥有一个良好的监控和恢复解决方案非常有价值,但我建议不要重新启动实例来缓解 w3wp 问题,而应该调查实例没有响应的根本原因。解决问题的根源,而不是使用创可贴:)。http://blogs.msdn.com/b/kwill/archive/2013/02/28/heartbeats-recovery-and-the-load-balancer.aspx上的博文,特别是故障排除方案 5,可能是开始调查的好地方。