AWS ElasticBeanstalk会定期关闭

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS ElasticBeanstalk会定期关闭相关的知识,希望对你有一定的参考价值。

我最近注意到我在AWS Elasticbeanstalk设置中的laravel项目一直表现得很奇怪。服务器会在几分钟内停止运行。在t3.small中,它每50分钟就会下降一次。 “运行状况”选项卡表示内存已耗尽或其他内容。它将“严重”大约5-10分钟,然后回去,没有我做任何事情。在监控中基本上只是一个完整的曲折。在t3.nano中大约每5分钟就会下降一次。

以下是我所做的一些我怀疑是事业的事情

  • 我重新启用了广播推送器。该项目之前有一个推动器设置,它工作正常。但是,我禁用了(删除了所有使用它的部分),因为我还不需要它。我重新启用它并发生了问题
  • 我玩过AWS WAF和Cloudfront。所以我之前正在研究这两个部分并使用一些设置,但是,我不记得使用任何与我的EBS应用程序相关的部分。我删除了我在WAF和Cloudfront上添加的所有内容。

以下是一些事实:

  • 每当我删除创建schedule:run和queue:work的容器命令时,它就变得完全正常了。即使我模拟每秒发送数百个请求,也完全处于“正常”状态。
  • 我尝试将其缩放到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

答案

这是因为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

以上是关于AWS ElasticBeanstalk会定期关闭的主要内容,如果未能解决你的问题,请参考以下文章

AWS EC2 实例定期删除安全组

Aws Elasticbeanstalk cron.yaml 工作人员问题

aws elasticbeanstalk:无法通过 eb cli 部署到工作环境

我找不到 AWS 服务器 IP [关闭]

如何使用aws elasticbeanstalk中的钩子运行部署后脚本?

定期修改 AWS AMI