【问题标题】:Does Elastic Beanstalk apply a request/minute limit?Elastic Beanstalk 是否应用请求/分钟限制?
【发布时间】:2015-07-13 16:31:21
【问题描述】:

我正在使用 Elastic Beanstalk 运行 Java 应用程序。
我不知何故无法处理每分钟超过 25000 个请求(大约 450 个请求/秒), 无论我添加更多或更大的实例。
我正在同时对来自全球的几个 JMeter 客户(爱尔兰、俄勒冈、东京、我在波兰的本地机器)进行测试。每个都有 100 个线程。

在 CloudWatch 指标上,我可以看到奇怪的行为:
具有奇怪“节流”行为的 ELB 指标:

当我通过 ssh 连接到应用服务器实例并检查网络和 CPU 使用率时,看起来当达到“限制”时,没有任何请求被传递到任何应用服务器。没有 CPU 使用率,没有网络传输(通过 nload 检查)。应用服务器实例在这段时间内(最多一分钟)只是闲置。

所有实例的 CPU 使用率远未达到它们可以处理的最大负载。 我尝试了单实例(没有 Beanstalk)并发出了大约 45000 个请求/分钟(750 r/s),

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

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

它确保我的测试正常,ELB 不是问题。

所以,我的问题是: 1. Elastic Beanstalk 是否对 ELB 或它设法限制请求/分钟负载的其他服务应用任何其他限制? 2. 我是否需要以某种方式“解锁”通过 Beanstalk 处理更多请求的能力?

我的同事建议它看起来像一些“反 DDoS 系统”,但我找不到与此相关的任何东西。

【问题讨论】:

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


    【解决方案1】:

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

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

    查看这篇最佳实践文章,了解有关弹性负载均衡器的更深入信息:http://aws.amazon.com/articles/1636185810492479

    【讨论】:

    • 要添加到 Julio 的答案,您可能想尝试在 ELB 上启用跨区域负载平衡
    猜你喜欢
    • 2021-04-16
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    • 2020-10-21
    • 2015-02-21
    • 2017-09-17
    相关资源
    最近更新 更多