Laravel高CPU使用率-PHP-FPM


Laravel High CPU usage - PHP-FPM

我使用的是Laravel 4.2,当我浏览页面时,PHP-FPM峰值达到10-20%。

我在两个环境中检查了它:
A:
Nginx平衡器-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,发送请求到:

    路由::get('/test',function(){echo"测试";});

结果:CPU 100%工作约40秒

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

  2. Phalcon(清洁安装):将请求发送到Hello世界页面
    结果:CPU使用率为50%,持续2秒

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

    • 两种环境的结果相同
    • 禁用调试模式、数据库连接、更改配置等。
      PHP fpm配置:
      pm.max_children=9
      pm.start_servers=3
      pm.min_pare_servers=2
      pm.max_spare_servers=4

我知道拉拉维尔应该慢一点,但我怀疑差距应该有那么大?我在谷歌上搜索了几个小时,遇到了一些与我有相同问题但没有任何解决方案的帖子:

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

我在这里错过了什么
提前谢谢。

这听起来可能很明显,但请确保您的PHP安装包含OPCache扩展php-opcache。这对我帮助很大。

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

您可以从PHP OPCache文档获得更多信息