我正在使用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.
Laravel 4.2,将请求发送到:
Route :: get('/ test',function(){ 回声“测试”; });
结果:100%的CPU大约需要40秒。
Laravel 5.2(干净安装),将请求发送到欢迎页面 结果:CPU使用率为100%,持续20秒。
Phalcon(干净安装):将请求发送到Hello world页面 结果:CPU使用率为50%,持续2秒。
Codeiginiter(rest api服务器,相同配置):将请求发送到从DB加载数据的页面(返回JSON)。
结果:CPU使用率为55%-60%,持续3秒。
我知道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
我在这里想念的是什么? 提前谢谢。
答案 0 :(得分:1)
这听起来似乎很简单,但请确保您的PHP安装中包含OPCache扩展php-opcache
。那对我很有帮助。
OPCache通过将预编译的脚本字节码存储在共享内存中来逐渐提高PHP性能,因此sot不会为每个请求重复加载/解析脚本。
获取更多信息答案 1 :(得分:0)
经过几周100%的CPU使用后,我将Laravel Forge队列转换为守护进程,现在我看到平均3%的CPU使用率(使用Forge轻松完成)。当然,这是相关的,假设您正在使用队列。
理由here。