]> granicus.if.org Git - apache/blob - docs/manual/mod/mpm_common.xml.fr
28d25f3acc69e3f32192a838c21b76f9e75642c5
[apache] / docs / manual / mod / mpm_common.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 : 1421892 -->
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="mpm_common.xml.meta">
26
27 <name>mpm_common</name>
28 <description>Une s&eacute;rie de directives impl&eacute;ment&eacute;es par plusieurs
29 modules multi-processus (MPM)</description>
30 <status>MPM</status>
31
32 <directivesynopsis>
33 <name>CoreDumpDirectory</name>
34 <description>Le r&eacute;pertoire dans lequel le serveur HTTP Apache va tenter de se
35 positionner avant d'effectuer un vidage m&eacute;moire</description>
36 <syntax>CoreDumpDirectory <var>r&eacute;pertoire</var></syntax>
37 <default>Voir ci-dessous pour le r&eacute;pertoire par d&eacute;faut</default>
38 <contextlist><context>server config</context></contextlist>
39 <modulelist><module>event</module><module>prefork</module>
40 <module>worker</module></modulelist>
41
42 <usage>
43     <p>Cette directive permet de d&eacute;finir le r&eacute;pertoire dans lequel
44     Apache httpd va tenter de se positionner avant d'effectuer un vidage
45     m&eacute;moire sur disque.
46     Si votre syst&egrave;me d'exploitation est configur&eacute; pour cr&eacute;er des
47     fichiers de vidage m&eacute;moire dans le r&eacute;pertoire de travail des
48     processus qui se sont crash&eacute;s,
49     <directive>CoreDumpDirectory</directive> est n&eacute;cessaire pour
50     d&eacute;finir un r&eacute;pertoire de travail autre que le r&eacute;pertoire par d&eacute;faut
51     <directive module="core">ServerRoot</directive>, ce r&eacute;pertoire de
52     travail ne devant pas &ecirc;tre accessible en &eacute;criture par l'utilisateur sous
53     lequel le serveur s'ex&eacute;cute.</p>
54
55     <p>Si vous avez besoin d'un vidage m&eacute;moire pour le d&eacute;bogage, vous
56     pouvez utiliser cette directive pour le placer &agrave; un endroit
57     diff&eacute;rent. Cette directive n'a aucun effet si votre syst&egrave;me
58     d'exploitation n'est pas configur&eacute; pour cr&eacute;er des
59     fichiers de vidage m&eacute;moire dans le r&eacute;pertoire de travail des
60     processus qui se sont crash&eacute;s.</p>
61
62     <note><title>Vidages m&eacute;moire sous Linux</title>
63       <p>Si Apache httpd est d&eacute;marr&eacute; sous l'utilisateur root puis bascule vers
64       un autre utilisateur, le noyau Linux <em>d&eacute;sactive</em> les
65       vidages m&eacute;moire, m&ecirc;me si le r&eacute;pertoire est accessible en &eacute;criture au
66       processus. Apache httpd (versions 2.0.46 et sup&eacute;rieures) r&eacute;active les
67       vidages m&eacute;moire sous Linux 2.4 et au del&agrave;, mais seulement si vous
68       d&eacute;finissez une directive <directive>CoreDumpDirectory</directive>.</p>
69     </note>
70
71     <note>
72     <title>Vidages m&eacute;moire sous BSD</title>
73     <p>Pour activer le vidage m&eacute;moire des ex&eacute;cutables suid sur les
74     syst&egrave;mes de style BSD (comme FreeBSD), d&eacute;finissez
75     <code>kern.sugid_coredump</code> &agrave; 1.
76     </p>
77     </note>
78
79     <note><title>Signaux sp&eacute;cifiques</title>
80       <p><directive>CoreDumpDirectory</directive> n'est trait&eacute; qu'&agrave; la
81       reception d'un certain nombre de signaux , SIGFPE, SIGILL, SIGABORT,
82       SIGSEGV, et SIGBUS.</p>
83       <p>
84       Sur certains syst&egrave;mes d'exploitation, SIGQUIT provoque aussi un
85       vidage m&eacute;moire, mais n'est pas trait&eacute; par les directives
86       <directive>CoreDumpDirectory</directive> ou
87       <directive>EnableExceptionHook</directive>, si bien que la
88       d&eacute;finition du r&eacute;pertoire d'enregistrement du vidage m&eacute;moire est
89       enti&egrave;rement d&eacute;volue au syst&egrave;me d'exploitation.</p>
90     </note>
91 </usage>
92 </directivesynopsis>
93
94 <directivesynopsis>
95 <name>EnableExceptionHook</name>
96 <description>Active un hook ("point d'accrochage logiciel") qui ex&eacute;cute des
97 gestionnaires d'exception apr&egrave;s un crash</description>
98 <syntax>EnableExceptionHook On|Off</syntax>
99 <default>EnableExceptionHook Off</default>
100 <contextlist><context>server config</context></contextlist>
101 <modulelist>
102 <module>event</module><module>prefork</module>
103 <module>worker</module></modulelist>
104
105 <usage>
106     <p>Pour des raisons de s&eacute;curit&eacute;, cette directive n'est disponible
107     que si la compilation du serveur a &eacute;t&eacute; configur&eacute;e avec l'option
108     <code>--enable-exception-hook</code>. Elle permet d'activer un hook
109     ("point d'accrochage logiciel")
110     qui autorise certains modules externes &agrave; effectuer un branchement et
111     accomplir telle ou telle action apr&egrave;s le crash d'un processus
112     enfant.</p>
113
114     <p>Deux modules, <code>mod_whatkilledus</code> et
115     <code>mod_backtrace</code> utilisent ce hook. Veuillez vous
116     r&eacute;f&eacute;rer &agrave; la <a
117     href="http://people.apache.org/~trawick/exception_hook.html"
118     >page EnableExceptionHook</a> de Jeff Trawick pour plus
119     d'informations &agrave; leur sujet.</p>
120 </usage>
121 </directivesynopsis>
122
123 <directivesynopsis>
124 <name>GracefulShutdownTimeout</name>
125 <description>Sp&eacute;cifie le d&eacute;lai maximum apr&egrave;s lequel le serveur va
126 s'arr&ecirc;ter dans le cas d'un arr&ecirc;t "en douceur"</description>
127 <syntax>GracefulShutDownTimeout <var>secondes</var></syntax>
128 <default>GracefulShutDownTimeout 0</default>
129 <contextlist><context>server config</context></contextlist>
130 <modulelist><module>prefork</module><module>worker</module>
131 <module>event</module></modulelist>
132 <compatibility>Disponible dans les versions 2.2 et sup&eacute;rieures</compatibility>
133
134 <usage>
135     <p>La directive <directive>GracefulShutdownTimeout</directive>
136     permet de sp&eacute;cifier le temps, en secondes, pendant lequel le serveur
137     va continuer &agrave; fonctionner apr&egrave;s avoir re&ccedil;u un signal
138     "graceful-stop" ("Arr&ecirc;t en douceur"), afin de terminer le traitement
139     des connexions en cours.</p>
140
141     <p>D&eacute;finir cette valeur &agrave; z&eacute;ro signifie au serveur d'attendre
142     jusqu'&agrave; ce que toutes les requ&ecirc;tes en cours aient &eacute;t&eacute; trait&eacute;es.</p>
143 </usage>
144 </directivesynopsis>
145
146 <directivesynopsis>
147 <name>PidFile</name>
148 <description>Ficher dans lequel le serveur enregistre l'identificateur
149 de processus du d&eacute;mon</description>
150 <syntax>PidFile <var>nom fichier</var></syntax>
151 <default>PidFile logs/httpd.pid</default>
152 <contextlist><context>server config</context></contextlist>
153 <modulelist><module>event</module><module>mpm_winnt</module>
154 <module>mpmt_os2</module><module>prefork</module><module>worker</module>
155 </modulelist>
156
157 <usage>
158     <p>La directive <directive>PidFile</directive> permet de d&eacute;finir le
159     ficher dans lequel le serveur
160     enregistre l'identificateur de processus du d&eacute;mon. Si le chemin du
161     fichier n'est pas absolu, il est consid&eacute;r&eacute; comme relatif au chemin
162     d&eacute;fini par la directive <directive
163     module="core">ServerRoot</directive>.</p>
164
165     <example><title>Exemple</title>
166     <highlight language="config">
167       PidFile /var/run/apache.pid
168       </highlight>
169     </example>
170
171     <p>Il est souvent utile de pouvoir envoyer un signal au
172     serveur afin qu'il ferme et ouvre &agrave; nouveau ses journaux
173     d'<directive module="core">erreur</directive> et de <directive
174     module="mod_log_config">transfert</directive>, et recharge son
175     fichier de configuration. Pour ce faire, on envoie un signal SIGHUP
176     (kill -1) &agrave; l'identificateur de processus enregistr&eacute; dans le fichier
177     d&eacute;fini par la directive <directive>PidFile</directive>.</p>
178
179     <p>La directive <directive>PidFile</directive> fait l'objet des
180     m&ecirc;mes avertissements que ceux concernant le chemin d'enregistrement
181     des fichiers journaux et la <a
182     href="../misc/security_tips.html#serverroot">s&eacute;curit&eacute;</a>.</p>
183
184     <note><title>Note</title>
185       <p>Depuis la version 2 du serveur HTTP Apache, nous recommandons de n'utiliser
186       que le script <program>apachectl</program>, ou le script de
187       d&eacute;marrage fourni avec votre syst&egrave;me d'exploitation pour (re)d&eacute;marrer ou
188       arr&ecirc;ter le serveur.</p>
189     </note>
190 </usage>
191 </directivesynopsis>
192
193 <directivesynopsis>
194 <name>Listen</name>
195 <description>Les adresses IP et ports sur lesquels le serveur &eacute;coute</description>
196 <syntax>Listen [<var>adresse IP</var>:]<var>num&eacute;ro port</var>
197 [<var>protocole</var>]</syntax>
198 <contextlist><context>server config</context></contextlist>
199 <modulelist><module>mpm_netware</module><module>mpm_winnt</module>
200 <module>mpmt_os2</module>
201 <module>prefork</module><module>worker</module>
202 <module>event</module>
203 </modulelist>
204 <compatibility>L'argument <var>protocole</var> est support&eacute; depuis la version
205 2.1.5</compatibility>
206
207 <usage>
208     <p>La directive <directive>Listen</directive> permet de signifier &agrave;
209     Apache httpd de ne se mettre &agrave; l'&eacute;coute que sur les adresses IP et ports sp&eacute;cifi&eacute;s ; par
210     d&eacute;faut, le serveur r&eacute;pond aux requ&ecirc;tes en provenance de toutes les
211     interfaces r&eacute;seau. La directive <directive>Listen</directive> est
212     dor&eacute;navant requise, et si elle est absente du fichier de
213     configuration, le serveur refusera de d&eacute;marrer. Ceci constitue un
214     changement par rapport aux versions pr&eacute;c&eacute;dentes d'Apache httpd.</p>
215
216     <p>La directive <directive>Listen</directive> signifie au serveur de
217     n'accepter les requ&ecirc;tes entrantes que vers le port ou le couple
218     adresse-port sp&eacute;cifi&eacute;. Si seulement un port est sp&eacute;cifi&eacute;, le serveur
219     se met &agrave; l'&eacute;coute sur ce port sur toutes les interfaces r&eacute;seau. Si une adresse IP
220     et un port sont sp&eacute;cifi&eacute;s, le serveur va se mettre &agrave; l'&eacute;coute sur ce port sur
221     l'interface r&eacute;seau correspondant &agrave; l'adresse IP.</p>
222
223     <p>On peut utiliser autant de directives
224     <directive>Listen</directive> que n&eacute;cessaire pour sp&eacute;cifier
225     plusieurs adresses et/ou ports &agrave; &eacute;couter. Le serveur r&eacute;pondra aux
226     requ&ecirc;tes vers tous les adresses et ports sp&eacute;cifi&eacute;s.</p>
227
228     <p>Par exemple, pour que le serveur accepte les connexions sur les
229     ports 80 et 8000, utilisez :</p>
230
231     <highlight language="config">
232 Listen 80
233 Listen 8000
234     </highlight>
235
236     <p>Pour que la serveur accepte les connexions sur deux interfaces et
237     ports particuliers, sp&eacute;cifiez :</p>
238
239     <highlight language="config">
240 Listen 192.170.2.1:80
241 Listen 192.170.2.5:8000
242     </highlight>
243
244     <p>Les adressee IPv6 doivent &ecirc;tre entour&eacute;es de crochets, comme dans
245     l'exemple suivant :</p>
246
247     <highlight language="config">
248       Listen [2001:db8::a00:20ff:fea7:ccea]:80
249     </highlight>
250
251     <p>L'argument optionnel <var>protocole</var> n'est pas n&eacute;cessaire
252     dans la plupart des configurations. S'il est absent,
253     <code>https</code> est la valeur par d&eacute;faut pour le port 443 et
254     <code>http</code> l'est pour tous les autres ports. L'argument
255     protocole sert &agrave; d&eacute;terminer quel module doit traiter une requ&ecirc;te, et
256     &agrave; appliquer des optimisations sp&eacute;cifiques &agrave; certains protocoles &agrave;
257     l'aide de la directive <directive
258     module="core">AcceptFilter</directive>.</p>
259
260     <p>La sp&eacute;cification d'un protocole n'est n&eacute;cessaire que si vous
261     utilisez des ports non standards. Par exemple, pour configurer un
262     site en <code>https</code> sur le port 8443 :</p>
263
264     <highlight language="config">
265       Listen 192.170.2.1:8443 https
266     </highlight>
267
268     <note><title>Condition d'erreur</title>
269       Plusieurs directives <directive>Listen</directive> pour les m&ecirc;mes
270       adresse IP/port vont provoquer l'envoi d'un message d'erreur
271       <code>Address already in use</code>.
272     </note>
273
274 </usage>
275 <seealso><a href="../dns-caveats.html">Probl&egrave;mes avec DNS</a></seealso>
276 <seealso><a href="../bind.html">D&eacute;finition des adresses et ports
277 qu'utilise le serveur HTTP Apache</a></seealso>
278 <seealso><a
279 href="http://wiki.apache.org/httpd/CouldNotBindToAddress">Autre
280 discussion &agrave; propos du message d'erreur <code>Address already in
281 use</code>, citant d'autres causes possibles.</a></seealso>
282 </directivesynopsis>
283
284 <directivesynopsis>
285 <name>ListenBackLog</name>
286 <description>Longueur maximale de la liste d'attente des
287 connexions</description>
288 <syntax>ListenBacklog <var>backlog</var></syntax>
289 <default>ListenBacklog 511</default>
290 <contextlist><context>server config</context></contextlist>
291 <modulelist>
292 <module>event</module>
293 <module>mpm_netware</module><module>mpm_winnt</module>
294 <module>mpmt_os2</module><module>prefork</module>
295 <module>worker</module></modulelist>
296
297 <usage>
298     <p>La longueur maximale de la liste d'attente des connexions. En
299     g&eacute;n&eacute;ral, aucune modification n'est n&eacute;cessaire, ni m&ecirc;me souhaitable ;
300     cependant, sur certains syst&egrave;mes, il peut &ecirc;tre n&eacute;cessaire
301     d'en augmenter la valeur en cas d'attaque TCP SYN flood (envoi en
302     masse de requ&ecirc;tes SYN pour saturer le serveur). Voir le param&egrave;tre
303     backlog de l'appel syst&egrave;me <code>listen(2)</code>.</p>
304
305     <p>En fait, l'argument backlog sera souvent limit&eacute; &agrave; une valeur
306     inf&eacute;rieure en fonction du syst&egrave;me d'exploitation. Notez aussi que de
307     nombreux syst&egrave;mes d'exploitation ne tiennent pas vraiment compte de
308     la valeur sp&eacute;cifi&eacute;e pour l'argument backlog, mais s'en inspirent
309     seulement (et choisissent en g&eacute;n&eacute;ral une valeur sup&eacute;rieure).</p>
310 </usage>
311 </directivesynopsis>
312
313 <directivesynopsis>
314 <name>MaxRequestWorkers</name>
315 <description>Nombre maximum de connexions pouvant &ecirc;tre trait&eacute;es
316 simultan&eacute;ment</description>
317 <syntax>MaxRequestWorkers <var>nombre</var></syntax>
318 <default>Voir ci-dessous pour plus de d&eacute;tails</default>
319 <contextlist><context>server config</context></contextlist>
320 <modulelist><module>event</module><module>prefork</module>
321 <module>worker</module>
322 </modulelist>
323
324 <usage>
325     <p>La directive <directive>MaxRequestWorkers</directive> permet de fixer le
326     nombre maximum de requ&ecirc;tes pouvant &ecirc;tre trait&eacute;es simultan&eacute;ment.
327     Si la limite <directive>MaxRequestWorkers</directive> est atteinte, toute
328     tentative de connexion sera normalement mise dans une file
329     d'attente, et ceci jusqu'&agrave; un certain nombre d&eacute;pendant de la
330     directive <directive module="mpm_common">ListenBacklog</directive>.
331     Lorsqu'un processus enfant se lib&egrave;rera suite &agrave; la fin du traitement
332     d'une requ&ecirc;te, la connexion en attente pourra &ecirc;tre trait&eacute;e &agrave; son
333     tour.</p>
334
335     <p>Pour les serveurs non thread&eacute;s (<em>c'est &agrave; dire</em> utilisant
336     <module>prefork</module>), la directive
337     <directive>MaxRequestWorkers</directive> d&eacute;finit alors le nombre maximum de
338     processus enfants qui pourront &ecirc;tre lanc&eacute;s simultan&eacute;ment pour
339     traiter les requ&ecirc;tes. La valeur par d&eacute;faut est <code>256</code> ; si
340     vous l'augmentez, vous devez aussi augmenter la valeur de la
341     directive <directive
342     module="mpm_common">ServerLimit</directive>.</p>
343
344     <p>Pour les serveur thread&eacute;s et hybrides (utilisant <em>par
345     exemple</em> <module>event</module> ou <module>worker</module>),
346     <directive>MaxRequestWorkers</directive> d&eacute;finit alors le nombre total de
347     threads qui seront disponibles pour servir les clients. Dans le
348     cas des MPMs hybrides, la valeur par d&eacute;faut est <code>16</code>
349     (directive <directive
350     module="mpm_common">ServerLimit</directive>) multipli&eacute; par la valeur
351     <code>25</code> (directive <directive module="mpm_common"
352     >ThreadsPerChild</directive>). Par cons&eacute;quent, pour affecter &agrave; la
353     directive <directive>MaxRequestWorkers</directive> une valeur qui requiert
354     plus de 16 processus, vous devez aussi augmenter la valeur de la
355     directive <directive module="mpm_common"
356     >ServerLimit</directive>.</p>
357
358     <p>Le nom de la directive <directive>MaxRequestWorkers</directive>
359     &eacute;tait <directive>MaxClients</directive> avant la version 2.3.13. Cet
360     ancien nom est encore support&eacute;.</p>
361 </usage>
362 </directivesynopsis>
363
364 <directivesynopsis>
365 <name>MaxMemFree</name>
366 <description>Quantit&eacute; maximale de m&eacute;moire que l'allocateur principal est
367 autoris&eacute; &agrave; conserver sans appeler <code>free()</code></description>
368 <syntax>MaxMemFree <var>KOctets</var></syntax>
369 <default>MaxMemFree 2048</default>
370 <contextlist><context>server config</context></contextlist>
371 <modulelist><module>event</module><module>mpm_netware</module>
372 <module>prefork</module><module>worker</module><module>mpm_winnt</module>
373 </modulelist>
374
375 <usage>
376     <p>La directive <directive>MaxMemFree</directive> permet de d&eacute;finir
377     le nombre maximum de KOctets libres que tout allocateur est
378     autoris&eacute; &agrave; conserver sans appeler <code>free()</code>. Dans les MPMs
379     thread&eacute;s, chaque thread poss&egrave;de son propre allocateur. Si elle est
380     d&eacute;finie &agrave; 0, la quantit&eacute; de m&eacute;moire libre que peut conserver un
381     allocateur est illimit&eacute;e.</p>
382 </usage>
383 </directivesynopsis>
384
385 <directivesynopsis>
386 <name>MaxConnectionsPerChild</name>
387 <description>Limite le nombre de connexions qu'un processus enfant va
388 traiter au cours de son fonctionnement</description>
389 <syntax>MaxConnectionsPerChild <var>number</var></syntax>
390 <default>MaxConnectionsPerChild 0</default>
391 <contextlist><context>server config</context></contextlist>
392 <modulelist><module>event</module><module>mpm_netware</module>
393 <module>mpm_winnt</module><module>mpmt_os2</module>
394 <module>prefork</module><module>worker</module></modulelist>
395 <compatibility>Disponible depuis la version 2.3.9 du serveur HTTP
396 Apache. L'ancien nom <code>MaxRequestsPerChild</code> est encore
397 support&eacute;.</compatibility>
398
399 <usage>
400     <p>La directive <directive>MaxConnectionsPerChild</directive> permet de
401     d&eacute;finir le nombre maximum de connexions qu'un processus enfant va
402     pouvoir traiter au cours de son fonctionnement. Lorsqu'il a trait&eacute;
403     <directive>MaxConnectionsPerChild</directive> connexions, le processus
404     enfant est arr&ecirc;t&eacute;. Si <directive>MaxConnectionsPerChild</directive> est
405     d&eacute;finie &agrave; <code>0</code>, il n'y a plus aucune limite sur le nombre
406     de connexions que le processus pourra traiter.</p>
407
408     <p>D&eacute;finir <directive>MaxConnectionsPerChild</directive> &agrave; une valeur
409     non nulle limite la quantit&eacute; de m&eacute;moire qu'un processus peut
410     consommer &agrave; cause de fuites (accidentelles) de m&eacute;moire.</p>
411
412 </usage>
413 </directivesynopsis>
414
415 <directivesynopsis>
416 <name>MaxSpareThreads</name>
417 <description>Nombre maximum de threads inactifs</description>
418 <syntax>MaxSpareThreads <var>nombre</var></syntax>
419 <default>Voir ci-dessous pour plus de d&eacute;tails</default>
420 <contextlist><context>server config</context></contextlist>
421 <modulelist><module>event</module><module>mpm_netware</module>
422 <module>mpmt_os2</module><module>worker</module></modulelist>
423
424 <usage>
425     <p>C'est le nombre maximum de threads inactifs. Les MPMs utilisent
426     cette directive de diff&eacute;rentes mani&egrave;res.</p>
427
428     <p>Pour <module>worker</module>, la d&eacute;finition par d&eacute;faut est
429     <code>MaxSpareThreads 250</code>. Ce MPM g&egrave;re les threads inactifs
430     au niveau du serveur. Si le serveur poss&egrave;de trop de threads
431     inactifs, des processus enfants seront arr&ecirc;t&eacute;s jusqu'&agrave; ce que le
432     nombre de threads inactifs repasse en dessous de cette limite.</p>
433
434     <p>Pour <module>mpm_netware</module>, la d&eacute;finition par d&eacute;faut est
435     <code>MaxSpareThreads 100</code>. Comme ce MPM n'ex&eacute;cute qu'un seul
436     processus, le nombre de processus inactifs est surveill&eacute; au
437     niveau du serveur.</p>
438
439     <p><module>mpmt_os2</module> fonctionne de mani&egrave;re similaire &agrave;
440     <module>mpm_netware</module>. Pour <module>mpmt_os2</module>, la
441     valeur par d&eacute;faut est <code>10</code>.</p>
442
443     <note><title>Contraintes</title>
444       <p>La gamme de valeurs pour <directive>MaxSpareThreads</directive>
445       est limit&eacute;e. Apache httpd corrigera automatiquement cette valeur selon
446       les r&egrave;gles suivantes :</p>
447       <ul>
448         <li>Avec <module>mpm_netware</module>, <directive
449         >MaxSpareThreads</directive> doit &ecirc;tre sup&eacute;rieure &agrave; <directive
450         module="mpm_common">MinSpareThreads</directive>.</li>
451
452         <li>Avec
453         <module>worker</module>, <directive>MaxSpareThreads</directive>
454         doit &ecirc;tre sup&eacute;rieure ou &eacute;gale &agrave; la somme de <directive
455         module="mpm_common">MinSpareThreads</directive> et <directive
456         module="mpm_common">ThreadsPerChild</directive>.</li>
457       </ul>
458     </note>
459 </usage>
460 <seealso><directive module="mpm_common">MinSpareThreads</directive></seealso>
461 <seealso><directive module="mpm_common">StartServers</directive></seealso>
462 <seealso><directive module="prefork">MaxSpareServers</directive></seealso>
463 </directivesynopsis>
464
465 <directivesynopsis>
466 <name>MinSpareThreads</name>
467 <description>Nombre minimum de threads inactifs qui seront disponibles
468 pour pouvoir traiter les pics de requ&ecirc;tes</description>
469 <syntax>MinSpareThreads <var>nombre</var></syntax>
470 <default>Voir ci-dessous pour plus de d&eacute;tails</default>
471 <contextlist><context>server config</context></contextlist>
472 <modulelist><module>event</module><module>mpm_netware</module>
473 <module>mpmt_os2</module><module>worker</module></modulelist>
474
475 <usage>
476     <p>C'est le nombre minimum de threads inactifs pour &ecirc;tre en mesure
477     de traiter les pics de requ&ecirc;tes. Les MPMs utilisent cette directive
478     de diff&eacute;rentes mani&egrave;res.</p>
479
480     <p>Avec <module>worker</module>, la d&eacute;finition par d&eacute;faut est
481     <code>MinSpareThreads 75</code>, et le nombre de threads inactifs
482     est surveill&eacute; au niveau du serveur. Si le serveur ne poss&egrave;de pas
483     assez de threads inactifs, des processus enfants sont cr&eacute;&eacute;s jusqu'&agrave;
484     ce que le nombre de threads inactifs repasse au dessus de
485     <var>nombre</var>.</p>
486
487     <p>Avec <module>mpm_netware</module>, la d&eacute;finition par d&eacute;faut est
488     <code>MinSpareThreads 10</code> et, comme ce MPM n'ex&eacute;cute qu'un
489     seul processus, le nombre de threads est surveill&eacute; au niveau du
490     serveur.</p>
491
492     <p><module>mpmt_os2</module> fonctionne de mani&egrave;re similaire &agrave;
493     <module>mpm_netware</module>. Pour <module>mpmt_os2</module>, la
494     valeur par d&eacute;faut est <code>5</code>.</p>
495
496 </usage>
497 <seealso><directive module="mpm_common">MaxSpareThreads</directive></seealso>
498 <seealso><directive module="mpm_common">StartServers</directive></seealso>
499 <seealso><directive module="prefork">MinSpareServers</directive></seealso>
500 </directivesynopsis>
501
502 <directivesynopsis>
503 <name>ScoreBoardFile</name>
504 <description>Chemin du fichier o&ugrave; sont stock&eacute;es les donn&eacute;es concernant
505 la coordination des processus enfants</description>
506 <syntax>ScoreBoardFile <var>chemin fichier</var></syntax>
507 <default>ScoreBoardFile logs/apache_runtime_status</default>
508 <contextlist><context>server config</context></contextlist>
509 <modulelist><module>event</module><module>mpm_winnt</module>
510 <module>prefork</module><module>worker</module></modulelist>
511
512 <usage>
513     <p>Le serveur HTTP Apache utilise un tableau de bord pour la
514     communication entre le processus parent et les processus enfants.
515     Pour faciliter cette communication, certaines architectures
516     n&eacute;cessitent un fichier. En l'absence de cette directive, donc si
517     aucun nom de fichier n'est sp&eacute;cifi&eacute;, Apache httpd tentera tout
518     d'abord de cr&eacute;er un tableau uniquement en m&eacute;moire (en utilisant la
519     m&eacute;moire partag&eacute;e anonyme) ; et si il n'y parvient pas, il tentera de
520     cr&eacute;er un fichier sur disque (en utilisant la m&eacute;moire partag&eacute;e &agrave; base
521     de fichier). Si cette directive est utilis&eacute;e, Apache httpd cr&eacute;era
522     syst&eacute;matiquement un fichier sur disque.</p>
523
524     <example><title>Exemple</title>
525     <highlight language="config">
526       ScoreBoardFile /var/run/apache_runtime_status
527       </highlight>
528     </example>
529
530     <p>Une m&eacute;moire partag&eacute;e sous forme de fichier est utile pour les
531     applications tierces qui n&eacute;cessitent un acc&egrave;s direct au tableau de
532     bord des processus.</p>
533
534     <p>Si vous utilisez un <directive>ScoreBoardFile</directive>, vous
535     pourrez constater une am&eacute;lioration des performances en le pla&ccedil;ant
536     sur un disque virtuel en RAM. Assurez-vous cependant de tenir compte
537     des m&ecirc;mes avertissements que ceux concernant le chemin du fichier
538     journal et la <a
539     href="../misc/security_tips.html">s&eacute;curit&eacute;</a>.</p>
540 </usage>
541 <seealso><a href="../stopping.html">Arr&ecirc;ter et red&eacute;marrer
542 le serveur HTTP Apache</a></seealso>
543 </directivesynopsis>
544
545 <directivesynopsis>
546 <name>ReceiveBufferSize</name>
547 <description>Taille du tampon TCP en entr&eacute;e</description>
548 <syntax>ReceiveBufferSize <var>octets</var></syntax>
549 <default>ReceiveBufferSize 0</default>
550 <contextlist><context>server config</context></contextlist>
551 <modulelist><module>event</module><module>mpm_netware</module>
552 <module>mpm_winnt</module><module>mpmt_os2</module><module>prefork</module>
553 <module>worker</module></modulelist>
554
555 <usage>
556     <p>Le serveur va fixer la taille du tampon TCP en entr&eacute;e au
557     nombre d'octets sp&eacute;cifi&eacute;.</p>
558
559     <p>Si la directive est d&eacute;finie &agrave; <code>0</code>, le serveur va
560     utiliser la valeur par d&eacute;faut adopt&eacute;e par le syst&egrave;me
561     d'exploitation.</p>
562 </usage>
563 </directivesynopsis>
564
565 <directivesynopsis>
566 <name>SendBufferSize</name>
567 <description>Taille du tampon TCP en sortie</description>
568 <syntax>SendBufferSize <var>octets</var></syntax>
569 <default>SendBufferSize 0</default>
570 <contextlist><context>server config</context></contextlist>
571 <modulelist><module>event</module><module>mpm_netware</module>
572 <module>mpm_winnt</module><module>mpmt_os2</module><module>prefork</module>
573 <module>worker</module></modulelist>
574
575 <usage>
576     <p>D&eacute;finit la taille du tampon TCP en sortie avec le nombre
577     d'octets sp&eacute;cifi&eacute;. Ceci s'av&egrave;re souvent tr&egrave;s utile pour augmenter les
578     valeurs par d&eacute;faut standards du pass&eacute; des syst&egrave;mes d'exploitation
579     pour les transmissions &agrave; grande vitesse et haute densit&eacute; (<em>c'est
580     &agrave; dire</em> de l'ordre de 100ms comme sur les liaisons rapides
581     transcontinentales).</p>
582
583     <p>Si la directive est d&eacute;finie &agrave; <code>0</code>, le serveur va
584     utiliser la valeur par d&eacute;faut adopt&eacute;e par le syst&egrave;me
585     d'exploitation.</p>
586
587     <p>L'am&eacute;lioration des performances des connexions &agrave; grande vitesse
588     et &agrave; temps de latence &eacute;lev&eacute;, peut n&eacute;cessiter
589     une intervention au niveau de la configuration de votre syst&egrave;me
590     d'exploitation.</p>
591
592     <note><p>Sous certains syst&egrave;mes d'exploitation, la modification du
593     comportement TCP via une augmentation de la valeur de
594     <directive>SendBufferSize</directive> risque de ne pas &ecirc;tre
595     perceptible, si la directive <directive
596     module="core">EnableSendfile</directive> n'est pas d&eacute;finie &agrave; OFF.
597     Cette interaction ne s'applique qu'aux fichiers statiques.</p> </note>
598 </usage>
599 </directivesynopsis>
600
601 <directivesynopsis>
602 <name>ServerLimit</name>
603 <description>Limite sup&eacute;rieure de la d&eacute;finition du nombre de
604 processus</description>
605 <syntax>ServerLimit <var>nombre</var></syntax>
606 <default>Voir ci-dessous pour plus de d&eacute;tails</default>
607 <contextlist><context>server config</context></contextlist>
608 <modulelist><module>event</module><module>prefork</module>
609 <module>worker</module></modulelist>
610
611 <usage>
612     <p>Avec le MPM <module>prefork</module>, cette directive d&eacute;finit le
613     nombre maximum que l'on peut affecter &agrave; la directive <directive
614     module="mpm_common">MaxRequestWorkers</directive>, et ceci pour la
615     dur&eacute;e de vie du processus Apache httpd. Avec le
616     MPM <module>worker</module>, cette directive, en combinaison avec
617     <directive module="mpm_common">ThreadLimit</directive>, d&eacute;finit le
618     nombre maximum que l'on peut affecter &agrave; <directive
619     module="mpm_common">MaxRequestWorkers</directive>, et ceci pour la dur&eacute;e de
620     vie du processus Apache httpd. Au cours d'un red&eacute;marrage, vous pouvez
621     modifier la valeur de la directive <directive
622     module="mpm_common">MaxRequestWorkers</directive>, alors que toute
623     tentative de modification de la valeur de la directive <directive
624     module="mpm_common">ServerLimit</directive> sera ignor&eacute;e.</p>
625
626     <p>Cette directive doit &ecirc;tre utilis&eacute;e avec pr&eacute;caution. Si
627     <directive>ServerLimit</directive> est d&eacute;finie &agrave; une valeur beaucoup
628     plus grande que n&eacute;cessaire, de la m&eacute;moire partag&eacute;e suppl&eacute;mentaire
629     sera inutilement allou&eacute;e. Si &agrave; la fois
630     <directive>ServerLimit</directive> et <directive
631     module="mpm_common">MaxRequestWorkers</directive> poss&egrave;dent des valeurs
632     sup&eacute;rieures &agrave; ce que le syst&egrave;me peut supporter, ce dernier peut
633     devenir instable ou Apache httpd peut tout simplement refuser de d&eacute;marrer.</p>
634
635     <p>Avec le MPM <module>prefork</module>, n'utilisez cette directive
636     que si vous devez d&eacute;finir <directive
637     module="mpm_common">MaxRequestWorkers</directive> &agrave; une valeur sup&eacute;rieure &agrave;
638     256 (valeur par d&eacute;faut). N'affectez pas &agrave; la directive <directive
639     module="mpm_common">ServerLimit</directive> une valeur sup&eacute;rieure &agrave;
640     celle que vous avez pr&eacute;vu d'affecter &agrave; la directive <directive
641     module="mpm_common">MaxRequestWorkers</directive>.</p>
642
643     <p>Avec <module>worker</module>, n'utilisez cette directive que si
644     la d&eacute;finition de vos directives <directive
645     module="mpm_common">MaxRequestWorkers</directive> et <directive
646     module="mpm_common">ThreadsPerChild</directive> n&eacute;cessitent plus de
647     16 processus serveurs (valeur par d&eacute;faut). N'affectez pas &agrave; la
648     directive <directive module="mpm_common">ServerLimit</directive> une
649     valeur sup&eacute;rieure au nombre de processus requis pour la d&eacute;finition
650     des directives <directive module="mpm_common">MaxRequestWorkers
651     </directive> et <directive
652     module="mpm_common">ThreadsPerChild</directive>.</p>
653
654     <note><title>Note</title>
655       <p>Il existe une limite de <code>ServerLimit 20000</code> cod&eacute;e en
656       dur dans le serveur (200000 pour le MPM <module>prefork</module>).
657       Ceci est cens&eacute; &eacute;viter les effets d&eacute;sastreux que pourrait provoquer
658       une faute de frappe. Pour d&eacute;passer cette limite, vous devez
659       modifier la valeur de MAX_SERVER_LIMIT dans le fichier source du
660       mpm et recompiler le serveur.</p>
661     </note>
662 </usage>
663 <seealso><a href="../stopping.html">Arr&ecirc;ter et red&eacute;marrer
664 le serveur HTTP Apache</a></seealso>
665 </directivesynopsis>
666
667 <directivesynopsis>
668 <name>StartServers</name>
669 <description>Nombre de processus enfants du serveur cr&eacute;&eacute;s au
670 d&eacute;marrage</description>
671 <syntax>StartServers <var>nombre</var></syntax>
672 <default>Voir ci-dessous pour plus de d&eacute;tails</default>
673 <contextlist><context>server config</context></contextlist>
674 <modulelist><module>event</module><module>mpmt_os2</module>
675 <module>prefork</module><module>worker</module>
676 </modulelist>
677
678 <usage>
679     <p>La directive <directive>StartServers</directive> permet de
680     d&eacute;finir le nombre de processus enfants du serveur cr&eacute;&eacute;s au
681     d&eacute;marrage. Comme le nombre de processus est contr&ocirc;l&eacute; dynamiquement
682     en fonction de la charge (voir <directive
683     module="mpm_common">MinSpareThreads</directive>, <directive
684     module="mpm_common">MaxSpareThreads</directive>, <directive
685     module="prefork">MinSpareServers</directive>, <directive
686     module="prefork">MaxSpareServers</directive>), il n'est en g&eacute;n&eacute;ral
687     pas n&eacute;cessaire d'ajuster ce param&egrave;tre.</p>
688
689     <p>La valeur par d&eacute;faut diff&egrave;re d'un MPM &agrave; l'autre. Pour
690     <module>worker</module>, la d&eacute;finition par d&eacute;faut est
691     <code>StartServers 3</code> ; la valeur par d&eacute;faut est
692     <code>5</code> pour <module>prefork</module> et <code>2</code>
693     pour <module>mpmt_os2</module>.</p>
694 </usage>
695 </directivesynopsis>
696
697 <directivesynopsis>
698 <name>StartThreads</name>
699 <description>Nombre de threads cr&eacute;&eacute;s au d&eacute;marrage</description>
700 <syntax>StartThreads <var>nombre</var></syntax>
701 <default>Voir ci-dessous pour plus de d&eacute;tails</default>
702 <contextlist><context>server config</context></contextlist>
703 <modulelist><module>mpm_netware</module></modulelist>
704
705 <usage>
706     <p>C'est le nombre de threads cr&eacute;&eacute;s au d&eacute;marrage du serveur. Comme
707     le nombre de threads est contr&ocirc;l&eacute; dynamiquement
708     en fonction de la charge (voir <directive
709     module="mpm_common">MinSpareThreads</directive>, <directive
710     module="mpm_common">MaxSpareThreads</directive>, <directive
711     module="prefork">MinSpareServers</directive>, <directive
712     module="prefork">MaxSpareServers</directive>), il n'est en g&eacute;n&eacute;ral
713     pas n&eacute;cessaire d'ajuster ce param&egrave;tre.</p>
714
715     <p>Pour <module>mpm_netware</module>, la d&eacute;finition par d&eacute;faut est
716     <code>StartThreads 50</code> et, comme il n'y a qu'un processus, il
717     s'agit du nombre total de threads cr&eacute;&eacute;s au d&eacute;marrage pour servir les
718     requ&ecirc;tes.</p>
719 </usage>
720 </directivesynopsis>
721
722 <directivesynopsis>
723 <name>ThreadLimit</name>
724 <description>Le nombre de threads maximum que l'on peut d&eacute;finir par
725 processus enfant</description>
726 <syntax>ThreadLimit <var>nombre</var></syntax>
727 <default>Voir ci-dessous pour plus de d&eacute;tails</default>
728 <contextlist><context>server config</context></contextlist>
729 <modulelist><module>event</module><module>mpm_winnt</module>
730 <module>worker</module></modulelist>
731
732 <usage>
733     <p>Cette directive permet de d&eacute;finir le nombre maximum que l'on peut
734     affecter &agrave; la directive <directive
735     module="mpm_common">ThreadsPerChild</directive> pour la dur&eacute;e de vie
736     du processus Apache httpd. La directive  <directive
737     module="mpm_common">ThreadsPerChild</directive> peut &ecirc;tre modifi&eacute;e
738     au cours d'un red&eacute;marrage jusqu'&agrave; la valeur de la directive <directive
739     module="mpm_common">ThreadLimit</directive>, mais toute tentative
740     de modification de la directive <directive
741     module="mpm_common">ThreadLimit</directive> au cours d'un
742     red&eacute;marrage sera ignor&eacute;e.</p>
743
744     <p>L'utilisation de cette directive doit faire l'objet de
745     pr&eacute;cautions particuli&egrave;res. Si <directive>ThreadLimit</directive> est
746     d&eacute;finie &agrave; une valeur tr&egrave;s sup&eacute;rieure &agrave; la directive <directive
747     module="mpm_common">ThreadsPerChild</directive>, de la m&eacute;moire
748     partag&eacute;e suppl&eacute;mentaire sera inutilement allou&eacute;e. Si les directives
749     <directive>ThreadLimit</directive> et <directive
750     module="mpm_common">ThreadsPerChild</directive> sont d&eacute;finies &agrave; des
751     valeurs sup&eacute;rieures &agrave; ce que le syst&egrave;me peut supporter, ce dernier
752     peut devenir instable, ou Apache httpd peut tout simplement refuser de
753     d&eacute;marrer. Ne d&eacute;finissez pas cette directive &agrave; une valeur sup&eacute;rieure
754     &agrave; la valeur maximale que vous pensez affecter &agrave; la directive <directive
755     module="mpm_common">ThreadsPerChild</directive> pour le processus
756     Apache httpd en cours d'ex&eacute;cution.</p>
757
758     <p>La valeur par d&eacute;faut de la directive
759     <directive>ThreadLimit</directive> est <code>1920</code> avec
760     <module>mpm_winnt</module>, et <code>64</code> avec les autres
761     MPMs.</p>
762
763     <note><title>Note</title>
764       <p>Il existe une limite de <code>ThreadLimit 20000</code> (ou
765       <code>ThreadLimit 15000</code> avec <module>mpm_winnt</module>)
766       cod&eacute;e en dur dans le serveur. Ceci est cens&eacute; &eacute;viter les effets
767       d&eacute;sastreux que pourrait provoquer une faute de frappe. Pour
768       d&eacute;passer cette limite, vous devez modifier la valeur de
769       MAX_THREAD_LIMIT dans le fichier source du mpm et recompiler le
770       serveur.</p>
771     </note>
772 </usage>
773 </directivesynopsis>
774
775 <directivesynopsis>
776 <name>ThreadsPerChild</name>
777 <description>Nombre de threads cr&eacute;&eacute;s par chaque processus
778 enfant</description>
779 <syntax>ThreadsPerChild <var>nombre</var></syntax>
780 <default>Voir ci-dessous pour plus de d&eacute;tails</default>
781 <contextlist><context>server config</context></contextlist>
782 <modulelist><module>event</module><module>mpm_winnt</module>
783 <module>worker</module></modulelist>
784
785 <usage>
786     <p>Cette directive permet de d&eacute;finir le nombre de threads que va
787     cr&eacute;er chaque processus enfant. Un processus enfant cr&eacute;e ces threads
788     au d&eacute;marrage et n'en cr&eacute;e plus d'autres par la suite. Si l'on
789     utilise un MPM comme <module>mpm_winnt</module> qui ne lance qu'un
790     processus enfant, ce nombre doit &ecirc;tre suffisamment grand pour
791     supporter la charge du serveur. Avec un MPM comme
792     <module>worker</module> qui lance plusieurs processus enfants, c'est
793     le nombre <em>total</em> de threads qui doit &ecirc;tre suffisamment grand
794     pour supporter la charge du serveur.</p>
795
796     <p>La valeur par d&eacute;faut de la directive
797     <directive>ThreadsPerChild</directive> est <code>64</code> avec
798     <module>mpm_winnt</module>, et <code>25</code> avec les autres
799     MPMs.</p>
800 </usage>
801 </directivesynopsis>
802
803 <directivesynopsis>
804 <name>ThreadStackSize</name>
805 <description>La taille en octets de la pile qu'utilisent les threads qui
806 traitent les connexions clients</description>
807 <syntax>ThreadStackSize <var>taille</var></syntax>
808 <default>65536 sous NetWare; varie en fonction des autres syst&egrave;mes
809 d'exploitation</default>
810 <contextlist><context>server config</context></contextlist>
811 <modulelist><module>event</module><module>mpm_netware</module>
812 <module>mpmt_os2</module><module>mpm_winnt</module><module>worker</module>
813 <module>event</module>
814 </modulelist>
815 <compatibility>Disponible dans les versions 2.1 et sup&eacute;rieures
816 du serveur HTTP Apache</compatibility>
817
818 <usage>
819     <p>La directive <directive>ThreadStackSize</directive> permet de
820     d&eacute;finir la taille de la pile (pour les donn&eacute;es propres) qu'utilisent
821     les threads qui traitent les connexions clients en faisant appel &agrave;
822     des modules. Dans la plupart des cas, la valeur par d&eacute;faut de la
823     taille de la pile du syst&egrave;me d'exploitation convient, mais il existe
824     certaines situations o&ugrave; il peut s'av&eacute;rer n&eacute;cessaire de l'ajuster
825     :</p>
826
827     <ul>
828       <li>Sur les plates-formes qui poss&egrave;dent une valeur par d&eacute;faut de
829       taille de la pile relativement petite (par exemple HP-UX), Apache
830       httpd peut se crasher si l'on utilise certains modules tiers qui
831       poss&egrave;dent un quantit&eacute; de donn&eacute;es propres stock&eacute;es relativement
832       importante. Il se peut que ces m&ecirc;mes modules fonctionnent
833       correctement sur d'autres plate-formes o&ugrave; la valeur par d&eacute;faut de
834       la taille de la pile est sup&eacute;rieure. Ce type de crash peut &ecirc;tre
835       evit&eacute; en d&eacute;finissant <directive>ThreadStackSize</directive> &agrave; une
836       valeur sup&eacute;rieure &agrave; la valeur par d&eacute;faut du syst&egrave;me
837       d'exploitation. Ce type d'ajustement n'est n&eacute;cessaire que si le
838       fournisseur du module tiers en fait mention, ou si le diagnostic
839       d'un crash d'Apache httpd indique que la taille de la pile &eacute;tait trop
840       petite.</li>
841
842       <li>Sur les plates-formes o&ugrave; la taille par d&eacute;faut de la pile des
843       threads est sensiblement sup&eacute;rieure &agrave; la taille n&eacute;cessaire pour la
844       configuration du serveur web, il est possible de disposer d'un
845       plus grand nombre de threads par processus enfant si la directive
846       <directive>ThreadStackSize</directive> est d&eacute;finie &agrave; une valeur
847       inf&eacute;rieure &agrave; la valeur par d&eacute;faut du syst&egrave;me d'exploitation.
848       Cependant, ce
849       type d'ajustement ne doit &ecirc;tre effectu&eacute; que dans un environnement
850       de test permettant de qualifier le serveur web au maximum de ses
851       possibilit&eacute;s, car il peut arriver, dans de rares cas, que des
852       requ&ecirc;tes n&eacute;cessitent une taille de pile sup&eacute;rieure pour pouvoir
853       &ecirc;tre trait&eacute;es. La taille minimale requise pour la pile d&eacute;pend
854       fortement des modules utilis&eacute;s, mais toute modification dans la
855       configuration du serveur web peut invalider la d&eacute;finition courante
856       de la directive <directive>ThreadStackSize</directive>.</li>
857
858       <li>Sous Linux, cette directive ne peut &ecirc;tre utilis&eacute;e que pour
859       augmenter la valeur par defaut de la taille de la pile, car
860       l'appel syst&egrave;me sous-jacent utilise cette valeur comme taille de pile
861       <em>minimale</em>. C'est la limite logicielle (souvent &eacute;lev&eacute;e)
862       pour <code>ulimit -s</code> (8Mo si aucune limite) qui est
863       utilis&eacute;e comme taille de pile par d&eacute;faut.</li>
864     </ul>
865
866     <note>Il est recommand&eacute; de ne pas r&eacute;duire
867     <directive>ThreadStackSize</directive>, &agrave; moins qu'un grand nombre
868     de threads par processus enfant ne soit n&eacute;cessaire. Sur certaines
869     plates-formes (y compris Linux), une valeur de 128000 est d&eacute;j&agrave; trop
870     basse et provoque des crashes avec certains modules courants.</note>
871 </usage>
872 </directivesynopsis>
873
874 </modulesynopsis>