我無法找到 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"
PS:我也在超級用戶上發布了它。我不確定哪一個是正確的地方。
答案1
- 你永遠不會找到 MaxSpareThreads 因為 prefork 不是線程化的,所以它應該是
**MaxSpareServers**
- 不是從命令列,你需要“cat”你的主設定文件,或者您的發行版將它們放置在何處(httpd.conf 或 apache.conf 或 mpm.conf?)
- 如果你有模組資訊你可以 ”捲曲「您的伺服器獲取其資訊並從中解析/讀取設置,這是您可能會找到的從命令列獲取該資訊最接近的東西。在那裡您將看到一個名為模組名稱: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
所以我查閱了有關的部分預叉 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>```