Apache HTTP Server Version 2.4

Apache > HTTP-Server > Dokumentation > Version 2.4 > Module

# Allgemeine Direktiven der Apache-MPMs

Diese Übersetzung ist möglicherweise nicht mehr aktuell. Bitte prüfen Sie die englische Version auf die neuesten Änderungen.

Beschreibung: | Eine Sammlung von Direktiven, die in mehr als einem Multi-Processing-Modul (MPM) implementiert sind.
Status: | MPM

### Direktiven

### Bugfix checklist

- httpd changelog
- Known issues
- Report a bug

## CoreDumpDirectory-Direktive

Beschreibung: | Verzeichnis, in das der Apache zu wechseln versucht, bevor er einen Hauptspeicherauszug erstellt
Syntax: | `CoreDumpDirectory Verzeichnis`
Voreinstellung: | `Für die Voreinstellung siehe Beschreibung`
Kontext: | Serverkonfiguration
Status: | MPM
Modul: | `beos`, `leader`, `mpm_winnt`, `perchild`, `prefork`, `threadpool`, `worker`

Dies beeinflusst das Verzeichnis, in welches der Apache zu wechseln versucht, bevor er einen Hauptspeicherauszug (Anm.d.Ü.: einen so genannten Core-Dump) erstellt. Die Voreinstellung ist das `ServerRoot`-Verzeichnis. Da dieses jedoch nicht für den Benutzer beschreibbar sein soll, unter dem der Server läuft, werden normalerweise keine Hauptspeicherauszüge geschrieben. Wenn Sie zum Debuggen einen Hauptspeicherauszug haben möchten, können Sie ihn mit dieser Direktive an einem anderen Ort ablegen lassen.

### Hauptspeicherauszüge unter Linux

Wenn Apache als `root` startet und zu einem anderen Benutzer wechselt, deaktiviert der Linux-Kernel Hauptspeicherauszüge auch dann, wenn der Prozess in dem Verzeichnis schreiben darf. Ab Linux 2.4 reaktiviert Apache (ab 2.0.46) Hauptspeicherauszüge wieder, jedoch nur dann, wenn Sie explizit `CoreDumpDirectory` konfigurieren.

## EnableExceptionHook-Direktive

Beschreibung: | Aktiviert einen Hook, der nach einem Absturz noch Ausnahmefehler behandeln lassen kann
Syntax: | `EnableExceptionHook On|Off`
Voreinstellung: | `EnableExceptionHook Off`
Kontext: | Serverkonfiguration
Status: | MPM
Modul: | `leader`, `perchild`, `prefork`, `threadpool`, `worker`
Kompatibilität: | Verfügbar seit Version 2.0.49

Diese Direktive ist aus Sicherheitsgründen nur verfügbar, wenn der Server mit der Option `--enable-exception-hook` konfiguriert wurde. Sie aktiviert einen Hook, der es externen Modulen erlaubt, sich dort einzuhängen und nach dem Absturz eines Kindprozesses noch Aktionen durchzuführen.

Es existieren bereits zwei Module, `mod_whatkilledus` und `mod_backtrace`, welche diesen Hook verwenden. Weitere Informationen hierzu finden Sie auf Jeff Trawicks EnableExceptionHook-Seite.

## GracefulShutdownTimeout-Direktive

Beschreibung: | Specify a timeout after which a gracefully shutdown server will exit.
Syntax: | `GracefulShutdownTimeout seconds`
Voreinstellung: | `GracefulShutdownTimeout 0`
Kontext: | Serverkonfiguration
Status: | MPM
Modul: | `event`, `worker`, `prefork`
Kompatibilität: | Available in version 2.2 and later

Die Dokumentation zu dieser Direktive wurde noch nicht übersetzt. Bitte schauen Sie in die englische Version.

## Listen-Direktive

Beschreibung: | IP-Adressen und Ports, an denen der Server lauscht
Syntax: | `Listen [IP-Addresse:]Port`
Kontext: | Serverkonfiguration
Status: | MPM
Modul: | `beos`, `leader`, `mpm_netware`, `mpm_winnt`, `mpmt_os2`, `perchild`, `prefork`, `threadpool`, `worker`
Kompatibilität: | Seit Apache 2.0 vorgeschrieben

Die Direktive `Listen` weist den Apache an, nur an den angegebenen IP-Adressen oder Ports zu lauschen. Standardmäßig antwortet er auf alle Anfragen an allen IP-Interfaces. `Listen` ist nun eine notwendige Anweisung. Wenn sie nicht in der Konfigurationsdatei enthalten ist, wird der Server-Start fehlschlagen. Dies ist eine Änderung gegenüber früheren Versionen des Apache.

Die Direktive `Listen` weist den Server an, ankommende Anfragen am angegebenen Port oder der Kombination aus Adresse und Port entgegenzunehmen. Wenn nur eine Portnummer angegeben ist, dann lauscht der Server am angegebenen Port an allen Interfaces. Wenn sowohl eine IP-Adresse als auch ein Port angegeben sind, dann lauscht der Server am angegeben Port und Interface.

Es können mehrere `Listen`-Anweisungen verwendet werden, um eine Reihe von Adressen und Port anzugeben, an denen gelauscht werden soll. Der Server antwortet auf Anfragen von jedem der aufgeführten Adressen und Ports.

Um beispielsweise den Server Verbindungen an den beiden Ports 80 und 8000 annehmen zu lassen, verwenden Sie:

`Listen 80
Listen 8000`

Um den Server Verbindungen an zwei angegebenen Interfaces und Ports annehmen zu lassen, verwenden Sie:

`Listen 192.170.2.1:80
Listen 192.170.2.5:8000`

IPv6-Adressen müssen wie in dem folgenden Beispiel in eckige Klammern eingeschlossen werden:

`Listen [2001:db8::a00:20ff:fea7:ccea]:80`

### Fehlermöglichkeit

Mehrere `Listen`-Direktiven für gleiche IP-Adresse und Port führen zur Fehlermeldung `Address already in use` (Anm.d.Ü.: Adresse schon in Benutzung).

### Siehe auch

- DNS-Probleme
- Bestimmen, welche Adressen und Ports der Apache verwendet

## ListenBackLog-Direktive

Beschreibung: | Maximale Länge der Warteschlange schwebender Verbindungen
Syntax: | `ListenBacklog backlog`
Voreinstellung: | `ListenBacklog 511`
Kontext: | Serverkonfiguration
Status: | MPM
Modul: | `beos`, `leader`, `mpm_netware`, `mpm_winnt`, `mpmt_os2`, `perchild`, `prefork`, `threadpool`, `worker`

Die maximale Länge der Warteschlange schwebender Verbindungen. Üblicherweise ist keine Feineinstellung notwendig oder sinnvoll, auf einigen System kann es jedoch gewünscht sein, diesen Wert bei TCP-SYN-Angriffen zu erhöhen. Beachten Sie auch die Beschreibung des backlog-Parameters der Systemfunktion `listen(2)`.

Der Wert wird vom Betriebssystem oft auf eine niedrigere Einstellung begrenzt. Dies variiert von Betriebssystem zu Betriebssystem. Beachten Sie auch, dass viele Betriebssyteme nicht genau beachten, was für backlog angegeben ist, jedoch einen Wert basierend auf der Angabe (normalerweiseweise jedoch größer als diese) verwenden.

## ListenCoresBucketsRatio-Direktive

Beschreibung: | Ratio between the number of CPU cores (online) and the number of listeners' buckets
Syntax: | `ListenCoresBucketsRatio ratio`
Voreinstellung: | `ListenCoresBucketsRatio 0 (disabled)`
Kontext: | Serverkonfiguration
Status: | MPM
Modul: | `event`, `worker`, `prefork`
Kompatibilität: | Available in Apache HTTP Server 2.4.17, with a kernel supporting the socket option `SO_REUSEPORT` and distributing new connections evenly across listening processes' (or threads') sockets using it (eg. Linux 3.9 and later, but not the current implementations of `SO_REUSEPORT` in *BSDs.

Die Dokumentation zu dieser Direktive wurde noch nicht übersetzt. Bitte schauen Sie in die englische Version.

## MaxConnectionsPerChild-Direktive

Beschreibung: | Limit on the number of connections that an individual child server will handle during its life
Syntax: | `MaxConnectionsPerChild number`
Voreinstellung: | `MaxConnectionsPerChild 0`
Kontext: | Serverkonfiguration
Status: | MPM
Modul: | `event`, `worker`, `prefork`, `mpm_winnt`, `mpm_netware`, `mpmt_os2`
Kompatibilität: | Available Apache HTTP Server 2.3.9 and later. The old name `MaxRequestsPerChild` is still supported.

Die Dokumentation zu dieser Direktive wurde noch nicht übersetzt. Bitte schauen Sie in die englische Version.

## MaxMemFree-Direktive

Beschreibung: | Maximale Menge des Arbeitsspeichers, den die Haupt-Zuteilungsroutine verwalten darf, ohne `free()` aufzurufen
Syntax: | `MaxMemFree KBytes`
Voreinstellung: | `MaxMemFree 0`
Kontext: | Serverkonfiguration
Status: | MPM
Modul: | `beos`, `leader`, `mpm_netware`, `prefork`, `threadpool`, `worker`, `mpm_winnt`

Die Direktive `MaxMemFree` gibt die maximale Menge freier Kilobytes an, welche die Haupt-Zuteilungsroutine verwalten darf, ohne `free()` aufzurufen. Wenn keine Angabe gemacht wird, oder Null angegeben ist, wird dieser Wert nicht eingeschränkt.

## MaxRequestWorkers-Direktive

Beschreibung: | Maximum number of connections that will be processed simultaneously
Syntax: | `MaxRequestWorkers number`
Voreinstellung: | `See usage for details`
Kontext: | Serverkonfiguration
Status: | MPM
Modul: | `event`, `worker`, `prefork`

Die Dokumentation zu dieser Direktive wurde noch nicht übersetzt. Bitte schauen Sie in die englische Version.

## MaxSpareThreads-Direktive

Beschreibung: | Maximale Anzahl unbeschäftigter Threads
Syntax: | `MaxSpareThreads Anzahl`
Voreinstellung: | `Für Details siehe Beschreibung`
Kontext: | Serverkonfiguration
Status: | MPM
Modul: | `beos`, `leader`, `mpm_netware`, `mpmt_os2`, `perchild`, `threadpool`, `worker`

Maximale Anzahl unbeschäftigter Threads. Die verschiedenen MPMs behandeln diese Anweisung unterschiedlich.

Die Voreinstellung für `perchild` ist `MaxSpareThreads 10`. Das MPM überwacht die Anzahl der unbeschäftigten Threads auf der Basis einzelner Kindprozesse. Wenn zu viele unbeschäftigte Threads in einem Kindprozess existieren, beendet der Server Threads innerhalb dieses Kindprozesses.

Die Voreinstellung für `worker`, `leader` und `threadpool` ist `MaxSpareThreads 250`. Diese MPMs behandeln Threads auf einer serverweiten Basis. Wenn zu viele unbeschäftigte Threads im Server existieren, dann werden solange Kindprozesse beendet, bis die Anzahl der unbeschäftigten Threads kleiner als der angegebene Wert ist.

Die Voreinstellung für `mpm_netware` ist `MaxSpareThreads 100`. Da dieses MPM nur einen einzigen Prozess ausführt, ist die Zählung überschüssiger Threads ebenfalls serverweit.

`beos` and `mpmt_os2` arbeiten ähnlich wie `mpm_netware`. Die Voreinstellung für `beos` ist `MaxSpareThreads 50`. Die Voreinstellung für `mpmt_os2` ist `10`.

### Restriktionen

Der Wertebereich von `MaxSpareThreads` ist eingeschränkt. Apache korrigiert den angegebenen Wert automatisch gemäß den folgenden Regeln:

- `perchild` verlangt, dass `MaxSpareThreads` kleiner oder gleich `ThreadLimit` ist.
- `mpm_netware` verlangt einen Wert größer als `MinSpareThreads`.
- Bei `leader`, `threadpool` und `worker` muss der Wert größer oder gleich der Summe aus `MinSpareThreads` und `ThreadsPerChild` sein.

### Siehe auch

- `MinSpareThreads`
- `StartServers`

## MinSpareThreads-Direktive

Beschreibung: | Minimale Anzahl unbeschäftigter Threads, die zur Bedienung von Anfragespitzen zur Verfügung stehen
Syntax: | `MinSpareThreads Anzahl`
Voreinstellung: | `Für Details siehe Beschreibung`
Kontext: | Serverkonfiguration
Status: | MPM
Modul: | `beos`, `leader`, `mpm_netware`, `mpmt_os2`, `perchild`, `threadpool`, `worker`

Minimale Anzahl unbeschäftigter Threads, um Anfragespitzen zu bedienen. Die verschiedenen MPMs behandeln die Anweisung unterschiedlich.

`perchild` verwendet die Voreinstellung `MinSpareThreads 5` und überwacht die Anzahl der unbeschäftigten Threads auf der Basis einzelner Kindprozesse. Wenn in einem Kindprozess nicht genügend unbeschäftigte Threads vorhanden sind, erstellt der Server neue Threads innerhalb dieses Kindprozesses. Wenn Sie also `NumServers` auf `10` und `MinSpareThreads` auf einen Wert von `5` setzen, haben Sie mindestens 50 unbeschäftigte Threads auf Ihrem System.

`worker`, `leader` und `threadpool` verwenden eine Voreinstellung von `MinSpareThreads 75` und behandeln unbeschäftigte Threads auf serverweiter Basis. Wenn nicht genügend unbeschäftigte Threads im Server vorhanden sind, dann werden solange Kindprozesse erzeugt, bis die Anzahl unbeschäftigter Threads größer als der angegebene Wert ist.

`mpm_netware` verwendet die Voreinstellung `MinSpareThreads 10` und verfolgt dies serverweit, da es ein Einzelprozess-MPM ist.

`beos` und `mpmt_os2` arbeiten ähnlich wie `mpm_netware`. Die Voreinstellung für `beos` ist `MinSpareThreads 1`. Die Voreinstellung für `mpmt_os2` ist `5`.

### Siehe auch

- `MaxSpareThreads`
- `StartServers`

## PidFile-Direktive

Beschreibung: | Datei, in welcher der Server die Prozess-ID des Daemons ablegt
Syntax: | `PidFile Dateiname`
Voreinstellung: | `PidFile logs/httpd.pid`
Kontext: | Serverkonfiguration
Status: | MPM
Modul: | `beos`, `leader`, `mpm_winnt`, `mpmt_os2`, `perchild`, `prefork`, `threadpool`, `worker`

Die Direktive `PidFile` bestimmt die Datei, in welcher der Server die Prozess-ID des Daemons ablegt. Wenn der Dateiname nicht absolut angegeben wird, wird er relativ zu `ServerRoot` interpretiert.

### Beispiel

`PidFile /var/run/apache.pid`

Es ist oft hilfreich, dem Server ein Signal senden zu können, damit er seine `ErrorLog`s und `TransferLog`s schließt und dann neu öffnet und seine Konfigurationsdateien neu einliest. Dies kann durch Senden eines SIGHUP-Signals (kill -1) an die Prozess-ID geschehen, die im `PidFile` eingetragen ist.

Die `PidFile`-Datei unterliegt den gleichen Warnungen über die Ablage von Protokolldateien und Sicherheit.

### Anmerkung

Ab Apache 2 wird empfohlen, nur das Skript `apachectl` zum (Neu-)Starten und Stoppen des Servers zu verwenden.

## ReceiveBufferSize-Direktive

Beschreibung: | TCP receive buffer size
Syntax: | `ReceiveBufferSize bytes`
Voreinstellung: | `ReceiveBufferSize 0`
Kontext: | Serverkonfiguration
Status: | MPM
Modul: | `event`, `worker`, `prefork`, `mpm_winnt`, `mpm_netware`, `mpmt_os2`

Die Dokumentation zu dieser Direktive wurde noch nicht übersetzt. Bitte schauen Sie in die englische Version.

## ScoreBoardFile-Direktive

Beschreibung: | Ablageort der Datei, die zur Speicherung von Daten zur Koordinierung der Kindprozesse verwendet wird
Syntax: | `ScoreBoardFile Dateipfad`
Voreinstellung: | `ScoreBoardFile logs/apache_status`
Kontext: | Serverkonfiguration
Status: | MPM
Modul: | `beos`, `leader`, `mpm_winnt`, `perchild`, `prefork`, `threadpool`, `worker`

Apache verwendet ein Scoreboard zur Kommunikation zwischen seinen Eltern- und Kindprozessen. Einige Architekturen erfordern eine Datei zur Unterstützung der Kommunikation. Wenn die Datei undefiniert bleibt, versucht der Apache zuerst, das Scoreboard im Arbeitsspeicher zu erstellen (Verwendung von anonymem Shared-Memory), und versucht bei einem Fehlschlag anschließend die Datei auf der Festplatte zu erstellen (Verwendung von Datei-basiertem Shared-Memory). Die Angabe dieser Direktive veranlaßt den Apache stets, die Datei auf der Festplatte zu erstellen.

### Beispiel

`ScoreBoardFile /var/run/apache_status`

Datei-basiertes Shared-Memory ist für Applikationen von Drittanbietern hilfreich, die direkten Zugriff auf das Scoreboard benötigen.

Wenn Sie eine `ScoreBoardFile`-Anweisung verwenden, erreichen Sie eventuell eine höhere Geschwindigkeit, wenn Sie die Datei auf einer RAM-Disk ablegen. Achten Sie darauf, die gleichen Warnungen wie über die Ablage von Protokolldateien und Sicherheit zu beherzigen.

### Siehe auch

- Apache beenden und neu starten

## SendBufferSize-Direktive

Beschreibung: | Größe des TCP-Puffers
Syntax: | `SendBufferSize Bytes`
Voreinstellung: | `SendBufferSize 0`
Kontext: | Serverkonfiguration
Status: | MPM
Modul: | `beos`, `leader`, `mpm_netware`, `mpm_winnt`, `mpmt_os2`, `perchild`, `prefork`, `threadpool`, `worker`

Der Server setzt die Größe des TCP-Puffers auf die angegebene Anzahl Bytes. Dies ist sehr hilfreich, um Voreinstellungen alter Standardbetriebssysteme für Hochgeschwindigkeitsverbindungen mit hoher Latenzzeit anzuheben (d.h. 100ms oder so, wie bei Interkontinentalverbindungen).

Wird der Wert auf `0` gesetzt, dann verwendet der Server die Voreinstellung des Betriebssystems.

## ServerLimit-Direktive

Beschreibung: | Obergrenze für die konfigurierbare Anzahl von Prozessen
Syntax: | `ServerLimit Anzahl`
Voreinstellung: | `Für Details siehe Beschreibung`
Kontext: | Serverkonfiguration
Status: | MPM
Modul: | `leader`, `perchild`, `prefork`, `threadpool`, `worker`

Bei dem MPM `prefork` bestimmt die Direktive den während der Lebensdauer des Apache-Prozesses maximal einstellbaren Wert für `MaxClients`. Beim MPM `worker` bestimmt die Direktive in Verbindung mit `ThreadLimit` den Maximalwert für `MaxClients` für die Lebensdauer des Apache-Prozesses. Jeder Versuch, diese Anweisung während eines Neustarts zu ändern, wird ignoriert. `MaxClients` kann jedoch während eines Neustarts geändert werden.

Lassen Sie besondere Vorsicht bei der Verwendung dieser Direktive walten. Wenn `ServerLimit` auf einen Wert deutlich höher als notwendig gesetzt wird, wird zusätzliches, unbenutztes Shared-Memory belegt. Wenn sowohl `ServerLimit` als auch `MaxClients` auf Werte gesetzt werden, die größer sind, als das System sie handhaben kann, dann kann der Apache möglicherweise nicht starten, oder das System kann instabil werden.

Verwenden Sie die Direktive bei dem MPM `prefork` nur, wenn Sie `MaxClients` auf mehr als 256 (Voreinstellung) setzen müssen. Setzen Sie den Wert nicht höher als den Wert, den Sie für `MaxClients` angeben möchten.

Verwenden Sie die Direktive bei `worker`, `leader` und `threadpool` nur, wenn Ihre `MaxClients`- und `ThreadsPerChild`-Einstellungen mehr als 16 Serverprozesse (Voreinstellung) erfordern. Setzen Sie den Wert dieser Direktive nicht höher, als die Anzahl der Serverprozesse, die dafür erforderlich ist, was Sie bei `MaxClients` und `ThreadsPerChild` angeben möchten.

Verwenden Sie die Direktive beim MPM `perchild` nur, wenn Sie `NumServers` auf einen Wert größer als 8 (Voreinstellung) setzen müssen.

### Anmerkung

Eine feste Begrenzung von `ServerLimit 20000` ist in den Server einkompiliert (bei dem MPM `prefork` 200000). Dies soll unangenehme Effekte durch Tippfehler verhindern.

### Siehe auch

- Apache beenden und neu starten

## StartServers-Direktive

Beschreibung: | Anzahl der Kindprozesse des Servers, die beim Start erstellt werden
Syntax: | `StartServers Anzahl`
Voreinstellung: | `Für Details siehe Beschreibung`
Kontext: | Serverkonfiguration
Status: | MPM
Modul: | `leader`, `mpmt_os2`, `prefork`, `threadpool`, `worker`

Die Direktive `StartServers` bestimmt die Anzahl der Kindprozesse des Servers, die beim Start erstellt werden. Da die Anzahl der Prozesse abhängig von der Last dynamisch kontrolliert wird, besteht normalerweise wenig Grund für eine Änderung dieses Parameters.

Die Voreinstellung unterscheidet sich von MPM zu MPM. Bei `leader`, `threadpool` und `worker` ist die Voreinstellung `StartServers 3`. Die Voreinstellung bei `prefork` ist `5` und bei `mpmt_os2` `2`.

## StartThreads-Direktive

Beschreibung: | Anzahl der Threads, die beim Start erstellt werden
Syntax: | `StartThreads Anzahl`
Voreinstellung: | `Für Details siehe Beschreibung`
Kontext: | Serverkonfiguration
Status: | MPM
Modul: | `beos`, `mpm_netware`, `perchild`

Anzahl der Threads, die beim Start erstellt werden. Da die Anzahl der Threads abhängig von der Last dynamisch kontrolliert wird, besteht normalerweise wenig Grund für eine Änderung dieses Parameters.

Die Voreinstellung für `perchild` ist `StartThreads 5`. Die Direktive setzt während des Starts die Anzahl der Threads pro Prozess.

Die Voreinstellung bei `mpm_netware` ist `StartThreads 50`. Da hier lediglich ein einzelner Prozess existiert, ist dies die Gesamtzahl der Threads, die beim Start erstellt wird, um Anfragen zu bedienen.

Die Voreinstellung für `beos` ist `StartThreads 10`. Die Einstellung reflektiert ebenfalls die Gesamtzahl der Threads, die beim Start erstellt werden, um Anfragen zu bedienen.

## ThreadLimit-Direktive

Beschreibung: | Bestimmt die Obergrenze der konfigurierbaren Anzahl von Threads pro Kindprozess
Syntax: | `ThreadLimit Anzahl`
Voreinstellung: | `Für Details siehe Beschreibung`
Kontext: | Serverkonfiguration
Status: | MPM
Modul: | `leader`, `mpm_winnt`, `perchild`, `threadpool`, `worker`
Kompatibilität: | Verfügbar für `mpm_winnt` ab Apache 2.0.41

Die Direktive bestimmt den während der Lebensdauer des Apache-Prozesses maximal einstellbaren Wert für `ThreadsPerChild`. Jeder Versuch, diese Direktive während eines Neustarts zu ändern, wird ignoriert. `ThreadsPerChild` kann jedoch während eines Neustarts modifiziert werden bis zu dem Wert dieser Anweisung.

Lassen Sie besondere Vorsicht bei der Verwendung dieser Direktive walten. Wenn `ThreadLimit` auf einen Wert deutlich höher als `ThreadsPerChild` gesetzt wird, wird zusätzliches, ungenutztes Shared-Memory belegt. Wenn sowohl `ThreadLimit` als auch `ThreadsPerChild` auf Werte gesetzt werden, die größer sind, als das System sie handhaben kann, dann kann der Apache möglicherweise nicht starten oder das System kann instabil werden. Setzen Sie den Wert dieser Direktive nicht höher als Ihre größte erwartete Einstellung für `ThreadsPerChild` während der aktuellen Ausführung des Apache.

Die Voreinstellung für `ThreadLimit` ist `1920` wenn sie zusammen mit `mpm_winnt` verwendet wird, und `64` bei der Verwendung mit anderen MPMs.

### Anmerkung

Eine feste Begrenzung von `ThreadLimit 20000` (oder `ThreadLimit 15000` bei `mpm_winnt`) ist in den Server einkompiliert. Dies soll unangenehme Effekte durch Tippfehler verhindern.

## ThreadsPerChild-Direktive

Beschreibung: | Anzahl der Threads, die mit jedem Kindprozess gestartet werden
Syntax: | `ThreadsPerChild Anzahl`
Voreinstellung: | `Für Details siehe Beschreibung`
Kontext: | Serverkonfiguration
Status: | MPM
Modul: | `leader`, `mpm_winnt`, `threadpool`, `worker`

Die Direktive legt die Anzahl der Threads fest, die mit jedem Kindprozess gestartet werden. Der Kindprozess erstellt diese Threads beim Start und erstellt später keine weiteren mehr. Wenn Sie ein MPM wie `mpm_winnt` verwenden, wo nur ein Kindprozess existiert, dann sollte diese Angabe hoch genug sein, die gesamte Last des Servers zu bewältigen. Wenn Sie ein MPM wie `worker` verwenden, wo mehrere Kindprozesse existieren, dann sollte die Gesamtzahl der Thread groß genug sein, die übliche Last auf dem Server zu bewältigen.

Die Voreinstellung für `ThreadsPerChild` ist `64`, wenn `mpm_winnt` verwendet wird, und `25` bei der Verwendung der anderen MPMs.

## ThreadStackSize-Direktive

Beschreibung: | Die Größe des Stacks in Bytes, der von Threads verwendet wird, die Client-Verbindungen bearbeiten.
Syntax: | `ThreadStackSize size`
Voreinstellung: | `65536 unter NetWare; variiert bei anderen Betriebssystemen.`
Kontext: | Serverkonfiguration
Status: | MPM
Modul: | `leader`, `mpm_netware`, `mpm_winnt`, `perchild`, `threadpool`, `worker`
Kompatibilität: | Verfügbar seit Version 2.1

Die Direktive `ThreadStackSize` legt die Größe des Stacks (für Autodaten) der Threads fest, die Client-Verbindungen bearbeiten und Module aufrufen, welche bei der Verarbeitung dieser Verbindungen helfen. In den meisten Fällen ist die Voreinstellung des Betriebssystems angemessen, doch unter bestimmten Umständen kann es sinnvoll sein, den Wert anzupassen:

- Auf Plattformen mit einer relativ kleinen Voreingestellung für die Größe des Thread-Stacks (z.B. HP-UX) kann der Apache bei der Verwendung einiger Drittanbietermodule, die einen relativ hohen Bedarf an Speicherplatz haben, abstürzen. Ebendiese Module arbeiten möglicherweise problemlos auf anderen Plattformen, wo der voreingestellte Thread-Stack größer ist. Derartige Abstürze können Sie vermeiden, indem Sie `ThreadStackSize` auf einen höheren Wert als die Betriebssystemvoreinstellung setzen. Eine solche Anpassung ist nur notwendig, wenn es vom Anbieter des Moduls so spezifiziert wurde oder die Diagnose eines Apache-Absturzes ergeben hat, das die Thread-Stackgröße zu klein war.
- Auf Plattformen, wo die voreingestellte Thread-Stackgröße für die Webserverkonfiguration deutlich größer als notwendig ist, kann eine größere Anzahl von Threads pro Kindprozess erreicht werden, wenn `ThreadStackSize` auf einen Wert kleiner als die Betriebssystemvoreinstellung gesetzt wird. Da es einzelne Anfragen geben kann, die mehr Stack zur Verarbeitung benötigen, sollte eine derartige Korrektur ausschließlich in Testumgebungen zum Einsatz kommen, auf denen die gesamte Webserververarbeitung ausprobiert werden kann. Eine Änderung der Webserverkonfiguration kann den aktuellen Wert der `ThreadStackSize` ungültig machen.