【问题标题】:EC2 ELB performance issuesEC2 ELB 性能问题
【发布时间】:2012-03-02 09:04:09
【问题描述】:

关于EC2 ELB的两个问题:

首先是如何正确运行 JMeter 测试。我发现了以下http://osdir.com/ml/jmeter-user.jakarta.apache.org/2010-04/msg00203.html,它基本上说在启动 JMeter 时设置 -Dsun.net.inetaddr.ttl=0 (这很容易),第二点是路由是每个 ip 而不是每个请求。因此,除了开始一个 jmeter 实例场之外,我不知道如何解决这个问题。欢迎任何想法,或者我可能误读了解释(?)

另外,我有一个 Web 服务,它正在对 Java 中的另一个 Web 服务进行服务器端调用(并且都在 ELB 之后),所以我使用的是 HttpClient,它是 MultiThreadedHttpConnectionManager,我在其中提供了一些大型路由来托管连接管理器中的值。而且我想知道这是否会破坏负载平衡行为ELB,因为连接被缓存(并且请求都来自同一台机器)。我每次都可以切换为使用新的 HttpClient(有点蹩脚),但这并不能解决所有请求都来自少数主机的事实。

背景故事:我正在 EC2 上使用 ELB 对服务进行性能测试,但流量分布不均(大多数流量到 1-2 个节点,几乎没有流量到 1 个节点,完全没有流量到第 4 个节点节点)。因此,上述问题是我发现的可能罪魁祸首。

【问题讨论】:

    标签: java amazon-web-services amazon-ec2 performance-testing amazon-elb


    【解决方案1】:

    我遇到了非常相似的问题。一件事是 ELB 在突发负载下不能很好地扩展。因此,当您尝试对其进行测试时,它不会立即扩大规模。它需要很长时间才能向上移动。另一个缺点是它使用 CNAME 作为 DNS 查找。仅这一点就会让你慢下来。您可以研究更多性能问题。

    我的建议是使用 haproxy。你有更多的控制权,你会喜欢这种表现。我对此非常满意。我使用心跳来设置冗余服务器,我很高兴。

    此外,如果您打算使用 ELB 进行 SSL,您将遭受更多损失,因为我发现性能低于标准。

    希望对大家有所帮助。归根结底,AWS 亲自告诉我,对 ELB 进行负载测试并不能真正起作用,如果您计划以大量负载启动,您需要告诉他们,以便他们可以提前扩展您.

    【讨论】:

    • 我不确定我正在做的事情是否算作大量负载,但就像 REST api 的 150-200 QPS,没有 SSL。我不希望 ELB 本身能够扩展(我希望 1 个 ELB 可以处理 150QPS),但我确实希望它可以在各个盒子之间均匀地分配负载,而不必有加速时间。你能对此发表评论吗?
    • 是的。我遇到了同样的问题,我认为只有在需要时才分配负载。执行此操作时,ELB 似乎不一致。我再次建议您查看 haproxy,它可以选择进行循环分发,这将更接近您的需要。我真的很喜欢 AWS 服务,但是 ELB 的黑匣子太难管理 IMO。
    • 另一件事,如果您从一个 IP 发送所有负载,这也可能导致负载分配问题。
    【解决方案2】:

    您没有说您正在运行多少个 jmeter 实例,但根据我的经验,它应该是您正在扩展的可用区数量的 2 倍左右。即使这样,您也可能会看到负载不平衡 - 看到负载在您的后端队列中精确扩展是非常不寻常的。

    您可以通过在不同区域运行 jmeter 实例来提供帮助。

    另一个因素是测试的持续时间。 ELB 确实需要一些时间来扩展 - 您通常可以通过对 ELB 名称执行 nslookup 来判断正在运行的实例数量。了解您的扩展模式,并围绕它们构建测试。 (因此,如果将另一个实例添加到 ELB 池需要 20 分钟,请在测试中加入 25-30 分钟的预热。)如果需要,您还可以让 AWS “预热” ELB 池。

    如果您的 ELB 池大小足以进行测试,并且可以验证池在测试运行期间不会发生变化,您始终可以尝试直接针对 ELB IP 运行测试 - 即手动平衡流量。

    我不确定第二层调用会发生什么 - 如果你打开一个连接并重新使用它,显然没有办法在不关闭和重新打开的情况下跨实例扩展连接。这些调用是在同一组服务器上运行,还是在不同的一组服务器上运行?您可以创建一个内部 ELB,并使用该端点进行连接,但我不确定这对您描述的场景是否有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-28
      • 2016-03-21
      • 2012-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-26
      • 2012-03-14
      相关资源
      最近更新 更多