![这么多 Apache 实例正常吗?](https://linux22.com/image/523645/%E8%BF%99%E4%B9%88%E5%A4%9A%20Apache%20%E5%AE%9E%E4%BE%8B%E6%AD%A3%E5%B8%B8%E5%90%97%EF%BC%9F.png)
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
有 11 个独立实例apache2
!这正常吗?如果不正常,我该怎么办?
答案1
是的。Apache 的工作方式类似于传统的 unix 守护进程,其作用如下:
- 主程序等待传入请求(阻塞在套接字上)
- 收到请求后,使用 fork() 系统调用,导致主进程克隆自身
- 然后主进程再次等待另一个请求
- 分叉副本继续处理请求,然后终止
分叉确实会耗费时间,因此 Apache 会预先分叉多个实例以处理多个请求。这完全可以通过 /etc/apache2.conf 进行配置。我现在想不出确切的指令,但评论中可能对此进行了解释。
如果您希望处理突然爆发的并发 HTTP 请求,那么让大量实例待命以处理这些请求对您大有裨益。但这样做的代价是会消耗更多内存。
答案2
如果您希望降低这个数字,请使用 MinSpareServers 和 MaxSpareServers 指令: