我使用的是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.
Laravel 4.2,发送请求到:
路由::get('/test',function(){echo"测试";});
结果:CPU 100%工作约40秒
Laravel 5.2(清洁安装),将请求发送到欢迎页面
结果:CPU使用率100%,持续20秒Phalcon(清洁安装):将请求发送到Hello世界页面
结果:CPU使用率为50%,持续2秒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文档获得更多信息