我正在使用Elastic Beanstalk运行Java应用程序 我以某种方式无法处理超过每分钟约25000个请求(约450 reqs /秒), 无论我是否添加更多或更大的实例 我同时从几个来自全球的JMeter客户(爱尔兰,俄勒冈,东京,我在波兰的本地机器)进行测试。每个都在100个主题上。
在CloudWatch指标上,我可以看到奇怪的行为:
ELB上的指标有奇怪的"油门"行为:
当我通过ssh连接到应用服务器实例并检查网络和CPU使用情况时,看起来当"限制"到达时,没有请求传递给任何应用服务器。没有CPU使用,没有网络传输(使用nload检查)。在此期间(最多一分钟),应用服务器实例只是谜语。
所有实例上的CPU使用率远远超出了他们可以处理的最大负载。 我尝试了单个实例(没有Beanstalk)并且每分钟生成45000个请求(750 r / s),
首先。我怀疑我的测试是错误的,并且ELB将所有请求重定向到只有一个实例(由于DNS解析), 所以我手动配置ELB(没有Beanstalk)并手动连接到它的几个应用程序服务器。 它完全分配了负载 - 我达到了大约60000个请求/分钟,当我在m3.medium上的测试数据库开始成为瓶颈时 - 这是可以的,我期待它。 CloudWatch的结果:
手动部署相同的应用程序:
它确保我,我的测试没问题,并且ELB不是问题。
所以,我的问题是: 1. Elastic Beanstalk是否对ELB或其管理的其他服务应用任何其他限制来限制请求/分钟负载? 2.我是否需要"解锁"能否通过Beanstalk处理更多请求?
我的同事建议它看起来像一些反DDoS系统"但我无法找到与此相关的任何内容。
答案 0 :(得分:0)
Elastic Beanstalk不会限制请求,但在测试中需要考虑一些因素:
查看此最佳做法文章,了解有关Elastic Load Balancers的更多详细信息:http://aws.amazon.com/articles/1636185810492479