我一直致力于运行一些Python代码以接受TCP连接的EC2实例的可靠性。
设置: 该脚本设置为接受许多连接并进行一些处理并发回结果。来自ELB的Ping被成功识别并且机器变得健康。
问题: 如果我在使用无限循环处理期间模拟死锁,则接受ping但Python服务器永远不会关闭客户端;它仍然在循环中。奇怪的是,虽然机器不能再接受任何连接,但实例被标记为健康。我希望机器不健康,因为它不能接受更多的ping。
我想知道实例是否已接受ping并且连接仍处于打开状态这一事实意味着“健康”机器?或者,如果这里发生了其他可怕的事情?并希望如何解决它!
提前致谢。
答案 0 :(得分:1)
不,如果服务器将HTTP 200返回给请求,它应该只保持健康。它还将使用HTTP 1.1,保留与服务器的开放连接,而不是删除并重新创建它。剩余正常表示ELB正在从您的服务器继续对ping尝试做出200次响应。
你确定python脚本参与响应ping吗?什么是ping请求?我建议运行状况检查测试一个URL,您的应用程序会以与生产请求类似的方式主动处理该URL。
此处的文档疑难解答:
http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/ts-elb-healthcheck.html