我正在运行 Apache 2.2。我有 10 个apache
进程正在运行,这对我有限的资源造成了负担。
我已经搜索了控制产生多少进程的配置选项,但我可以使用一些帮助。是MaxRequestWorkers
吗?是ThreadsPerChild
吗?还有什么?(似乎都没有在我的配置文件中设置。)
这是我的一个过程的示例apache
:
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
5 S 33 26099 25513 0 80 0 - 56951 poll_s ? 1:42 /usr/sbin/apache2 -k start
编辑:
对不起。我正在运行 apache 2.2,而不是 2.4。
启用模组列表:
lrwxrwxrwx 1 root root 28 Sep 5 2014 alias.conf -> ../mods-available/alias.conf
lrwxrwxrwx 1 root root 28 Sep 5 2014 alias.load -> ../mods-available/alias.load
lrwxrwxrwx 1 root root 33 Sep 5 2014 auth_basic.load -> ../mods-available/auth_basic.load
lrwxrwxrwx 1 root root 33 Sep 5 2014 authn_file.load -> ../mods-available/authn_file.load
lrwxrwxrwx 1 root root 36 Sep 5 2014 authz_default.load -> ../mods-available/authz_default.load
lrwxrwxrwx 1 root root 38 Sep 5 2014 authz_groupfile.load -> ../mods-available/authz_groupfile.load
lrwxrwxrwx 1 root root 33 Sep 5 2014 authz_host.load -> ../mods-available/authz_host.load
lrwxrwxrwx 1 root root 33 Sep 5 2014 authz_user.load -> ../mods-available/authz_user.load
lrwxrwxrwx 1 root root 32 Sep 5 2014 autoindex.conf -> ../mods-available/autoindex.conf
lrwxrwxrwx 1 root root 32 Sep 5 2014 autoindex.load -> ../mods-available/autoindex.load
lrwxrwxrwx 1 root root 26 Sep 5 2014 cgi.load -> ../mods-available/cgi.load
lrwxrwxrwx 1 root root 30 Sep 5 2014 deflate.conf -> ../mods-available/deflate.conf
lrwxrwxrwx 1 root root 30 Sep 5 2014 deflate.load -> ../mods-available/deflate.load
lrwxrwxrwx 1 root root 26 Sep 5 2014 dir.conf -> ../mods-available/dir.conf
lrwxrwxrwx 1 root root 26 Sep 5 2014 dir.load -> ../mods-available/dir.load
lrwxrwxrwx 1 root root 26 Sep 5 2014 env.load -> ../mods-available/env.load
lrwxrwxrwx 1 root root 27 Sep 5 2014 mime.conf -> ../mods-available/mime.conf
lrwxrwxrwx 1 root root 27 Sep 5 2014 mime.load -> ../mods-available/mime.load
lrwxrwxrwx 1 root root 34 Sep 5 2014 negotiation.conf -> ../mods-available/negotiation.conf
lrwxrwxrwx 1 root root 34 Sep 5 2014 negotiation.load -> ../mods-available/negotiation.load
lrwxrwxrwx 1 root root 32 Sep 12 2014 passenger.conf -> ../mods-available/passenger.conf
lrwxrwxrwx 1 root root 32 Sep 12 2014 passenger.load -> ../mods-available/passenger.load
lrwxrwxrwx 1 root root 27 Sep 5 2014 php5.conf -> ../mods-available/php5.conf
lrwxrwxrwx 1 root root 27 Sep 5 2014 php5.load -> ../mods-available/php5.load
lrwxrwxrwx 1 root root 33 Sep 5 2014 reqtimeout.conf -> ../mods-available/reqtimeout.conf
lrwxrwxrwx 1 root root 33 Sep 5 2014 reqtimeout.load -> ../mods-available/reqtimeout.load
lrwxrwxrwx 1 root root 40 Sep 14 2014 rewrite.load -> /etc/apache2/mods-available/rewrite.load
lrwxrwxrwx 1 root root 31 Sep 5 2014 setenvif.conf -> ../mods-available/setenvif.conf
lrwxrwxrwx 1 root root 31 Sep 5 2014 setenvif.load -> ../mods-available/setenvif.load
lrwxrwxrwx 1 root root 36 Jun 7 2015 ssl.conf -> /etc/apache2/mods-available/ssl.conf
lrwxrwxrwx 1 root root 36 Jun 7 2015 ssl.load -> /etc/apache2/mods-available/ssl.load
lrwxrwxrwx 1 root root 29 Sep 5 2014 status.conf -> ../mods-available/status.conf
lrwxrwxrwx 1 root root 29 Sep 5 2014 status.load -> ../mods-available/status.load
这取决于您的 apache 使用的是哪个 mpm 模块(mpm_worker/mpm_prefork/mpm_event)。如果您不确定,请发布其输出,
cat /etc/apache2/mods-enabled/mpm*.conf
其中显示StartServers/MinSpareServers/MaxSpareServers、MaxRequestWorkers以及ThreadsPerChild和ThreadLimit的数量。如果您的 linux 发行版中的文件名应该不同,则发布您启用的模块的输出ls -l /etc/apache2/mods-enabled
。它应该看起来像这样并解释自己(Debian,Apache2.4):
请参阅减少 Apache 内存使用和平均进程大小值
文档说(如上面的链接中所述):
例子:
从上面的链接页面运行很酷的脚本给了我:
注意:“平均进程大小”是运行时的“RES”值
top
。要确定
MaxClients
(又名MaxRequestWorkers
),我需要计算:通过运行以下命令检查您的 apache 正在使用的 mpm 模块 (mpm_worker/mpm_prefork/mpm_event):httpd -V
使用该信息,访问 apache 站点(例如 prefork 或 worker 或事件 https://httpd.apache.org/docs/2.4/mod/prefork.html 或 worker.html 或 event.html)以查看所需的配置。我正在使用具有以下设置的 prefork:
在哪里