Amazon web services AWS ELB不';在某些情况下,不要将请求分发到自动缩放组EC2实例

Amazon web services AWS ELB不';在某些情况下,不要将请求分发到自动缩放组EC2实例,amazon-web-services,jmeter,autoscaling,amazon-elb,Amazon Web Services,Jmeter,Autoscaling,Amazon Elb,我正在尝试使用jmeter为我的AWS自动缩放组进行性能测试 首先,我做了伸缩测试。我将阈值设置为70%的cpu利用率,持续2个周期,每个周期为2分钟。ELB工作正常,在系统向外扩展后,请求被分发到自动扩展组中的所有EC2实例,尽管不相等 接下来,我想测试两个实例的负载是否可以是一个实例的两倍。 我固定了自动缩放组的实例数,我将最小/最大/所需实例数设置为2。当我从单个JMeter推送负载时,总是只有一个实例工作,其cpu利用率几乎达到100%,但另一个实例的cpu利用率仍然为零。。。。如果我从

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

首先,我做了伸缩测试。我将阈值设置为70%的cpu利用率,持续2个周期,每个周期为2分钟。ELB工作正常,在系统向外扩展后,请求被分发到自动扩展组中的所有EC2实例,尽管不相等

接下来,我想测试两个实例的负载是否可以是一个实例的两倍。 我固定了自动缩放组的实例数,我将最小/最大/所需实例数设置为2。当我从单个JMeter推送负载时,总是只有一个实例工作,其cpu利用率几乎达到100%,但另一个实例的cpu利用率仍然为零。。。。如果我从包含多个从机的JMeter集群推送负载,那么所有实例都会接受负载

有人说,可能负载不够重,所以ELB认为只有一个实例可以处理它,没有向其他实例发送请求。我不这么认为,因为我只从这个JMeter集群的一个从机推送负载,但是我增加了负载,只有一个实例处理请求

我发现一个博客说ELB在HA中很好,但不是负载平衡。 但是,我不认为只有一个实例处理请求的行为是正常的


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

弹性负载平衡机制

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

可用性区域(不太可能是您的情况)

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

会话(最有可能是您的案例)

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

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

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

负载平衡器节点使用leastconns路由算法将请求发送到同一可用性区域内的正常实例。leastconns路由算法支持连接或未完成请求最少的后端实例

资料来源:


希望能有所帮助。

当位于不同可用性区域的后端实例和ELB接收来自少量客户端的请求时,我遇到了ELB流量不平衡的问题。在我们的例子中,我们在应用程序层中使用内部ELB。在您的情况下,“从单个JMeter推送负载”可能意味着ELB看到的少量客户端。解决方案是使用类似于以下片段的API实现跨区域负载平衡:-

elb修改lb属性${elb}--region${region}--CrossZoneLoadBalling“enabled=true”


ELB将从同一IP向同一实例发送流量。请确保您的负载测试使用的是多个IP(就像现实生活中的场景)的家伙,建议被接受。谢谢你的帮助!安德烈,谢谢你的帮助。我发现,如果有多个jmeter发送请求,流量将被分配到实例。Joe,即使从一个IP ELB获取请求,如果没有打开“粘性会话”,也应该分配负载。