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

Joh*_*ohn 1 linux ps apache-2.2

我有一个 LAMP 服务器,它使用 ubuntu 9.10、apache2、mysql5 和 php5。

当我通过 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
Run Code Online (Sandbox Code Playgroud)

为什么我看到 www-data 的多行?每行是否代表我网站上的实际用户?

我有时会遇到内存问题,所以我试图确定这些 www-data 统计信息是否相关。

Jam*_*mes 6

默认情况下,大多数 Linux 发行版上的 Apache 使用 preforking 工作模块。这会产生多个进程,每个进程处理一些请求。

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