Amazon web services AWS弹性负载平衡器的异常行为

Amazon web services AWS弹性负载平衡器的异常行为,amazon-web-services,amazon-ec2,load-balancing,ubuntu-10.04,Amazon Web Services,Amazon Ec2,Load Balancing,Ubuntu 10.04,我在AWS堆栈上运行了基于电子商务的RubyonRails应用程序。我使用弹性负载平衡器运行Ubuntu10.04EC2实例,并且在可用性区域1a和1b中保持相同数量的实例。但根据我的观察,ELB似乎将更多的流量推至1a,而不是将其平均分配。尽管1b中运行的实例运行状况良好,而且我已经禁用了ELB上的粘性会话。我在两个可用性区域上都运行了2个大型实例和1个中型实例 导致负载均匀分布的原因是什么。根据我的经验,如果来自单个网络或ip地址的流量过大,则可能会发生这种情况 ELB使用不同的平衡层。DN

我在AWS堆栈上运行了基于电子商务的RubyonRails应用程序。我使用弹性负载平衡器运行Ubuntu10.04EC2实例,并且在可用性区域1a和1b中保持相同数量的实例。但根据我的观察,ELB似乎将更多的流量推至1a,而不是将其平均分配。尽管1b中运行的实例运行状况良好,而且我已经禁用了ELB上的粘性会话。我在两个可用性区域上都运行了2个大型实例和1个中型实例


导致负载均匀分布的原因是什么。

根据我的经验,如果来自单个网络或ip地址的流量过大,则可能会发生这种情况

ELB使用不同的平衡层。DNS负载平衡将它发送到两个区域之一的一组IP地址,软件负载平衡器将在区域中的实例之间分配流量


如果有大量流量来自同一网络,则可能有许多用户在负载平衡器上获得相同的DNS解析,并最终位于同一区域。

如果源流量来自单个网络/IP范围或IP地址,ELB可能会将流量不成比例地负载平衡到后端。我已经在我的博客“剖析ELB”中讨论了这一点以及需要注意的关于ELB的其他几个细节。我在一些流行的OSS LB实现中也注意到了这种行为,您可以将balance算法作为“源”和session Stick相结合。如果未在HTTP上发送会话ID,则它将基于“源”进行负载平衡