apache并发能力取决于mpm模式,需先用httpd -l或httpd -v | grep -i mpm确认当前模式,再启用对应模块(如mod_mpm_event.so)、禁用冲突模块,最后在httpd-mpm.conf中按模式配置参数,如event模式设maxrequestworkers、threadsperchild等,并通过httpd -t验证后重启生效。

确认当前 MPM 模式
执行命令查看已加载的模块:
CentOS/RHEL:httpd -l
Ubuntu/Debian:apache2 -l
输出中看到 prefork.c 表示 prefork 模式,worker.c 或 event.c 则对应 worker/event 模式。
也可运行 httpd -V | grep -i mpm 查看编译时默认 MPM 和实际运行模式。
启用并指定 MPM 模块
MPM 模块默认不全启用,需手动开启目标模块、禁用其他冲突模块。打开 httpd.conf,找到 LoadModule 区域,确保只启用一个 MPM:
- 要使用 event(推荐 Apache 2.4+ 高并发场景):
LoadModule mpm_event_module modules/mod_mpm_event.so
注释掉mpm_prefork_module和mpm_worker_module - 若依赖旧版 mod_php(非线程安全),只能选 prefork:
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
并关闭其余两个 MPM 模块
注意:不能同时启用多个 MPM,否则启动失败。
启用 MPM 配置文件并修改参数
默认 MPM 参数不在 httpd.conf 中,而放在独立配置文件里(如 conf/extra/httpd-mpm.conf)。需先在 httpd.conf 中取消注释:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
Include conf/extra/httpd-mpm.conf
然后编辑该文件,根据启用的 MPM 修改对应 <ifmodule ...></ifmodule> 块:
-
event 模式(高并发 + 长连接友好):
<ifmodule mpm_event_module><br> StartServers 3<br> MinSpareThreads 75<br> MaxSpareThreads 250<br> ThreadsPerChild 25<br> MaxRequestWorkers 1000<br> MaxConnectionsPerChild 0<br></ifmodule>
✅MaxRequestWorkers是核心上限值(≈ 子进程数 × 线程数),按服务器内存估算:例如单进程均耗 30MB,16GB 内存可设为 ~500;超过需同步调大ServerLimit -
prefork 模式(兼容 mod_php):
<ifmodule mpm_prefork_module><br> StartServers 5<br> MinSpareServers 5<br> MaxSpareServers 10<br> MaxRequestWorkers 256<br> MaxConnectionsPerChild 10000<br></ifmodule>
⚠️MaxRequestWorkers替代了旧版MaxClients,若需超 256,必须加ServerLimit 512(且ServerLimit要 ≥MaxRequestWorkers)
验证与生效
改完配置后务必检查语法并重启:
httpd -t(或 apache2ctl configtest)→ 返回 Syntax OK 才安全systemctl restart httpd(或 apachectl restart)
重启后再次运行 httpd -l 和 ps aux | grep httpd,确认模块已加载、进程/线程数符合预期。可用 ab -n 1000 -c 200 http://localhost/ 简单压测观察响应稳定性。










