使用Blackfire分析识别Laravel应用程序的瓶颈

问题描述:

我试图让我的TTFB降至200毫秒以下。目前它已超过600毫秒。使用Blackfire分析识别Laravel应用程序的瓶颈

我的应用程序使用Laravel和AsgardCMS。我已经实现了非常少的自定义代码,并且数据库有28个表,总计少于100个记录。

我已经安装了Redis缓存(并开启缓存),并运行php artisan optimize

我也在用Apache通过Engintron使用Nginx。

基本上我尽量消除瓶颈,尽可能多!

但是,在安装Blackfire后,它报告Composer\Autoload\includeFile自己总共需要250ms(超过299次调用)。

Illuminate\Container\Container::build也被称为141次,总时间49ms。

我接受自动加载器被多次调用是正常的,但是如果真的需要250ms吗?

我的VPS有2个内核(Intel Xeon CPU)和4GB RAM(专用)。我刚刚从1核心和2GB内存升级,但几乎没有发现任何差异。磁盘是SSD。在WHM/cPanel上运行。服务器上大约有10个站点,但它们都不是特别高的流量,而且这些测试已经在最安静的时期运行。

在最后一次测试,Blackfire报道: -

Time: 696ms 
I/O Wait: 149ms 
CPU time: 548ms 
SQL Queries: 2.38ms 

任何想法?漂亮请...

+0

*我也使用Nginx的和Apache *很多人在其他技术可能会使用nginx作为**反向代理* *但我只是没有得到它,当涉及到PHP,是不是够了?为什么你需要apache呢? – teeyo

+1

您是否启用了** opcache **? OPcache通过将预编译的脚本字节码存储在共享内存中来提高PHP性能,从而消除了在每个请求中加载和分析脚本的需求。它对我的Drupal网站有很大的帮助,当我查看统计数据时,它非常棒! – teeyo

+0

@teeyo - 是使用nginx作为反向代理,仅仅是因为我想看看它是否产生任何性能提升,并且由于服务器使用WHM/cPanel我不想完全摆脱Apache ...当然,如果可能的话)。 – pavsid

尽管我没有深究是否存在服务器或PHP代码的问题,或者应用程序的“缓慢”是否预期,但以下对这个主题的评论以及由@teeyo提供的链接评论(https://laracasts.com/discuss/channels/laravel/adventures-in-increasing-laravel-performance)我决定测试PHP7

WHM让这个帐户只启用PHP7很容易,所以这非常简单。另一个测试,出来约400毫秒 - 真棒,但仍不低于200毫秒。

所以,我决定尝试并启用PHP-FPM,这也是通过南国一sinch ...

,F ***以外ME!现在我正在接近100ms!最后,如果我禁用Engintron,我刮另一个10-20ms关闭! (虽然可能不建议高流量的网站,因为它不会受益于nginx逆向代理)。

无论如何,感谢所有您的输入...希望这可以帮助别人......