服务器

PHP并发上限排查:max_children不是越大越好

资料核对与更新:2026-10-27 · 阅读约2分钟

PHP 请求排队时,增加进程数可能导致内存更紧张。本文结合慢请求、进程内存和资源预算说明排查顺序。

服务器机柜与数据中心环境
服务器机柜与数据中心环境;作者:Last.fm from London, UK;许可:CC BY-SA 2.0。主题示意配图,非本文操作截图。 图片来源 · 许可说明

PHP-FPM 日志出现达到 max_children 的提示,说明进程池并发容量碰到了上限,但不代表把数字翻倍就是正确修复。慢数据库、外部接口等待和内存不足都可能让进程长期被占用。

先找占用原因

对齐出问题时的请求量、慢日志和系统资源,确认是流量突增还是单个请求变慢。检查数据库等待、远程请求超时和异常长任务;把耗时写作任务放进后台队列,通常比让网页请求一直等待更合理。

根据内存安排容量

统计典型进程在业务负载下的内存,并为系统、数据库和其他站点留出空间。可用作初步估算的关系是进程池预算除以单进程高负载内存,但共享内存等因素会影响准确性,不能拿一次空闲采样直接定值。

调整后观察排队

核对进程管理模式,逐步调整并进行受控压力测试。观察响应时间、队列长度、CPU、交换活动和错误比例,确认新进程确实提高吞吐而非把机器推入持续换页。保留原配置便于回退。

验收应包括正常峰值和依赖变慢两类场景。多站点共用服务器时,还要合并计算全部进程池预算。限制单站并发是资源隔离的一部分,不能只按机器总内存给每个站点重复分配。

参考资料

资料核对:2026年10月27日。本文为文档综合与操作建议,未宣称完成本站实测。

PHP-FPM 配置手册

Linux 虚拟内存参数

本文新增价值
围绕PHP并发上限排查整理适用边界、逐步操作与验收方法,区分错误现象和真正原因,避免只给出配置值而缺少验证步骤。