10台服务器撑不起来一个高并发的Laravel项目

运行环境(华为云)

CentOS7.2(Arm架构) + Nginx1.2 + PHP7.4 + RDS(Mysql5.7) + Laravel 8.5

服务器架构

负载均衡 + 服务器(16核32G/8核64G) x 10 + RDS(16核32G) x 4

并发情况

并发用户约500,负载均衡端并发连接数3000左右

并发场景

因项目特殊原因,用户会在早上9点-11点集中访问,故而产生高并发。

症状表现(按时间顺序)
1、卡,页面无响应,偶尔打开,耗时40s左右;
2、检查各项监控指标,服务器内存、CPU、平均负载都处于低位,带宽50M也没有跑满,RDS数据库CPU低位,内存80%左右(无波动,无访问量,重启后也是80%左右);
3、尝试在服务器上安装一个Wordpress程序,架构依然是负载均衡+RDS,当高峰卡崩的时候WP访问正常;
4、扔一个phpinfo的php上去,访问正常;
5、在项目某页面埋点dump耗时,卡崩时访问埋点页面,刚进入index.php时1s,页面控制器方法进入时也几乎是1s,方法种模型查询后的时间是6s;

php-fpm配置

pm = dynamic
pm.max_children = 800
pm.start_servers = 200
pm.min_spare_servers = 50
pm.max_spare_servers = 750
request_terminate_timeout = 10

这里面的参数值分别尝试修改过多次,症状没有明显变化。

猜测

现在给人的感觉就像是请求进入Laravel后排队了;
因为项目卡崩的时候nginx正常,php-fpm正常,CPU内存也都正常;

不知道怎么处理了,请求社区各位大神帮忙分析。

正在努力学习的小逗比 [ dobeen.net ]
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

opcache开了吗?也可以结合swoole运行

1年前 评论
TomHou (作者) 1年前
Mutoulee (楼主) 1年前
讨论数量: 26

是否测试过纯接口不输出视图的情况

1年前 评论
win27149 (作者) 1年前
Mutoulee (楼主) 1年前
win27149 (作者) 1年前
Mutoulee (楼主) 1年前
win27149 (作者) 1年前
Mutoulee (楼主) 1年前

追踪下真实场景的 mysql 语句吧,像是有慢查询了。

1年前 评论
Mutoulee (楼主) 1年前
巴啦啦

你一个页面就6秒,先优化这个,再看其他问题吧

1年前
Cooper

这种大概率就是 io 问题,看下程序链接数据库的地方,连接数是否够用。 程序没缓存吗?

1年前 评论
Mutoulee (楼主) 1年前

opcache开了吗?也可以结合swoole运行

1年前 评论
TomHou (作者) 1年前
Mutoulee (楼主) 1年前

opcache开了 然后在看看是否有慢查询 不能进入页面都1s呀 看看是不是有写入io

1年前

服务器 (16 核 32G/8 核 64G) x 10
拆成 4 核 的CPU吧

php 是解释型语言, 你的核心再多, 瓶颈也是磁盘 io, 除非常驻内存的,如 swoole。

页面打开要 6s、1s 时间太长了,试着优化下查询,

如果打开页面 1s, 16 核(16fpm) * 10 = 160 qps, 太慢了

1年前 评论
Mutoulee (楼主) 1年前
kis龍 (作者) 1年前

你单页面都6s了 得先优化这个 单接口响应时间快了,整体服务吞吐才能搞

1年前

页面加上cdn, 服务端使用 Skyworking 做下追踪,看具体忙在哪了

1年前
leo

打开 PHP 的 slowlog,先看看慢在哪再看怎么优化

1年前

是不是数据库事务等待锁一直卡着,试试用不同数据进行压测,也就是每个请求使用的是不同数据,而不是同一套数据压测同一个接口试试

1年前
Mumujin

服务器 (16 核 32G/8 核 64G) x 10 + RDS (16 核 32G) x 4 这个配置的服务器一台可以抗1000的并发了。

1年前

不访问,rds内存都80%?干嘛了

1年前
陈先生

有没有考虑换个 IDC?

1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!