我无法找到 MPM Prefork 指令的值,例如最大请求工作者数/最大空闲线程数等等。有没有办法从命令行列出这些值?
-bash-4.2# httpd -v
Server version: Apache/2.4.23 (Amazon)
-bash-4.2# httpd -V
Server version: Apache/2.4.23 (Amazon)
Server built: Jul 29 2016 21:42:17
Server's Module Magic Number: 20120211:61
Server loaded: APR 1.5.1, APR-UTIL 1.4.1
Compiled using: APR 1.5.1, APR-UTIL 1.4.1
Architecture: 64-bit
Server MPM: prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/etc/httpd"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="/var/run/httpd/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
附言:我也在 SuperUser 上发过。我不确定哪个地方是正确的。
答案1
- 你永远找不到 MaxSpareThreads,因为 prefork 不是线程化的,所以应该是
**MaxSpareServers**
- 不是通过命令行,你需要“cat” 你的主要配置文件,或者您的发行版放置它们的任何位置(httpd.conf 或 apache.conf 或 mpm.conf?)
- 如果你有mod_info你可以 ”卷曲“您的服务器获取其信息并解析/读取其中的设置,这是您可能找到的最接近从命令行获取该信息的方法。在那里你会看到一个名为模块名称:prefork.c在一些文字之后,会出现这样一段内容:“当前配置:“这表明你的实际mpm 设置. (注意:mod_info 不应该在您的服务器上公开给任何访问它的人,因为它实际上泄露了您的整个配置)。
如果你需要更多关于如何配置 prefork 的信息,可以查看关于 mpm prefork 的官方文档
注意:无论如何我都不会推荐 prefork,如果是因为 mod_php,那就放弃它,转而使用 php-fpm。
答案2
作为此处建议的其他方法的替代方法,我发现我的 Apache 发行版有一个目录/usr/share/doc/httpd-2.4.54
,其中包含各种设置的模板和文件。其中,httpd-default.conf
声称它反映 Apache HTTP Server 的默认设置。
我还没有证实这一点,但怀疑此处的另一个文件也是如此httpd-mpm.conf
。此文件包含与 MPM 相关的设置部分,其前言如下:
# Only one of the below sections will be relevant on your
# installed httpd. Use "apachectl -l" to find out the
# active mpm.
显然-l
上面是一个打字错误;就我而言,我运行apachectl -V
,它告诉我:
Architecture: 64-bit
Server MPM: prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
因此我查阅了httpd-mpm.conf
有关prefork MPM, 其中包含:
# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxRequestWorkers: maximum number of server processes allowed to start
# MaxConnectionsPerChild: maximum number of connections a server process serves
# before terminating
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPerChild 0
</IfModule>```