worker.xml.de revision d5d794fc2f4cc9ca6d6da17cfa2cdcd8d244bacd
beaad6ac31022179c44d88536811e9ccd9425696nd<!DOCTYPE modulesynopsis SYSTEM "/style/modulesynopsis.dtd">
beaad6ac31022179c44d88536811e9ccd9425696nd<?xml-stylesheet type="text/xsl" href="/style/manual.de.xsl"?>
db878466c5e95073429dda0bdd001f45e9486e16fielding<!-- English revision: 1.11 -->
db878466c5e95073429dda0bdd001f45e9486e16fielding Copyright 2003-2004 Apache Software Foundation
db878466c5e95073429dda0bdd001f45e9486e16fielding Licensed under the Apache License, Version 2.0 (the "License");
beaad6ac31022179c44d88536811e9ccd9425696nd you may not use this file except in compliance with the License.
beaad6ac31022179c44d88536811e9ccd9425696nd You may obtain a copy of the License at
beaad6ac31022179c44d88536811e9ccd9425696nd Unless required by applicable law or agreed to in writing, software
beaad6ac31022179c44d88536811e9ccd9425696nd distributed under the License is distributed on an "AS IS" BASIS,
beaad6ac31022179c44d88536811e9ccd9425696nd WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
beaad6ac31022179c44d88536811e9ccd9425696nd See the License for the specific language governing permissions and
beaad6ac31022179c44d88536811e9ccd9425696nd limitations under the License.
d7e78dbedfc2093a291c4e52eda53c4cbdd606a1nd<description>Multi-Processing-Modul, das einen Hybrid-Webserver mit
01c674544bd4c211141bcd9fb09b96ffc18c6c3dnd Multi-Thread und Multi-Prozess-Unterstützung implementiert</description>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <p>Dieses Multi-Processing-Modul (MPM) implementiert einen Hybrid-Server
7e68fce3cbd2246164e045a51ecd77f9f26680ednd mit Multi-Thread und Multi-Prozess-Unterstützung. Durch die Verwendung
7e68fce3cbd2246164e045a51ecd77f9f26680ednd von Threads für die Bedienung von Anfragen ist er in der Lage,
3726777f47ac4bba3e21b075905959bbea47e72eerikabele eine große Anzahl von Anfragen mit weniger Systemressourcen als
7e68fce3cbd2246164e045a51ecd77f9f26680ednd ein Prozess-basierter Server zu bedienen. Er behält jedoch viel von
f1110149b5b6c28ecc39d1958d98ad9cfa8e41f3nd der Stabilität eines Prozess-basierten Servers bei, indem er
7e68fce3cbd2246164e045a51ecd77f9f26680ednd mehrere Prozesse verfügbar hält, jeden mit etlichen Threads.</p>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd <p>Die wichtigsten Direktiven zur Steuerung des MPMs sind <directive
66e48875fca2df6669dab4f2690ee36c6913c0ffnd module="mpm_common">ThreadsPerChild</directive>, welche die Anzahl
7e68fce3cbd2246164e045a51ecd77f9f26680ednd der Threads beeinflusst, die von jedem Kindprozess verwendet werden, und
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <directive module="mpm_common">MaxClients</directive>, welche die
3726777f47ac4bba3e21b075905959bbea47e72eerikabele maximale Gesamtzahl an Threads regelt, die gestartet werden
7e68fce3cbd2246164e045a51ecd77f9f26680ednd können.</p>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<seealso><a href="/bind.html">Bestimmen der vom Apache verwendeten Adressen
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <p>Jeder Prozess besitzt eine feste Anzahl von Threads. Um die Last
fffabed77cd6264da64fa3d267243d1d76897049nd zu bewältigen, passt sich der Server an, indem er die
7e68fce3cbd2246164e045a51ecd77f9f26680ednd Anzahl der Prozesse erhöht oder verringert.</p>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <p>Ein einzelner Steuerprozess ist für den Start der
f4a6ce7d0d0311e4da2d4df6812263c562a05a3end Kindprozesse verantwortlich. Jeder Kindprozess erstellt eine
f4a6ce7d0d0311e4da2d4df6812263c562a05a3end feste Anzahl von Threads, wie durch die <directive
7e68fce3cbd2246164e045a51ecd77f9f26680ednd module="mpm_common">ThreadsPerChild</directive>-Direktive
7e68fce3cbd2246164e045a51ecd77f9f26680ednd angegeben. Der einzelne Thread lauscht dann auf Verbindungen und
7e68fce3cbd2246164e045a51ecd77f9f26680ednd bedient sie, sobald sie eintreffen.</p>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <p>Der Apache versucht immer, einen Vorrat von <dfn>freien</dfn> oder
7e68fce3cbd2246164e045a51ecd77f9f26680ednd unbeschäftigten Threads zu verwalten, die zur Bedienung
7e68fce3cbd2246164e045a51ecd77f9f26680ednd hereinkommender Anfragen bereit stehen. Auf diese Weise brauchen
7e68fce3cbd2246164e045a51ecd77f9f26680ednd Clients nicht auf die Erstellung eines neuen Threads oder Prozesses
7e68fce3cbd2246164e045a51ecd77f9f26680ednd zu warten, bevor ihre Anfrage bedient werden kann. Die Anzahl der
7e68fce3cbd2246164e045a51ecd77f9f26680ednd Prozesse, die anfangs gestartet wird, wird mit der Direktive
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <directive module="mpm_common">StartServers</directive> festgelegt.
7e68fce3cbd2246164e045a51ecd77f9f26680ednd Dann, während des Betriebes, berechnet der Apache die Gesamtzahl
7e68fce3cbd2246164e045a51ecd77f9f26680ednd der unbeschäftigten Threads und forkt oder beendet Prozesse, um diese
7e68fce3cbd2246164e045a51ecd77f9f26680ednd Anzahl innerhalb der durch <directive
7e68fce3cbd2246164e045a51ecd77f9f26680ednd module="mpm_common">MinSpareThreads</directive> und <directive
7e68fce3cbd2246164e045a51ecd77f9f26680ednd module="mpm_common">MaxSpareThreads</directive> angegebenen Grenzen
7e68fce3cbd2246164e045a51ecd77f9f26680ednd zu halten. Da dieser Prozess sehr selbstregulierend ist, ist es nur selten
f1110149b5b6c28ecc39d1958d98ad9cfa8e41f3nd notwendig, die Voreinstellung dieser Direktiven zu ändern. Die
7e68fce3cbd2246164e045a51ecd77f9f26680ednd maximale Anzahl Clients, die gleichzeitig bedient werden kann (d.h.
7e68fce3cbd2246164e045a51ecd77f9f26680ednd die maximale Gesamtzahl der Threads in allen Prozessen), wird mit der
7e68fce3cbd2246164e045a51ecd77f9f26680ednd Direktive <directive module="mpm_common">MaxClients</directive>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd festgelegt, während die maximale Anzahl Prozesse, die gestartet
e5343521634b71f10f0e88374d88bd5a45f75f68nd werden kann, von der Direktive <directive
7e68fce3cbd2246164e045a51ecd77f9f26680ednd module="mpm_common">ServerLimit</directive> bestimmt wird. <directive
bdbf46e4950b6f633073f803486962e82c2f086and module="mpm_common">ServerLimit</directive> multipliziert mit <directive
7e68fce3cbd2246164e045a51ecd77f9f26680ednd module="mpm_common">ThreadsPerChild</directive> muss größer
7e68fce3cbd2246164e045a51ecd77f9f26680ednd oder gleich <directive module="mpm_common">MaxClients</directive>
11c3b428f0fc9b03f353ed9b66347c5deb567052nd <p>Eine typische Konfiguration der Prozess-Thread-Steuerung für
11c3b428f0fc9b03f353ed9b66347c5deb567052nd das MPM <module>worker</module> könnte wie folgt aussehen:</p>
11c3b428f0fc9b03f353ed9b66347c5deb567052nd StartServers 2<br />
11c3b428f0fc9b03f353ed9b66347c5deb567052nd MaxClients 150<br />
11c3b428f0fc9b03f353ed9b66347c5deb567052nd MinSpareThreads 25<br />
11c3b428f0fc9b03f353ed9b66347c5deb567052nd MaxSpareThreads 75<br />
11c3b428f0fc9b03f353ed9b66347c5deb567052nd ThreadsPerChild 25<br />
11c3b428f0fc9b03f353ed9b66347c5deb567052nd ServerLimit 16
7e68fce3cbd2246164e045a51ecd77f9f26680ednd </example>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <p>Während der Elternprozess unter Unix normalerweise als
3726777f47ac4bba3e21b075905959bbea47e72eerikabele <code>root</code> gestartet wird, um sich an Port 80 binden zu können,
7e68fce3cbd2246164e045a51ecd77f9f26680ednd werden die Kindprozesse und Threads unter einem weniger privilegierten
7e68fce3cbd2246164e045a51ecd77f9f26680ednd Benutzer gestartet. Die Direktiven <directive
7e68fce3cbd2246164e045a51ecd77f9f26680ednd module="mpm_common">Group</directive> werden dazu verwendet, die
7e68fce3cbd2246164e045a51ecd77f9f26680ednd Privilegien der Apache-Kindprozesse festzulegen. Die Kindprozesse
7e68fce3cbd2246164e045a51ecd77f9f26680ednd müssen in der Lage sein, alle Inhalte zu lesen, die sie ausliefern
7e68fce3cbd2246164e045a51ecd77f9f26680ednd sollen, sollten darüber hinaus jedoch so wenig wie möglich Rechte
e5343521634b71f10f0e88374d88bd5a45f75f68nd besitzen. Zusätzlich, solange nicht <a
bdbf46e4950b6f633073f803486962e82c2f086and href="/suexec.html">suexec</a> verwendet wird, legen diese
bdbf46e4950b6f633073f803486962e82c2f086and Direktiven auch die Privilegien fest, die von CGI-Skripts
7e68fce3cbd2246164e045a51ecd77f9f26680ednd geerbt werden.</p>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd <p><directive module="mpm_common">MaxRequestsPerChild</directive>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd bestimmt, wie häufig der Server Prozesse erneuert, indem er alte
7e68fce3cbd2246164e045a51ecd77f9f26680ednd beendet und neue startet.</p>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<directivesynopsis location="mpm_common"><name>AcceptMutex</name>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</directivesynopsis>
fd46b0fed4351924170b4db5859dc35b771ee16dnd<directivesynopsis location="mpm_common"><name>CoreDumpDirectory</name>
fd46b0fed4351924170b4db5859dc35b771ee16dnd</directivesynopsis>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<directivesynopsis location="mpm_common"><name>Group</name>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</directivesynopsis>
fd46b0fed4351924170b4db5859dc35b771ee16dnd<directivesynopsis location="mpm_common"><name>PidFile</name>
fd46b0fed4351924170b4db5859dc35b771ee16dnd</directivesynopsis>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<directivesynopsis location="mpm_common"><name>Listen</name>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</directivesynopsis>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<directivesynopsis location="mpm_common"><name>ListenBacklog</name>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</directivesynopsis>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<directivesynopsis location="mpm_common"><name>LockFile</name>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</directivesynopsis>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<directivesynopsis location="mpm_common"><name>MaxClients</name>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</directivesynopsis>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<directivesynopsis location="mpm_common"><name>MaxMemFree</name>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</directivesynopsis>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<directivesynopsis location="mpm_common"><name>MaxRequestsPerChild</name>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</directivesynopsis>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<directivesynopsis location="mpm_common"><name>MaxSpareThreads</name>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</directivesynopsis>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<directivesynopsis location="mpm_common"><name>MinSpareThreads</name>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</directivesynopsis>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele<directivesynopsis location="mpm_common"><name>ScoreBoardFile</name>
3726777f47ac4bba3e21b075905959bbea47e72eerikabele</directivesynopsis>
66e48875fca2df6669dab4f2690ee36c6913c0ffnd<directivesynopsis location="mpm_common"><name>SendBufferSize</name>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</directivesynopsis>
d3cd98e7839dd1c737c18d42a916ed20860a50e1nd<directivesynopsis location="mpm_common"><name>ServerLimit</name>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</directivesynopsis>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<directivesynopsis location="mpm_common"><name>StartServers</name>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd</directivesynopsis>
bdbf46e4950b6f633073f803486962e82c2f086and<directivesynopsis location="mpm_common"><name>ThreadLimit</name>
bdbf46e4950b6f633073f803486962e82c2f086and</directivesynopsis>
7e68fce3cbd2246164e045a51ecd77f9f26680ednd<directivesynopsis location="mpm_common"><name>ThreadsPerChild</name>
e5343521634b71f10f0e88374d88bd5a45f75f68nd</directivesynopsis>
e5343521634b71f10f0e88374d88bd5a45f75f68nd<directivesynopsis location="mpm_common"><name>User</name>
e5343521634b71f10f0e88374d88bd5a45f75f68nd</directivesynopsis>
e5343521634b71f10f0e88374d88bd5a45f75f68nd</modulesynopsis>