# 3.3.2 Konfiguration des Moduls MPM prefork

In der Konfigurationsdatei des Moduls `mpm_prefork` stehen für den Betrieb des Webservers wichtige Einträge.

Beispiel

Datei `mpm-prefork.conf` ohne Kommentare

    <IfModule mpm_prefork_module>
        StartServers             5
        MinSpareServers          5
        MaxSpareServers         10
        MaxRequestWorkers      150
        MaxConnectionsPerChild   0
    </IfModule>

Parameter werden in der Apache-Konfiguration als Direktiven bezeichnet. Hier folgt die Erklärung der Direktiven der Der Datei `mpm-prefork`.conf.

Apachedirektiven des MPM Prefork Moduls | Beschreibung
--- | ---
`<IfModule mpm_prefork_module>` | Hiermit wird überprüft, ob das entsprechende Modul geladen wird. Die Direktiven würden ansonsten zu Fehlermeldungen führen, da diese nur für das entsprechende Modul gelten.
`StartServers 5` | Anzahl der Bearbeiterprozesse des Servers, die beim Start erstellt werden. Wir hatten zuvor mit `ps aux | grep apache2` schon gesehen, dass fünf Bearbeiterprozesse zur Verfügung stehen. Hinweis: der Default-Wert muss bei produktiven Systemen erhöht werden.
`MinSpareServers 5` | Minimale Anzahl der unbeschäftigten Bearbeiterprozesse des Servers. Wenn viele gleichzeitige Client Requests erfolgen, erhöht der Managerprozess die Anzahl der offenen Bearbeiterprozesse, damit sofort Kapazität für die Beantwortung weiterer Client Requests vorhanden ist. Hinweis: der Wert kann gleich dem Wert von `StartServers` sein.
`MaxSpareServers 10` | Maximale Anzahl der unbeschäftigten Bearbeiterprozesse des Servers. Wenn, nach einer hohen Anzahl von gleichzeitigen Client Requests, nicht mehr so viele Anfragen kommen, reduziert der Managerprozess die Anzahl der offenen Bearbeiterprozesse. Hinweis: der Wert sollte doppelt so hoch sein wie `MinSpareServers`.
`MaxRequestWorkers 150` | Maximale Anzahl der Bearbeiterprozesse, die zur Bedienung gleichzeitiger Client Requests zur Verfügung stehen. Der Wert sollte hoch sein, damit viele Client Requests bearbeitet werden können. Die maximale Größe hängt damit zusammen, wie viele Kindprozesse auf dem Server zugelassen sind. Um mehr als 256 gleichzeitige Bearbeiterprozesse zuzulassen, muss `ServerLimit` als Direktive verwendet und erhöht werden. Auch muss geprüft werden, ob die Linux-Konfiguration eine hohe Anzahl an Kindprozessen zulässt. Bei einem Wert oberhalb von 200.000, muss der Apache neu kompiliert werden. Hinweis: der voreingestellte Wert von 150 wird bei Produktivsystemen nicht ausreichen.
`MaxConnectionsPerChild 0` | Obergrenze für die Anzahl von Anfragen, die ein einzelner Kindprozess während seiner Laufzeit bearbeitet. Der Wert "0" bedeutet, dass die Kindprozesse nie erneuert werden. Dies kann bei einer schlechten Programmierung oder einer schlechten Konfiguration zur Folge haben, dass durch eine "memory leakage" die Prozesse immer größer werden. Hinweis: ein "memory leakage" kommt zwar selten vor, aber es ist ratsam, den Wert auf eine hohe Ziffer (beispielsweise 10.000) zu setzen, damit die einzelnen Arbeiterprozesse auch mal Feierabend bekommen.
`</IfModule>` |