宝塔环境下的laravel项目,接口响应都是几秒,有什么优化方案?
我有两个环境
第一个环境是开发环境,配置是2核4G、内存16G、5M带宽
第二个环境是正式环境,配置是4核8G,内存16G、5M带宽
两个的环境部署一模一样,都是用宝塔,以及nginx、php的配置都一样,这个我并没有去验证,刚来公司不久,技术经理给说的我也简单的看过一些phpfpm配置,以及nginx的配置,应该是一样,mysql都是云服务
问题:dev环境的接口几乎都是2秒左右、有时候会达到六七秒左右,正式环境很快,基本最大不超过1秒,以下是具体的问题细节,大家可以看看我的排查思路
排查思路
{"time":"2024-09-14 11:38:50.821171","request_id":"d6efa2e19c41d90a847ffb6e8ce8395b47272","total_time":"4.787","sapi":"CGI","app_id":"Laravel","env":"develop","level":"INFO","message":"当前请求:","context":{"controller":"BasicDataController","method":"listCategory","params":{"page":"1","page_size":"200","level_id":"405","cate_name":null},"mark":"","log":false}}
{"time":"2024-09-14 11:38:50.858988","request_id":"d6efa2e19c41d90a847ffb6e8ce8395b47272","total_time":"4.825","sapi":"CGI","app_id":"Laravel","env":"develop","level":"INFO","message":"SQL: select count(*) as aggregate from `category_list` where `level_id` = '405' [ Run Time: 35.9ms ]","context":[]}
{"time":"2024-09-14 11:38:50.867082","request_id":"d6efa2e19c41d90a847ffb6e8ce8395b47272","total_time":"4.833","sapi":"CGI","app_id":"Laravel","env":"develop","level":"INFO","message":"SQL: select * from `category_list` where `level_id` = '405' order by `id` desc limit 200 offset 0 [ Run Time: 7.65ms ]","context":[]}
{"time":"2024-09-14 11:38:50.875554","request_id":"d6efa2e19c41d90a847ffb6e8ce8395b47272","total_time":"4.841","sapi":"CGI","app_id":"Laravel","env":"develop","level":"INFO","message":"SQL: select `name`, `id` from `user` where `id` in ('400', '377', '379') [ Run Time: 6.71ms ]","context":[]}
total_time是断点时间,第一条是全局中间件中打印的路由请求日志,也就是说程序走到中间件已经执行了4.787,本次执行就只实行了日志中的sql查询,总共下来到最后一条日志的时候,跑了4.841秒,所以业务并不算复杂
这是页面上http请求时间,慢了很多都是七八秒,快了也就是一两秒,实际这些接口中并没有复杂的sql以及业务,数据库的数据最多的也就是几千
这个是宝塔的访问限制,也没有开启
php-fpm的线程数开的够大了
nginxCPU核心数设置也开启
Nginx进程的并发处也很大
PS:总之相关环境配置基本都是宝塔的默认的,但是就是接口响应时间慢,我得出得结论就是laravel加载的慢,特别是上面的日志,走到中间件都4秒多了,但是人家经理一句话就把我憋死了,正式环境为啥好着?是的,正式环境为啥好着,我自己也说不过去啊,2H4G跑一个网站不至于接口都是好几秒,实在没有思路了,chatgpt实在没法解决我的问题了,大家有没有什么其他思路给提供提供
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: