【问题标题】:Getting a lot of 504 errors when benchmarking AWS ELB, but not EC2对 AWS ELB 进行基准测试时出现很多 504 错误,但不是 EC2
【发布时间】:2016-07-14 12:38:33
【问题描述】:

首先,抱歉英语不好,我不是本地人。

我对 AWS 很陌生,但对 Web 开发并不熟悉,我正在尝试为我的一个网站配置云解决方案,该网站在不久的将来可能会获得大量流量。

感谢堆栈溢出和 AWS 文档,我成功配置了我的实例、自动缩放组等,但是在使用 siege 进行测试时,我遇到了一个奇怪的问题:

  • 直接使用弹性 ip 在 EC2 实例上进行基准测试可以完美地 100% 可用性,一切都很好
  • ELB 上的基准测试效果不佳,90% 的可用性都是由于 504 错误造成的,但大部分请求在 2 秒内得到答复

弹性伸缩组中只有一个实例属于ELB,并且是弹性ips的实例。

所以,我上网查了一下,发现有很多人和我有同样的问题,但没有得到解答。我尝试了所有我发现的东西,包括:

  • 检查 ELB healthCheck 是否正常工作
  • 尝试启用 ELB 粘性
  • 在 EC2 中增加 KeepAlive
  • 重新创建 ELB

我已经解决这个问题 3 个小时了,所以我尝试了其他方法,但不记得全部了。 有人有想法吗?亚马逊人可以调查一下并找到解决方案吗?因为我支付的费用比我以前的主机多的唯一原因是有一个好的负载平衡器。

我在 m3.medium 实例上使用 php7-fpm 运行 apache 2.4

奖励:另外,我不知道为什么,但在达到我为启动新实例定义的 80% cpu 利用率之前,我的服务器似乎变慢了。例如,如果我启动 1000 个并发用户 10 分钟,加载页面最多需要 20-30 秒,但 CPU 使用率永远不会超过 50%。

最后的信息让我觉得我遇到了 ELB 扩展延迟的问题,因为我要启动 1000 个并发连接,你怎么看?

提前致谢! ;)

【问题讨论】:

    标签: amazon-web-services amazon-ec2 amazon-elb


    【解决方案1】:

    所以,对于和我一样情况的人,我偶然发现了一个对我的服务器进行优化的解决方案:

    在 apache 日志中,我发现我收到很多“服务器达到 MaxRequestWorkers 设置”错误。 我用谷歌搜索,发现了一些优化技巧,说我应该使用 mpm_worker(我正在使用 mpm_event)进行并发连接 所以,我启用了 mpm worker 而不是 mpm_event :https://askubuntu.com/questions/524770/apache-enable-worker-mpm 我使用了这些参数: http://oxpedia.org/wiki/index.php?title=Tune_apache2_for_more_concurrent_connections 我还增加了keepAlive和KeepAliveMaxConnect,以防万一

    现在,它工作得很好,我的网站处理 1000 个并发连接,响应时间为 2s-10s,现在由我来尝试减少它。

    希望它会帮助别人:)

    【讨论】:

      猜你喜欢
      • 2012-02-02
      • 2017-01-04
      • 2018-11-16
      • 1970-01-01
      • 1970-01-01
      • 2019-01-11
      • 2017-01-20
      • 2022-11-22
      • 1970-01-01
      相关资源
      最近更新 更多