Amazon web services 在对AWS ELB(而不是EC2)进行基准测试时,会出现大量504错误

Amazon web services 在对AWS ELB(而不是EC2)进行基准测试时,会出现大量504错误,amazon-web-services,amazon-ec2,amazon-elb,Amazon Web Services,Amazon Ec2,Amazon Elb,首先,很抱歉我的英语不好,我不是本地人 我对AWS很陌生,但对web开发不是很熟悉,我正在尝试为我的一个网站配置一个云解决方案,这个网站在不久的将来可能会获得大量流量 多亏了堆栈溢出和AWS文档,我成功地配置了我的实例、自动缩放组等,但在使用Sakege进行测试时,我遇到了一个奇怪的问题: 直接使用弹性IP在EC2实例上进行基准测试可以完美地100%可用,一切都很好 ELB上的基准测试效果很差,90%的可用性都是由于504个错误造成的,但大多数请求在不到2秒钟内得到响应 在自动缩放组中只有一

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

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

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

  • 直接使用弹性IP在EC2实例上进行基准测试可以完美地100%可用,一切都很好
  • ELB上的基准测试效果很差,90%的可用性都是由于504个错误造成的,但大多数请求在不到2秒钟内得到响应
在自动缩放组中只有一个实例属于ELB,它是具有弹性IP的实例

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

  • 检查ELB healthCheck是否正常工作
  • 尝试启用ELB粘性
  • 增加EC2中的KeepAlive
  • 重新创建ELB
我已经解决这个问题3个小时了,所以我尝试了其他方法,但记不清了。 有人有主意吗?亚马逊的人能研究一下并找到解决方案吗?因为我比我以前的主人支付更多的唯一原因是有一个好的负载平衡器

我正在m3.medium实例上运行带有php7 fpm的Apache2.4

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

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


提前谢谢!;)

因此,对于与我处境相同的人,我意外地找到了一个对我的服务器进行优化的解决方案:

在apache日志中,我发现出现了很多“服务器到达MaxRequestWorkers设置”错误。 我在谷歌上搜索了一下,发现了一些优化技巧,说我应该使用mpm_worker(我使用的是mpm_事件)来实现并发连接 因此,我启用了mpm worker而不是mpm_事件: 我使用了那些参数: 我还增加了keepAlive和KeepAliveMaxConnect,以防万一

现在,它工作得非常好,我的网站可以处理1000个并发连接,响应时间为2-10秒,现在就由我来尝试减少它

希望它能帮助其他人:)