Laravel 到底能慢到什么程度?

2018-01-04 19:25:46 +08:00
 Tairy

上半年把公司的项目用 Laravel 重构了一把,下半年流量大了之后线上 CPU 狂报警,网上都说 Laravel 慢的不行,求问有经验的大神,Larvael 到底能慢到什么程度,心里好有点谱。

感觉又要重构了,😭😭😭!

29393 次点击
所在节点    PHP
91 条回复
Xrong
2018-01-04 21:22:26 +08:00
看看卡在哪个 SQL 上吧
Fishdrowned
2018-01-04 21:23:19 +08:00
Laravel 慢不是什么地方出瓶颈了,而是 Laravel 这个框架本身就是瓶颈。
优化点:
1. 重构 router,特别是你的路由比较多的时候,foreach 之后还要正则就是找不痛快;
2. 用 swoole 服务模式把需要重复初始化的地方抹平,只初始化一次,不过这个会进入普通 php 程序员不熟悉的领域,而且大部分业务逻辑以及第三方组件需要修改以适应服务模式;
3. 放弃 Laravel
guoer
2018-01-04 21:23:27 +08:00
单台 3k 吗? 先多开几台 php 机器看看。
xhprof 有工具可以生成图的,多搜索下。
这是个成长的好机会。好好把握
lifeintools
2018-01-04 21:39:16 +08:00
羡慕这种机会。。
Veigar
2018-01-04 22:05:00 +08:00
Go 最慢的 beego + redis 2 核 2G 垃圾云 单台 7k
darluc
2018-01-04 22:44:15 +08:00
@Fishdrowned 这个想法不错 swoole + phalcon
dawniii
2018-01-04 22:48:40 +08:00
dawniii
2018-01-04 22:57:21 +08:00
zqhong
2018-01-04 23:35:52 +08:00
#42 同意 Fishdrowned 的优化建议,Laravel + swoole。

可参考: https://github.com/huang-yi/laravel-swoole-http
cjyang1128
2018-01-04 23:52:35 +08:00
先看懂 xhprof 再说吧。。
957204459
2018-01-05 09:16:23 +08:00
话说真没感觉到慢
lalala121
2018-01-05 09:17:31 +08:00
symfony 在向你招手
TypeErrorNone
2018-01-05 09:38:52 +08:00
你机器的配置是什么?
wwek
2018-01-05 09:57:01 +08:00
@dawniii 鸟哥语录没毛病
freeminder
2018-01-05 09:59:24 +08:00
之前的项目是 yaf 的路由+laravel 的 orm,离线部分利用了 laravel 的 schedule 和 artisan,之后看性能 laravel 主要在 ORM 的部分了,序列化真的要调用好多层
scofieldpeng
2018-01-05 10:20:02 +08:00
话说前几天我司外包组的接了一个维护投票的活,上家坑爹给人家在千万云上买了 8 核 16g 内存,这就算了,带宽直接撸了 200 兆,php 写的太差,几千就把 php 进程干掉了,nginx 加缓存,php 跑了多个进程,依然扛不过刷票的那帮土匪,然后,我用 golang 把核心重撸了一个,从此天下太平,所以楼主,要不换下语言? 2333
jhdxr
2018-01-05 10:20:07 +08:00
laravel 性能的确不是那么好,毕竟遍地匿名函数,但测也不是你这么测的,laravel 是一个默认开启 session 的框架,而其他框架或者原生你压测是没有的,这个不用说在网上,在 V2EX 上也已经有无数人测过然后被指正过了

然后你这个帖子通篇没有任何信息量。CPU 狂报警,那什么程序在那吃 CPU 你看了吗?如果看下来是 MySQL 占用高,那多半是 SQL 没写好(哪怕用了 ORM,最终也会生成 SQL );如果是 PHP-FPM,那的确就是得优化 PHP 代码了(然而你并看不懂 xhprof _(:з」∠)_)

总觉得 PHP 日常被黑,面向 google 编程你早晚遇到瓶颈,只是来的或早或晚而已。
wekw
2018-01-05 10:20:20 +08:00
CPU 报警真是奇怪。。。。一般都是数据库优化不到位,内存爆炸,响应时间大幅增加。
Tairy
2018-01-05 10:26:16 +08:00
@jhdxr 真的不是黑 PHP,就是提出个疑问而已,我已经在抓 xhprof 研究了,占用 CPU 的就是 fpm,MySQL 是独立的主机。
kkeiko
2018-01-05 10:31:54 +08:00
laravel 本身是不错的框架,和其他框架比,慢也是事实,但同时开发更优雅,解耦更强也是事实。根本上还是要看使用者要的是什么,但有一点可以肯定的是,从来没有万能的框架,laravel 也是如此,技术架构是要不断迭代更新来适应业务的。而不能说 laravel 在这个时间节点不适应你的业务就是不好的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/420124

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX