Apache进程数需按MPM模式区分:prefork模式用ps -ef | grep httpd/apache2 | wc -l查子进程数;worker/event模式用pstree -p | grep httpd或ps -T -C httpd | wc -l查线程总数,并通过ps aux区分root主进程与www-data/apache子进程。

查看 Apache 进程,关键在于区分运行模式(prefork / worker / event)和操作系统环境(Ubuntu/CentOS),再选用对应命令精准定位主进程、子进程或线程数量。
按运行模式查进程数
Apache 不同 MPM 模式下,资源单位不同:prefork 是多进程,worker/event 是多线程。混用命令容易误判并发能力。
-
prefork 模式(最常见):每个请求独占一个进程
执行 ps -ef | grep httpd | grep -v grep | wc -l(CentOS)或 ps -ef | grep apache2 | grep -v grep | wc -l(Ubuntu),结果即当前活跃子进程数 -
worker 或 event 模式:主线程 + 多个工作线程
推荐用 pstree -p | grep httpd 查看树形结构,或 ps -T -C httpd | wc -l(CentOS)统计线程总数(含主线程)
区分主进程与子进程
Apache 启动后有一个 root 权限的主进程(master),其余为普通用户权限的子进程/线程。只看总数不够,需识别角色:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 主进程 PID 通常最小,且 UID 为 root:ps aux | grep 'httpd\|apache2' | grep 'root.*main'
- 子进程 UID 一般是 apache 或 www-data:ps aux | grep 'httpd\|apache2' | grep -v 'root'
- 用 pgrep -f 'httpd\|apache2' 可一次性列出所有相关 PID,便于后续分析(如查内存、smaps)
结合状态模块确认活跃连接
进程数不等于真实并发请求数。有些进程可能空闲,有些正处理长连接。启用 mod_status 后访问 /server-status?auto 可看到:
- BusyServers:正在处理请求的子进程数
- IdleServers:空闲待命的子进程数
- Total Accesses 和 CPULoad:辅助判断负载趋势
快速验证服务是否真在运行
避免被残留进程干扰,应交叉验证:
- 查服务状态:systemctl is-active httpd(CentOS)或 systemctl is-active apache2(Ubuntu)
- 查监听端口:sudo ss -tlnp | grep ':80\|:443',确认 httpd/apache2 是否真正绑定端口
- 查进程树:systemctl status httpd --no-pager 显示主进程 PID 和启动时间,比 ps 更权威

















