AWS / ELB连接耗尽问题

时间:2015-02-26 10:06:43

标签: amazon-web-services nginx amazon-elb aws-ec2

此问题已在AWS论坛上提出,未作任何回复。以下是原始问题


嗨!

我们正在对ELB背后的API实例进行滚动升级,并且在等待连接耗尽完成时会看到令人震惊的很长时间。方案如下:

我们正在运行两个相同的系统,4x c3.large在ELB后面,一个系统用于开发,一个系统用于生产。两个系统之间的唯一区别是生产系统不断提供请求。

当没有流量时,对于所有4个实例,dev系统的滚动升级大约需要3分钟。在生产系统中,这些时间在6到17分钟之间波动。出于原因,我们需要平均每小时进行2次滚动升级,然后滚动升级的17+分钟开始成为问题。

我们所有的API调用都是< 100毫秒所以没有长时间运行的请求应该保持连接耗尽这么长时间。我们一直在改变ELB上的空闲时间和连接耗尽时间的值,没有很好的结果。

当降低连接耗尽超时时,我们看到来自API的502响应,因为它强制断开连接并降低空闲超时似乎没有效果。

总而言之,我们想知道如何减少这些时间。正如我们的要求所有<理论上它应该花费100ms来消耗实例的连接。我们在这里缺少什么吗?

最后一点:我们尝试关闭所有连接耗尽,这似乎比降低连接耗尽时间更好。平均每次测试运行只有1或2个错误,有些运行没有错误。这是因为响应时间如此之快?我们的响应也相对较小,因此TCP响应可能保存在OS输出缓冲区中,因此即使关闭连接耗尽也可以响应?将连接耗尽超时设置为0并关闭后有什么区别?

其他信息:

  • 所有流量均为HTTPS
  • 实例上发生SSL终止
  • 在nginx上启用了keep-alive(试图在此处改变值而没有任何结果)

谢谢!

0 个答案:

没有答案