worker.xml.de revision 15b0d99a66145e797cbe368bff5e44d5653be5e5
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd<!DOCTYPE modulesynopsis SYSTEM "/style/modulesynopsis.dtd">
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd<?xml-stylesheet type="text/xsl" href="/style/manual.de.xsl"?>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd<!-- English Revision: 280384:395228 (outdated) -->
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd Copyright 2003-2006 The Apache Software Foundation or its licensors,
96ad5d81ee4a2cc66a4ae19893efc8aa6d06fae7jailletc as applicable.
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd Licensed under the Apache License, Version 2.0 (the "License");
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen you may not use this file except in compliance with the License.
2e545ce2450a9953665f701bb05350f0d3f26275nd You may obtain a copy of the License at
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd Unless required by applicable law or agreed to in writing, software
af33a4994ae2ff15bc67d19ff1a7feb906745bf8rbowen distributed under the License is distributed on an "AS IS" BASIS,
3f08db06526d6901aa08c110b5bc7dde6bc39905nd WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd See the License for the specific language governing permissions and
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd limitations under the License.
af84459fbf938e508fd10b01cb8d699c79083813takashi<description>Multi-Processing-Modul, das einen Hybrid-Webserver mit
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd Multi-Thread und Multi-Prozess-Unterstützung implementiert</description>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <p>Dieses Multi-Processing-Modul (MPM) implementiert einen Hybrid-Server
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd mit Multi-Thread und Multi-Prozess-Unterstützung. Durch die Verwendung
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd von Threads für die Bedienung von Anfragen ist er in der Lage,
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd eine große Anzahl von Anfragen mit weniger Systemressourcen als
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd ein Prozess-basierter Server zu bedienen. Er behält jedoch viel von
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd der Stabilität eines Prozess-basierten Servers bei, indem er
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd mehrere Prozesse verfügbar hält, jeden mit etlichen Threads.</p>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <p>Die wichtigsten Direktiven zur Steuerung des MPMs sind <directive
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd module="mpm_common">ThreadsPerChild</directive>, welche die Anzahl
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd der Threads beeinflusst, die von jedem Kindprozess verwendet werden, und
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <directive module="mpm_common">MaxClients</directive>, welche die
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd maximale Gesamtzahl an Threads regelt, die gestartet werden
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd können.</p>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd<seealso><a href="/bind.html">Bestimmen der vom Apache verwendeten Adressen
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <p>Ein einzelner Steuerprozess (der Elternprozess) ist für den
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd Start der Kindprozesse verantwortlich. Jeder Kindprozess erstellt eine
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd feste Anzahl von Server-Threads, wie durch die <directive
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd module="mpm_common">ThreadsPerChild</directive>-Direktive
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd angegeben, sowie einen "Listener-Thread", der auf Verbindungen wartet und
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd diese an einen Server-Thread zur Bearbeitung weiterreicht, sobald sie
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd eintreffen.</p>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <p>Der Apache versucht immer, einen Vorrat von <dfn>freien</dfn> oder
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd unbeschäftigten Threads zu verwalten, die zur Bedienung
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd hereinkommender Anfragen bereit stehen. Auf diese Weise brauchen
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd Clients nicht auf die Erstellung eines neuen Threads oder Prozesses
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd zu warten, bevor ihre Anfrage bedient werden kann. Die Anzahl der
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd Prozesse, die anfangs gestartet wird, wird mit der Direktive
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <directive module="mpm_common">StartServers</directive> festgelegt.
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd Dann, während des Betriebes, berechnet der Apache die Gesamtzahl
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd der unbeschäftigten Threads und forkt oder beendet Prozesse, um diese
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd Anzahl innerhalb der durch <directive
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd module="mpm_common">MinSpareThreads</directive> und <directive
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd module="mpm_common">MaxSpareThreads</directive> angegebenen Grenzen
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd zu halten. Da dieser Prozess sehr selbstregulierend ist, ist es nur selten
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd notwendig, die Voreinstellung dieser Direktiven zu ändern. Die
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd maximale Anzahl Clients, die gleichzeitig bedient werden kann (d.h.
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd die maximale Gesamtzahl der Threads in allen Prozessen), wird mit der
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd Direktive <directive module="mpm_common">MaxClients</directive>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd festgelegt. Die maximale Anzahl der aktiven Kindprozesse ergibt sich aus
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <directive module="mpm_common">MaxClients</directive> dividiert durch
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <directive module="mpm_common">ThreadsPerChild</directive>.</p>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <p>Zwei Direktiven legen harte Limits für die Anzahl der aktiven
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd Kindprozesse fest und können nur geändert werden, indem der Server
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd komplett gestoppt und dann wieder neu gestartet wird. <directive
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd module="mpm_common">ServerLimit</directive> stellt die obere Grenze für
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd die Anzahl der aktiven Kindprozesse dar und muss größer oder
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd gleich dem Quotienten aus <directive
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd module="mpm_common">MaxClients</directive> und <directive
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd module="mpm_common">ThreadsPerChild</directive> sein. <directive
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd module="mpm_common">ThreadLimit</directive> ist die obere Grenze für
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd die Anzahl der Server-Threads und muss größer oder gleich
71fccc298df6a1540d408151a26aa22beed55d0bnd <directive module="mpm_common">ThreadsPerChild</directive> sein. Sofern für
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd diese Direktiven keine Voreinstellungen verwendet werden, sollten sie vor
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd allen anderen <module>worker</module>-Direktiven platziert werden.</p>
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd <p>Neben den normalen aktiven Kindprozessen gibt es möglicherweise noch
af84459fbf938e508fd10b01cb8d699c79083813takashi zusätzliche Kindprozesse, welche gerade beendet werden, wo allerdings
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd zumindest noch ein Server-Thread eine existierende Verbindung bearbeitet.
f3ec420152ca921e4c1ce77782f51b53f659018dnd Obwohl die tatsächlich zu erwartende Anzahl deutlich kleiner ist,
f086b4b402fa9a2fefc7dda85de2a3cc1cd0a654rjung können bis zu <directive module="mpm_common">MaxClients</directive>
727872d18412fc021f03969b8641810d8896820bhumbedooh solcher Prozesse auftreten. Dieses Verhalten können Sie vermeiden,
0d0ba3a410038e179b695446bb149cce6264e0abnd indem Sie die Terminierung einzelner Kindprozesse wie folgt abschalten:</p>
0d0ba3a410038e179b695446bb149cce6264e0abnd <li>setzen Sie den Wert von <directive module="mpm_common"
0d0ba3a410038e179b695446bb149cce6264e0abnd <li>setzen Sie den Wert von <directive module="mpm_common"
0d0ba3a410038e179b695446bb149cce6264e0abnd >MaxSpareThreads</directive> auf den gleichen Wert wie <directive
0d0ba3a410038e179b695446bb149cce6264e0abnd <p>Eine typische Konfiguration der Prozess-Thread-Steuerung für
0d0ba3a410038e179b695446bb149cce6264e0abnd das MPM <module>worker</module> könnte wie folgt aussehen:</p>
0d0ba3a410038e179b695446bb149cce6264e0abnd ServerLimit 16<br />
30471a4650391f57975f60bbb6e4a90be7b284bfhumbedooh StartServers 2<br />
205f749042ed530040a4f0080dbcb47ceae8a374rjung MaxClients 150<br />
af33a4994ae2ff15bc67d19ff1a7feb906745bf8rbowen MinSpareThreads 25<br />
0d0ba3a410038e179b695446bb149cce6264e0abnd MaxSpareThreads 75<br />
7fec19672a491661b2fe4b29f685bc7f4efa64d4nd ThreadsPerChild 25
7fec19672a491661b2fe4b29f685bc7f4efa64d4nd </example>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <p>Während der Elternprozess unter Unix normalerweise als