减少 Apache2 进程的数量

减少 Apache2 进程的数量

我发现有七个 (x7)apache2流程:

  PID TTY      STAT   TIME COMMAND

  770 ?        Ss     0:00 /usr/sbin/apache2 -k start
  773 ?        S      0:00 /usr/sbin/apache2 -k start
  774 ?        S      0:00 /usr/sbin/apache2 -k start
  775 ?        S      0:00 /usr/sbin/apache2 -k start
  776 ?        S      0:00 /usr/sbin/apache2 -k start
  777 ?        S      0:00 /usr/sbin/apache2 -k start
 1223 ?        S      0:00 /usr/sbin/apache2 -k start

我检查apache2.conf启动服务器最大客户数但它不在那里,所以我尝试通过编辑以下文件并将 3 的值设置为启动服务器参数并保持值 5最大客户数参数如下图:

$ sudo nano /etc/apache2/apache2.conf

...
StartServers 3
MaxClients 5
...

但仍然有并且始终有 7 个进程。知道如何将其减少到只有 3 个进程吗?

答案1

Apache 2.4 的工作进程是高度可配置的。您应该阅读 Apache 多处理模块的基本概念:

https://httpd.apache.org/docs/2.4/en/mpm.html

要调整参数,您必须阅读文档,其中对每个人都有详细解释:

https://httpd.apache.org/docs/2.4/de/mod/worker.html

为了限制进程总数,您可能可以使用服务器限制指令

/etc/apache2/mods-enabled/mpm_.conf

ServerLimit 3
StartServers 3
MinSpareServers 3
MaxConnectionsPerChild 250

请记住,强制减少工作人员数量可能会导致意外行为或减慢应用程序速度。

例如,如果您使用此设置运行 PHP Webfrontend,则 Apache 一次只能处理 3 个请求。所以你应该考虑一下你想要达到什么效果,以及是否真的有必要限制进程数量。

当然总会有一个父进程n工人子进程:

root     15873  0.0  0.1  73636  2728 ?        Ss   17:25   0:00 /usr/sbin/apache2 -k start
www-data 15876  0.0  0.1 418104  2476 ?        Sl   17:25   0:00  \_ /usr/sbin/apache2 -k start
www-data 15877  0.0  0.1 418104  2480 ?        Sl   17:25   0:00  \_ /usr/sbin/apache2 -k start
www-data 15878  0.0  0.1 418104  2484 ?        Sl   17:25   0:00  \_ /usr/sbin/apache2 -k start

相关内容