Elastic Beanstalk是否应用请求/分钟限制?

时间:2015-05-04 10:12:27

标签: java amazon-web-services jmeter elastic-beanstalk amazon-elb

我正在使用Elastic Beanstalk运行Java应用程序 我以某种方式无法处理超过每分钟约25000个请求(约450 reqs /秒), 无论我是否添加更多或更大的实例 我同时从几个来自全球的JMeter客户(爱尔兰,俄勒冈,东京,我在波兰的本地机器)进行测试。每个都在100个主题上。

在CloudWatch指标上,我可以看到奇怪的行为:
ELB上的指标有奇怪的"油门"行为:

strange throttling

当我通过ssh连接到应用服务器实例并检查网络和CPU使用情况时,看起来当"限制"到达时,没有请求传递给任何应用服务器。没有CPU使用,没有网络传输(使用nload检查)。在此期间(最多一分钟),应用服务器实例只是谜语。

所有实例上的CPU使用率远远超出了他们可以处理的最大负载。 我尝试了单个实例(没有Beanstalk)并且每分钟生成45000个请求(750 r / s),

首先。我怀疑我的测试是错误的,并且ELB将所有请求重定向到只有一个实例(由于DNS解析), 所以我手动配置ELB(没有Beanstalk)并手动连接到它的几个应用程序服务器。 它完全分配了负载 - 我达到了大约60000个请求/分钟,当我在m3.medium上的测试数据库开始成为瓶颈时 - 这是可以的,我期待它。 CloudWatch的结果:

手动部署相同的应用程序:

manual deploy

它确保我,我的测试没问题,并且ELB不是问题。

所以,我的问题是:  1. Elastic Beanstalk是否对ELB或其管理的其他服务应用任何其他限制来限制请求/分钟负载?  2.我是否需要"解锁"能否通过Beanstalk处理更多请求?

我的同事建议它看起来像一些反DDoS系统"但我无法找到与此相关的任何内容。

1 个答案:

答案 0 :(得分:0)

Elastic Beanstalk不会限制请求,但在测试中需要考虑一些因素:

  • ELB根据感知流量按DNS循环进行按需扩展。缩放可能需要一些时间,您可以通过查询CNAME(使用nslookup,dig等等)查看ELB背后有多少平衡器。您还可以要求AWS支持人员预热负载均衡器。
  • 网络吞吐量取决于实例类型。
  • AWS执行DDoS和其他安全监控,压力测试可能会被阻止甚至导致帐户阻止。在运行安全敏感测试之前,您应该与AWS协调:http://aws.amazon.com/security/penetration-testing/

查看此最佳做法文章,了解有关Elastic Load Balancers的更多详细信息:http://aws.amazon.com/articles/1636185810492479