Ich kann keine Werte für MPM Prefork-Direktiven finden wieMaxRequestWorkers/MaxSpareThreadsusw. in meiner Konfigurationsdatei. Gibt es eine Möglichkeit, diese Werte über die Befehlszeile aufzulisten?
-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: Ich habe es auch auf SuperUser gepostet. Ich bin nicht sicher, welches der richtige Ort ist.
Antwort1
- Sie werden MaxSpareThreads nie finden, da prefork nicht threaded ist, also sollte es
**MaxSpareServers**
- Nicht über die Kommandozeile, Sie müssen"cat" Ihre Hauptkonfigurationsdatei, oder wo auch immer Ihre Distribution sie platziert hat (httpd.conf oder apache.conf oder mpm.conf?)
- Wenn Sie habenmod_infodu kannst "Locke" Ihren Server nach seinen Informationen durchsuchen und die Einstellungen daraus analysieren/lesen, das ist wahrscheinlich die beste Möglichkeit, diese Informationen über die Befehlszeile abzurufen. Dort sehen Sie einen Abschnitt namensModulname: prefork.cund nach einem Text, der besagt:Aktuelle Konfiguration:", das Ihre tatsächlicheMPM-Einstellungen. (Hinweis: mod_info sollte auf Ihrem Server nicht öffentlich für jeden verfügbar sein, der darauf zugreift, da es praktisch Ihre gesamte Konfiguration preisgibt).
Sollten Sie weitere Informationen darüber benötigen, wie Prefork konfiguriert ist/sein sollte, finden Sie diese unteroffizielle Dokumente zu mpm prefork
Hinweis: Ich würde Prefork sowieso nicht empfehlen. Entscheiden Sie sich für Event, und wenn es an mod_php liegt, lassen Sie es zugunsten von php-fpm weg.
Antwort2
Als Alternative zu den anderen hier vorgeschlagenen Ansätzen habe ich festgestellt, dass meine Apache-Distribution ein Verzeichnis hat /usr/share/doc/httpd-2.4.54
, das Vorlagen und Dateien mit verschiedenen Einstellungen enthält. Darunter httpd-default.conf
behauptet es, dass esspiegelt die Standardeinstellungen für den Apache HTTP Server wider.
Ich habe es nicht bewiesen, vermute aber, dass dies auch für eine andere Datei gilt, die sich hier befindet httpd-mpm.conf
. Diese Datei enthält Abschnitte mit Einstellungen zu MPM mit dieser Präambel:
# Only one of the below sections will be relevant on your
# installed httpd. Use "apachectl -l" to find out the
# active mpm.
Oben liegt offenbar -l
ein Tippfehler vor. In meinem Fall führe ich aus apachectl -V
, was mir Folgendes anzeigt:
Architecture: 64-bit
Server MPM: prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
Ich konsultiere also den Abschnitt httpd-mpm.conf
überMPM vorab aufteilen, was beinhaltet:
# 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>```