Laravel高CPU使用率 - PHP-FPM

时间:2016-03-27 00:11:51

标签: php laravel laravel-4 laravel-5

我正在使用Laravel 4.2,当我浏览页面时,PHP-FPM达到10-20%。

我在2个环境中检查了它:

Nginx Balancer - 2个CPU,2GB。
PHP-FPM服务器 - 1个CPU,1GB MySQL服务器 - 2个CPU,2GB。

B:
1个CPU,1GB的linode上的简单VPS *所有服务器上的SSD。

现在,我开始使用JMeter更深入地调查它:
JMeter设置:

Number of Threads(users) - 100.
Ramp-Up Period(in seconds) -  1.
Loop Count - 5.
  1. Laravel 4.2,将请求发送到:

    Route :: get('/ test',function(){                 回声“测试”;             });

  2. 结果:1​​00%的CPU大约需要40秒。

    1. Laravel 5.2(干净安装),将请求发送到欢迎页面 结果:CPU使用率为100%,持续20秒。

    2. Phalcon(干净安装):将请求发送到Hello world页面 结果:CPU使用率为50%,持续2秒。

    3. Codeiginiter(rest api服务器,相同配置):将请求发送到从DB加载数据的页面(返回JSON)。
      结果:CPU使用率为55%-60%,持续3秒。

      • 两种环境都有相同的结果。
      • 禁用调试模式,数据库连接,更改配置等 PHP-fpm config:
        pm.max_children = 9
        pm.start_servers = 3
        pm.min_spare_servers = 2
        pm.max_spare_servers = 4
    4. 我知道Laravel应该慢一点,但我怀疑差异应该那么大? 我用谷歌搜索了几个小时,我遇到了一些与我的问题相同但没有任何解决方案的帖子:

      http://laravel.io/forum/09-25-2014-what-steps-should-i-take-to-reduce-laravels-high-cpu-load
      http://laravel.io/forum/08-12-2014-cpu-load-general-performance-question

      我在这里想念的是什么? 提前谢谢。

2 个答案:

答案 0 :(得分:1)

这听起来似乎很简单,但请确保您的PHP安装中包含OPCache扩展php-opcache。那对我很有帮助。

OPCache通过将预编译的脚本字节码存储在共享内存中来逐渐提高PHP性能,因此sot不会为每个请求重复加载/解析脚本。

您可以从PHP OPCache Documentation

获取更多信息

答案 1 :(得分:0)

经过几周100%的CPU使用后,我将Laravel Forge队列转换为守护进程,现在我看到平均3%的CPU使用率(使用Forge轻松完成)。当然,这是相关的,假设您正在使用队列。

理由here