在对AWS ELB进行基准测试时获得了大量504错误,而不是EC2

时间:2016-03-26 23:55:25

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

首先,抱歉英语不好,我不是原生的。

我不熟悉AWS而不是网络开发,我正在尝试为我的某个网站配置一个云解决方案,该解决方案可能在不久的将来获得大量流量。

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

  • 使用弹性ips直接对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个连接点,你怎么看?

提前致谢! ;)

1 个答案:

答案 0 :(得分:0)

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

在apache日志中,我发现我收到了很多“服务器达到MaxRequestWorkers设置”错误。 我用Google搜索并发现了一些优化技巧,说我应该使用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,现在我可以尝试减少它。

希望它会帮助别人:)