我有一个使用 ubuntu 9.10、apache2、mysql5 和 php5 的 LAMP 服务器。
当我通过 shell 以 root 身份登录时,我运行“ps aux”命令并看到类似以下内容
www-data 3151 0.1 4.3 220024 31032 ? S 12:22 0:00 /usr/sbin/apache2 -k start
www-data 3153 0.2 3.6 214776 26020 ? S 12:22 0:01 /usr/sbin/apache2 -k start
www-data 3162 0.3 5.1 225060 36920 ? S 12:26 0:01 /usr/sbin/apache2 -k start
www-data 3163 0.1 4.1 218872 29664 ? S 12:26 0:00 /usr/sbin/apache2 -k start
我怎么会看到多行 www-data?每条线是否代表我网站上的实际用户?
我有时会遇到内存问题,所以我试图确定这些 www-data 统计数据是否相关。
默认情况下,大多数 Linux 发行版上的 Apache 使用预分叉工作模块。这会产生多个进程,每个进程都处理一些请求。
Apache 保持许多进程准备就绪并等待减少分叉新进程的延迟/开销 - 这些是您在 ps 中看到的额外行。
您看到的流程不会直接将 1:1 映射到用户/请求。
http://httpd.apache.org/docs/2.2/mod/prefork.html更详细地介绍了这一点。
要检查您在 Ubuntu/Debian 上使用的工作模块,请运行
apache2 -V
并查找 APACHE_MPM_DIR 行。或者运行dpkg -l | grep apache
- 每个 MPM 都是不同的包。Apache 运行多个进程。有关更多详细信息,请阅读http://httpd.apache.org/docs/2.2/mpm.html