首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS ELB在某些情况下不会将请求分发到弹性伸缩组EC2实例

AWS ELB在某些情况下不会将请求分发到弹性伸缩组EC2实例
EN

Stack Overflow用户
提问于 2013-12-14 23:09:06
回答 2查看 6.2K关注 0票数 5

我正在尝试使用jmeter为我的AWS自动伸缩组进行性能测试。

首先,我做了扩展/扩展测试。我将阈值设置为两个周期的cpu利用率为70%,每个周期为2分钟。系统扩容后,弹性伸缩组中的所有EC2实例尽管存在不平等现象,但弹性伸缩组中的请求都被分发到弹性伸缩组中。

接下来,我想测试两个实例的负载是否可以是一个实例的两倍。我固定了弹性伸缩组的实例数,将最小/最大/期望实例数设置为2。当我从单个JMeter推送负载时,总是只有一个实例工作,它的cpu利用率几乎达到100%,而另一个实例的cpu利用率仍然为零……如果我从包含多个slaves的JMeter集群推送负载,则所有实例都会加载。

有人说,可能负载不够重,所以ELB认为只有一个实例就可以处理它,而不是将请求分派到其他实例。我不这么认为,因为我只从这个JMeter集群的一个从服务器推送负载,但是我增加了负载,只有一个实例处理请求。

我找到了一个博客,上面说ELB在HA方面很棒,但不是负载均衡。https://www.stackdriver.com/elb-affinity-problems但是,我不认为这种行为是正常的,只有一个实例处理请求。

ELB的负载均衡机制到底是什么?我很困惑。

EN

回答 2

Stack Overflow用户

发布于 2013-12-15 14:14:41

弹性负载均衡机制

  • DNS服务器使用DNS循环调度来确定特定可用性区域中的哪个负载平衡器节点将接收请求
  • 选定的负载平衡器将检查“粘滞会话”cookie
  • 选定的oad平衡器将请求发送到负载最少的实例

更详细地说:

Availability Zones (不太可能是您的情况)

默认情况下,负载均衡节点会将流量路由到同一可用区内的后端实例。为了确保您的后端实例能够处理每个可用区中的请求负载,在每个可用区中拥有大致相同数量的实例非常重要。例如,如果您有10个实例位于可用区us-east-1a,两个实例位于us-east-1b,则流量仍将在这两个可用区之间均匀分布。因此,us-east-1b中的两个实例将必须提供与us-east-1a中的10个实例相同的通信量。

会话(最有可能是您的情况)

默认情况下,负载均衡器将每个请求独立地路由到负载最小的服务器实例。相比之下,粘性会话将用户的会话绑定到特定的服务器实例,以便在会话期间来自用户的所有请求都将发送到相同的服务器实例。

当为应用程序启用粘滞会话时,AWS Elastic Beanstalk使用负载平衡器生成的HTTP cookie。负载均衡器使用一个特殊的负载均衡器生成的cookie来跟踪每个请求的应用程序实例。当负载均衡器收到请求时,它首先检查请求中是否存在此cookie。如果是,则将请求发送到cookie中指定的应用程序实例。如果没有cookie,负载均衡器会根据现有的负载均衡算法选择一个应用实例。cookie被插入到响应中,用于将来自同一用户的后续请求绑定到该应用程序实例。策略配置定义了cookie过期时间,这将确定每个cookie的有效期。

路由算法(您的情况不太可能)

负载均衡节点使用leastconns路由算法将请求发送到同一可用区内的健康实例。leastconns路由算法优先考虑连接最少或未完成请求最少的后端实例。

来源:Elastic Load Balancing Terminology And Key Concepts

希望能有所帮助。

票数 3
EN

Stack Overflow用户

发布于 2014-02-11 12:22:54

当后端实例位于不同的可用区,并且ELB正在接收来自少量客户端的请求时,我遇到了ELB流量不平衡的问题。在我们的例子中,我们在应用层中使用了一个内部ELB。在您的例子中,“来自单个JMeter的推送负载”很可能是指ELB所看到的少量客户端。解决方案是使用类似以下片段的API启用跨区域负载平衡:

elb-modify-lb-attributes ${ELB} --region ${REGION} --跨区域负载平衡"enabled=true“

http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/enable-disable-crosszone-lb.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20584858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档