在 Linux 中,当我使用 PS 命令时,为什么我会看到多行 www-data?

在 Linux 中,当我使用 PS 命令时,为什么我会看到多行 www-data?

我有一个使用 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 统计数据是否相关。

答案1

大多数 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 都是一个不同的包。

答案2

Apache 运行多个进程。有关详细信息,请阅读http://httpd.apache.org/docs/2.2/mpm.html

相关内容