java - EC2 ELB 性能问题

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

关于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 个节点节点)。因此,上述问题可能是我确定的罪魁祸首。

最佳答案

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

我的建议是使用 haproxy。你有更多的控制权,你会喜欢这种表现。我一直很高兴。我使用 heartbeat 来设置冗余服务器,一切顺利。

此外,如果您计划使用 ELB 执行 SSL,您将遭受更多损失,因为我发现性能低于标准水平。

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

关于java - EC2 ELB 性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9218557/

相关文章:

dns - 使用 Route53 作为私有(private) DNS

无法仅从一台主机访问 Amazon RDS 上的 MySQL 服务器

amazon-web-services - 如何获取 ec2 元数据以反射(reflect)新的主机名?

amazon-web-services - Terraform中的相对路径

java - 如何从文件加载AWS凭证?

javascript - 如何通过 AWS SDK 在新创建的 EC2 实例上运行脚本?

java - 通过 Android-Java 的 HTTP Post 不起作用

java - servlet oracle数据库连接示例

java - "Preconditions"和日志记录参数不需要评估

java - 如何将 Java 1.7 代码转换为 Java 1.6?