在Amazon EC2上部署我的website之后,我遇到了页面加载时间问题,处理请求需要很长时间。
我很确定这是Laravel框架的问题,因为我在bootstrap.start.php
的开头放了一个调试行:
<?php
die();
/*
|--------------------------------------------------------------------------
| Create The Application
|--------------------------------------------------------------------------
|
| The first thing we will do is create a new Laravel application instance
| which serves as the "glue" for all the components of Laravel, and is
| the IoC container for the system binding all of the various parts.
|
*/
然后它将运行得非常快,这意味着Apache或负载均衡器没有问题......
但是如果我把调试行放在return $app;
之前:
require $framework.'/Illuminate/Foundation/start.php';
die();
然后服务器花费太长时间来处理和退出脚本并将结果返回给浏览器。
即使没有数据库连接,页面也很慢,只能通过控制器然后返回一个几乎静态的视图。
然后我再次尝试运行此命令:
php artisan optimized
或者甚至试过:
php artisan clear-compiled
php artisan optimized
然后,网站加载前几个请求非常快,但过了一会儿,它又回到慢速模式。
我真的不知道如何解决这个问题,因为我应用的调整至少它可以工作,但它很长时间没有用。
我使用的版本是Laravel 4.2。
经过无数个小时的调查后,我发现问题与Laravel无关。这是因为亚马逊EC2上的突发CPU功能让我对调试应用程序感到困惑。只需更改为无限制的CPU积分,即可恢复正常。