AWS ElasticBeanstalk定期关闭

时间:2018-11-23 19:33:15

标签: apache amazon-web-services laravel-5 amazon-ec2 amazon-elastic-beanstalk

我最近注意到,我在AWS Elasticbeanstalk设置中的laravel项目表现得很奇怪。服务器将在几分钟后关闭。在t3.small中,它每50分钟下降一次。运行状况选项卡显示内存已耗尽或其他原因。它将“严重”持续约5-10分钟,然后不做任何事情就返回。基本上只是整个监控中的锯齿。在t3.nano中,它大约每5分钟下降一次。

以下是我做过的一些事情,我怀疑是原因

  • 我已重新启用广播按钮。该项目之前有一个推送程序设置,并且运行良好。但是,我禁用了(删除了使用它的所有部件),因为我还不需要它。我重新启用它,然后出现了问题
  • 我玩过AWS WAF和Cloudfront。因此,我之前研究了这两个部分并进行了一些设置,但是,我不记得使用任何与我的EBS应用程序相关的设置。我确实删除了我在WAF和Cloudfront中添加的所有内容。

以下是一些事实:

  • 每当我删除创建schedule:run和queue:work的容器命令时,它就完全可以了。甚至完全“ OK”状态 如果我模拟每秒发送数百个请求。
  • 我尝试将其扩展到3个实例,结果仍然相同,但是停机时间变慢了
  • 停机时会给出503错误代码
  • EBS的安装程序是在64位Amazon Linux / 2.8.4上运行的PHP 7.2
  • 我正在通过每分钟发送1个Pusher消息来测试作业和队列。除了发送当前时间外,它什么都不做。这是 也是唯一运行的cronjob。
  • cronjob可以正常工作,我也可以收到Pusher消息,除了停机时间

以下是我对日志的观察 -有一个与Apache有关的“内部虚拟连接”。记录时间与发生停机的时间相同。

我尝试了日志中的所有提示,包括在cronjob上弄乱了不同的设置以及其他可能的原因。我也曾尝试问过我的同龄人,但之前没有人遇到这样的错误。实际上,他们测试了我的cronjob,并且对他们来说工作正常。

我在/ var / log / httpd / error_log中也有此错误

[Fri Nov 23 19:07:35.208657 2018] [suexec:notice] [pid 3142] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) [Fri Nov 23 19:07:35.228633 2018] [http2:warn] [pid 3142] AH10034: The mpm module (prefork.c) is not supported by mod_http2. The mpm determines how things are processed in your server. HTTP/2 has more demands in this regard and the currently selected mpm will just not do. This is an advisory warning. Your server will continue to work, but the HTTP/2 protocol will be inactive. [Fri Nov 23 19:07:35.228644 2018] [http2:warn] [pid 3142] AH02951: mod_ssl does not seem to be enabled [Fri Nov 23 19:07:35.229188 2018] [lbmethod_heartbeat:notice] [pid 3142] AH02282: No slotmem from mod_heartmonitor [Fri Nov 23 19:07:35.267841 2018] [mpm_prefork:notice] [pid 3142] AH00163: Apache/2.4.34 (Amazon) configured -- resuming normal operations [Fri Nov 23 19:07:35.267860 2018] [core:notice] [pid 3142] AH00094: Command line: '/usr/sbin/httpd -D FOR

1 个答案:

答案 0 :(得分:0)

在这种情况下,t2 / t3。* EC2实例的CPU信用和节流限制令人吃惊。 1 CPU积分可让(t2 / t3)实例在100%CPU上运行1分钟。对于运行中的实例,所有t2 / t3。*实例CPU信用均以每小时固定的速率进行补充(该速率取决于实例类)。因此,长时间的负载(超过特定阈值)将逐渐耗尽这些信用,导致您处于上述状态。

建议使用更高级别的实例(m3.medium及更高版本)来持续维持生产工作负载。将负载均衡器放置在多个实例的前面也是保持可用性的好方法。

有关同一内容的更多信息,请参见:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-credits-baseline-concepts.html