使用 worker MPM、StartServers 3 和 ThreadsPerChild 25,我们看到以下内容。
vagrant@precise64:$ sudo apachectl -v
Server version: Apache/2.2.22 (Ubuntu)
Server built: Feb 13 2012 01:51:56
vagrant@precise64:$ ps -aef | grep apache2
root 6147 1 0 01:41 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 6148 6147 0 01:41 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 6149 6147 0 01:41 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 6150 6147 0 01:41 ? 00:00:00 /usr/sbin/apache2 -k start
www-data 6151 6147 0 01:41 ? 00:00:00 /usr/sbin/apache2 -k start
vagrant@precise64:$ ps -aefL | grep apache2 | grep -v grep | awk '{print $2;}' | sort -
n | uniq -c
1 6147
1 6148
27 6149
27 6150
27 6151
很明显,pid 6147 是主进程,6149、6150、6151 是子进程。有人能解释一下 pid 6148 的用途吗?它不监听任何端口。
谢谢,萨米尔
答案1
也许是这样的:引用https://httpd.apache.org/docs/2.4/mod/worker.html:
除了一组活动子进程外,可能还有其他子进程正在终止,但其中至少有一个服务器线程仍在处理现有客户端连接。最多可能有 MaxRequestWorkers 个终止进程,但实际数量预计会小得多。