我有一个运行Laravel应用程序的EC2服务器,该服务器由RDS MySql数据库驱动。每次我部署该应用程序时,它都可以正常工作,但是在使用大约1周后,它会逐渐变慢,直到最终该站点完全无法加载(对于任何访问者)并导致502错误。我重新部署了该应用程序(因此重新启动了服务器),它工作正常,然后又开始变慢。
此类应用会持续消耗资源的可能原因是什么?尝试了Cloudwatch和服务器日志后,我找不到任何接近其限制的资源,但是该行为仍然存在。 (CPU,CPU积分,突发,内存等...)
谢谢。
答案 0 :(得分:2)
502错误提示Web服务器与应用处理程序之间的通信问题-最有可能是由于实例是微型(猜测)导致实例内存不足而引起的。在这种情况下,我还假设您正在使用PHP-FPM。
尝试仅重新启动PHP-FPM,然后查看您的网站是否再次响应。这将告诉您问题很可能发生在应用程序层。
尾部Web服务器错误日志-如果您不确定发布内容,则应该在此处指出导致问题的原因。
如果您的应用在指定的时间内没有响应Web服务器,这也会引起问题-检查PHP.ini中的以下参数:
max_execution_time = 30
如果使用Nginx,您还需要在此处修改配置以增加超时。寻找以下参数:
fastcgi_connect_timeout 300;
完成此操作后,您可能希望创建一个交换文件。这是或者增加实例大小。 (显然)由于运行应用程序的基础结构,您的问题实际上不太可能是RDS或网络问题。
操作说明 我使用以下方法检查了错误日志:https://www.bigappledesigns.com/2013/06/how-to-access-apache-web-server-httpd-error-logs-for-amazon-ec2-linux-and-most-other-linux-varieties-also/ 这显示了几个“内存不足”消息。