]> granicus.if.org Git - apache/blob - docs/manual/mod/event.xml.fr
Rebuild transformations.
[apache] / docs / manual / mod / event.xml.fr
1 <?xml version="1.0"?>
2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English Revision : 1021924 -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- Reviewed by : Vincent Deffontaines -->
7
8 <!--
9  Licensed to the Apache Software Foundation (ASF) under one or more
10  contributor license agreements.  See the NOTICE file distributed with
11  this work for additional information regarding copyright ownership.
12  The ASF licenses this file to You under the Apache License, Version 2.0
13  (the "License"); you may not use this file except in compliance with
14  the License.  You may obtain a copy of the License at
15
16      http://www.apache.org/licenses/LICENSE-2.0
17
18  Unless required by applicable law or agreed to in writing, software
19  distributed under the License is distributed on an "AS IS" BASIS,
20  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21  See the License for the specific language governing permissions and
22  limitations under the License.
23 -->
24
25 <modulesynopsis metafile="event.xml.meta">
26 <name>event</name>
27 <description>Une variante du MPM <module>worker</module> con&ccedil;ue pour ne
28 mobiliser des threads que pour les connexions en cours de traitement</description>
29 <status>MPM</status>
30 <sourcefile>event.c</sourcefile>
31 <identifier>mpm_event_module</identifier>
32
33 <summary>
34     <p>Le module multi-processus (MPM) <module>event</module> est con&ccedil;u
35     pour permettre le traitement d'un nombre accru de requ&ecirc;tes
36     simultan&eacute;es en d&eacute;l&eacute;guant certaines t&acirc;ches &agrave; des threads de support,
37     lib&eacute;rant par l&agrave;-m&ecirc;me le thread principal et lui permettant de
38     traiter les nouvelles requ&ecirc;tes. Il s'inspire du MPM
39     <module>worker</module> qui impl&eacute;mente un serveur hybride
40     multi-processus/multi-threads. Les directives de configuration &agrave;
41     l'ex&eacute;cution sont identiques &agrave; celles du MPM
42     <module>worker</module>.</p>
43
44     <p>Pour utiliser le MPM <module>event</module>, ajoutez
45     <code>--with-mpm=event</code> aux arguments du script
46     <program>configure</program> lorsque vous compilez le programme
47     <program>httpd</program>.</p>
48
49 </summary>
50
51 <seealso><a href="worker.html">Le MPM worker</a></seealso>
52
53 <section id="how-it-works"><title>Comment tout cela fonctionne</title>
54     <p>Ce MPM essaie de r&eacute;soudre le 'probl&egrave;me keep alive' de HTTP.
55     Lorsqu'un client a soumis une premi&egrave;re requ&ecirc;te, il peut garder la
56     connexion ouverte, et envoyer les requ&ecirc;tes suivantes en utilisant le
57     m&ecirc;me socket. Ceci permet de r&eacute;duire de mani&egrave;re significative la
58     surcharge due &agrave; la cr&eacute;ation de connexions TCP.
59     Cependant, le serveur HTTP Apache
60     mobilise en principe &agrave; cet effet un processus/thread enfant en
61     attente des donn&eacute;es du client, ce qui am&egrave;ne son propre lot
62     d'inconv&eacute;nients. Pour r&eacute;soudre ce probl&egrave;me, <module>event</module>
63     utilise un thread d&eacute;di&eacute; qui g&egrave;re non seulement les sockets en
64     &eacute;coute, mais aussi tous les sockets en &eacute;tat Keep Alive.</p>
65
66     <p>Le MPM pr&eacute;suppose que l'impl&eacute;mentation <code>apr_pollset</code>
67     sous-jacente est raisonnablement s&ucirc;re du point de vue des threads.
68     Ceci permet au MPM d'&eacute;viter un verrouillage de haut niveau excessif,
69     ou de devoir activer le thread en &eacute;coute afin de lui envoyer un
70     socket keep alive. Tout ceci n'est actuellement compatible qu'avec
71     KQueue et EPoll.</p>
72
73 </section>
74 <section id="requirements"><title>Pr&eacute;requis</title>
75     <p>Ce MPM d&eacute;pend des op&eacute;rations atomiques compare-and-swap
76     d'<glossary>APR</glossary> pour la synchronisation des threads. Si
77     vous compilez pour une plate-forme x86 et n'avez pas besoin du
78     support 386, ou si vous compilez pour une plate-forme SPARC et
79     n'avez pas besoin du support pre-UltraSPARC, ajoutez
80     <code>--enable-nonportable-atomics=yes</code> aux arguments du
81     script <program>configure</program>. Ceci permettra &agrave; APR
82     d'impl&eacute;menter les op&eacute;rations atomiques en utilisant des instructions
83     performantes indisponibles avec les processeurs plus
84     anciens.</p>
85
86     <p>Ce MPM ne fonctionne pas de mani&egrave;re optimale sur les
87     plates-formes plus anciennes qui ne g&egrave;rent pas correctement les
88     threads, mais ce probl&egrave;me est sans objet du fait du pr&eacute;requis
89     concernant EPoll ou KQueue.</p>
90
91     <ul>
92
93       <li>Pour utiliser ce MPM sous FreeBSD, la version 5.3 ou
94       sup&eacute;rieure de ce syst&egrave;me est recommand&eacute;e. Il est cependant
95       possible d'ex&eacute;cuter ce MPM sous FreeBSD 5.2.1 si vous utilisez
96       <code>libkse</code> (voir <code>man libmap.conf</code>).</li>
97
98       <li>Pour NetBSD, il est recommander d'utiliser la version 2.0 ou
99       sup&eacute;rieure.</li>
100
101       <li>Pour Linux, un noyau 2.6 est recommand&eacute;. Il faut aussi
102       s'assurer que votre version de <code>glibc</code> a &eacute;t&eacute; compil&eacute;e
103       avec le support pour EPoll.</li>
104
105     </ul>
106 </section>
107
108 <directivesynopsis location="mpm_common"><name>CoreDumpDirectory</name>
109 </directivesynopsis>
110 <directivesynopsis location="mpm_common"><name>EnableExceptionHook</name>
111 </directivesynopsis>
112 <directivesynopsis location="mpm_common"><name>Group</name>
113 </directivesynopsis>
114 <directivesynopsis location="mpm_common"><name>Listen</name>
115 </directivesynopsis>
116 <directivesynopsis location="mpm_common"><name>ListenBacklog</name>
117 </directivesynopsis>
118 <directivesynopsis location="mpm_common"><name>SendBufferSize</name>
119 </directivesynopsis>
120 <directivesynopsis location="mpm_common"><name>MaxClients</name>
121 </directivesynopsis>
122 <directivesynopsis location="mpm_common"><name>MaxMemFree</name>
123 </directivesynopsis>
124 <directivesynopsis location="mpm_common"><name>MaxConnectionsPerChild</name>
125 </directivesynopsis>
126 <directivesynopsis location="mpm_common"><name>MaxSpareThreads</name>
127 </directivesynopsis>
128 <directivesynopsis location="mpm_common"><name>MinSpareThreads</name>
129 </directivesynopsis>
130 <directivesynopsis location="mpm_common"><name>PidFile</name>
131 </directivesynopsis>
132 <directivesynopsis location="mpm_common"><name>ScoreBoardFile</name>
133 </directivesynopsis>
134 <directivesynopsis location="mpm_common"><name>ServerLimit</name>
135 </directivesynopsis>
136 <directivesynopsis location="mpm_common"><name>StartServers</name>
137 </directivesynopsis>
138 <directivesynopsis location="mpm_common"><name>ThreadLimit</name>
139 </directivesynopsis>
140 <directivesynopsis location="mpm_common"><name>ThreadsPerChild</name>
141 </directivesynopsis>
142 <directivesynopsis location="mpm_common"><name>ThreadStackSize</name>
143 </directivesynopsis>
144 <directivesynopsis location="mpm_common"><name>User</name>
145 </directivesynopsis>
146
147 </modulesynopsis>