这么多Apache实例正常吗?

Iai*_*der 5 ubuntu-8.04 multiple-instances pgrep apache-2.2

我们2.2.8-1ubuntu0.15在我们的 VPS 实例上运行 Apache 版本Ubuntu 8.04.4 LTS \n \l,正如我通过问这个问题确定的那样。

当我发出时pgrep apache2,我得到以下信息:

 2691
24517
25330
25669
25672
25795
25796
25809
25825
26401
26402
Run Code Online (Sandbox Code Playgroud)

这是 11 个单独的实例apache2!这是正常的吗?如果没有,我该怎么办?

小智 5

是的。Apache 的工作方式类似于传统的 unix 守护进程,其中:

  • 主程序等待传入请求(套接字上的块)
  • 收到请求后,使用fork()系统调用,导致主进程克隆自身
  • 然后主进程再次等待另一个请求
  • 分叉副本继续处理请求,并终止

分叉确实消耗时间,因此 Apache 预分叉多个实例以预期处理多个请求。这完全可以通过 /etc/apache2.conf 进行配置。我现在想不出确切的指令,但可能在评论中进行了解释。

如果您希望处理突发的并发 HTTP 请求,那么拥有大量实例等待处理它们对您有好处。权衡是这会消耗更多内存。