PHP并发上限排查:max_children不是越大越好
PHP 请求排队时,增加进程数可能导致内存更紧张。本文结合慢请求、进程内存和资源预算说明排查顺序。

PHP-FPM 日志出现达到 max_children 的提示,说明进程池并发容量碰到了上限,但不代表把数字翻倍就是正确修复。慢数据库、外部接口等待和内存不足都可能让进程长期被占用。
先找占用原因
对齐出问题时的请求量、慢日志和系统资源,确认是流量突增还是单个请求变慢。检查数据库等待、远程请求超时和异常长任务;把耗时写作任务放进后台队列,通常比让网页请求一直等待更合理。
根据内存安排容量
统计典型进程在业务负载下的内存,并为系统、数据库和其他站点留出空间。可用作初步估算的关系是进程池预算除以单进程高负载内存,但共享内存等因素会影响准确性,不能拿一次空闲采样直接定值。
调整后观察排队
核对进程管理模式,逐步调整并进行受控压力测试。观察响应时间、队列长度、CPU、交换活动和错误比例,确认新进程确实提高吞吐而非把机器推入持续换页。保留原配置便于回退。
验收应包括正常峰值和依赖变慢两类场景。多站点共用服务器时,还要合并计算全部进程池预算。限制单站并发是资源隔离的一部分,不能只按机器总内存给每个站点重复分配。
参考资料
资料核对:2026年10月27日。本文为文档综合与操作建议,未宣称完成本站实测。
本文新增价值
围绕PHP并发上限排查整理适用边界、逐步操作与验收方法,区分错误现象和真正原因,避免只给出配置值而缺少验证步骤。
围绕PHP并发上限排查整理适用边界、逐步操作与验收方法,区分错误现象和真正原因,避免只给出配置值而缺少验证步骤。