thinkphp6稳定支撑10000并发需静态fpm模式、实测rss设pm.max_children、禁用opcache时间验证、缓存切redis+swoole table、nginx用unix socket及内核调优。

ThinkPHP6 要稳定支撑 10000 并发,单靠框架优化远远不够,核心瓶颈在 PHP-FPM 层。这不是调几个数字的事,而是要让进程模型、内存分配、缓存协同和系统资源严丝合缝。下面给出可落地的完整方法,不讲虚概念,只列关键动作。
选对进程模式:高并发下必须用 static
dynamic 模式在万级并发下会因频繁 fork/spawn 导致 CPU 抖动、响应延迟跳变,实测平均多耗 120ms+;ondemand 更不适合。static 模式消除进程创建开销,响应更稳、更可预测。
- 配置 pm = static,其余 pm.*_servers 参数全部删除或注释(它们在 static 下无效)
-
pm.max_children 必须基于实测 RSS 计算:先压测 10 分钟,执行
ps aux --sort=-%mem | grep 'php-fpm:' | head -3,取 RSS 稳定值(如 98MB) - 可用内存 = 总内存 − OS(留 2GB)− MySQL(看 ps)− Redis(若同机)− Nginx(约 200MB)。例如 32GB 服务器,实测单进程 98MB,可用约 24GB → 24000 ÷ 98 ≈ 244 → 设为 240
- 禁用 pm.process_idle_timeout(仅 dynamic 生效,但为防误配,明确设为 0 或注释掉)
OPcache 必须关闭时间验证
默认 opcache.validate_timestamps = 1 会让每次请求都 stat 所有 PHP 文件,万并发下瞬间打爆文件系统 inode cache,I/O 等待飙升。ThinkPHP 的路由、模板、配置编译高度依赖 OPcache,必须关验证、靠手动刷新。
- opcache.validate_timestamps = 0
- opcache.revalidate_freq = 0(即使上一项为 0,此项也必须显式设为 0)
- opcache.max_accelerated_files = 65536(ThinkPHP 5.1+ 类自动加载易超默认 2000)
- 启用 opcache.file_cache = /tmp/opcache,FPM 重启后秒级热加载,避免冷启抖动
- 上线更新代码后,调用
opcache_reset()或发kill -USR2 $(cat /var/run/php/php-fpm.pid)
ThinkPHP 缓存与连接必须绕过文件锁和连接争抢
默认 cache.type = file 在万并发下产生海量小文件 flock 锁冲突;原生 PDO 无连接池,Too many connections 是高频报错。
- 缓存驱动全切到 Redis + Swoole Table:Swoole Table 做本地高频读(如计数、开关),Redis 做跨进程共享(如 session、路由缓存)
- 数据库配置中加 'params' => [PDO::ATTR_PERSISTENT => true],并调大 MySQL
wait_timeout至 300+ - 禁用 Session 文件驱动:改用
cache或redis驱动,避免session_start()全局文件锁 - 关闭调试:APP_DEBUG = false,否则 trace 和日志写入直接拖垮吞吐
- 路由必须静态化:
php think optimize:route,避免每次请求解析规则
Nginx 与系统级协同调优
FPM 是桥梁,Nginx 是前台,内核是地基,三者不匹配,FPM 再优也白搭。
- Nginx 使用 Unix socket 代替 TCP:在
www.conf中设listen = /run/php/php-fpm.sock,Nginx 的fastcgi_pass unix:/run/php/php-fpm.sock; - Nginx 配置:
worker_processes auto;,worker_connections 16384;,multi_accept on;,keepalive_timeout 30; - 内核参数调优(
/etc/sysctl.conf):net.core.somaxconn = 65535,net.ipv4.tcp_max_syn_backlog = 65535,fs.file-max = 2097152 - PHP-FPM 进程用户需提高文件句柄限制:在 pool 配置中加
rlimit_files = 65535
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











