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