<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>mpm_common - Serveur Apache HTTP Version 2.4</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
<script src="../style/scripts/prettify.min.js" type="text/javascript">
</script>

<link href="../images/favicon.ico" rel="shortcut icon" /></head>
<body>
<div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
<p class="apache">Serveur Apache HTTP Version 2.4</p>
<img alt="" src="../images/feather.png" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.4</a> &gt; <a href="./">Modules</a></div>
<div id="page-content">
<div id="preamble"><h1>Apache MPM : Directives Communes</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../de/mod/mpm_common.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
<a href="../en/mod/mpm_common.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mpm_common.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ja/mod/mpm_common.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../tr/mod/mpm_common.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div>
<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
            anglaise pour les changements récents.</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Une série de directives implémentées par plusieurs
modules multi-processus (MPM)</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>MPM</td></tr></table>
</div>
<div id="quickview"><h3 class="directives">Directives</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif" /> <a href="#coredumpdirectory">CoreDumpDirectory</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#enableexceptionhook">EnableExceptionHook</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#gracefulshutdowntimeout">GracefulShutdownTimeout</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#listen">Listen</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#listenbacklog">ListenBackLog</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#listencoresbucketsratio">ListenCoresBucketsRatio</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#maxconnectionsperchild">MaxConnectionsPerChild</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#maxmemfree">MaxMemFree</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#maxrequestworkers">MaxRequestWorkers</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#maxsparethreads">MaxSpareThreads</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#minsparethreads">MinSpareThreads</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#pidfile">PidFile</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#receivebuffersize">ReceiveBufferSize</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#scoreboardfile">ScoreBoardFile</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#sendbuffersize">SendBufferSize</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#serverlimit">ServerLimit</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#startservers">StartServers</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#startthreads">StartThreads</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#threadlimit">ThreadLimit</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#threadsperchild">ThreadsPerChild</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#threadstacksize">ThreadStackSize</a></li>
</ul>
<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&amp;list_id=144532&amp;product=Apache%20httpd-2&amp;query_format=specific&amp;order=changeddate%20DESC%2Cpriority%2Cbug_severity&amp;component=mpm_common">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&amp;component=mpm_common">Signaler un bug</a></li></ul><h3>Voir aussi</h3>
<ul class="seealso">
<li><a href="#comments_section">Commentaires</a></li></ul></div>

<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="coredumpdirectory" id="coredumpdirectory">Directive</a> <a name="CoreDumpDirectory" id="CoreDumpDirectory">CoreDumpDirectory</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le répertoire dans lequel le serveur HTTP Apache va tenter de se
positionner avant d'effectuer un vidage mémoire</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CoreDumpDirectory <var>répertoire</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Voir ci-dessous pour le répertoire par défaut</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code></td></tr>
</table>
    <p>Cette directive permet de définir le répertoire dans lequel
    Apache httpd va tenter de se positionner avant d'effectuer un vidage
    mémoire sur disque.
    Si votre système d'exploitation est configuré pour créer des
    fichiers de vidage mémoire dans le répertoire de travail des
    processus qui se sont crashés,
    <code class="directive">CoreDumpDirectory</code> est nécessaire pour
    définir un répertoire de travail autre que le répertoire par défaut
    <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>, ce répertoire de
    travail ne devant pas être accessible en écriture par l'utilisateur sous
    lequel le serveur s'exécute.</p>

    <p>Si vous avez besoin d'un vidage mémoire pour le débogage, vous
    pouvez utiliser cette directive pour le placer à un endroit
    différent. Cette directive n'a aucun effet si votre système
    d'exploitation n'est pas configuré pour créer des
    fichiers de vidage mémoire dans le répertoire de travail des
    processus qui se sont crashés.</p>

    <div class="note"><h3>Vidages mémoire sous Linux</h3>
      <p>Si Apache httpd est démarré sous l'utilisateur root puis bascule vers
      un autre utilisateur, le noyau Linux <em>désactive</em> les
      vidages mémoire, même si le répertoire est accessible en écriture au
      processus. Apache httpd (versions 2.0.46 et supérieures) réactive les
      vidages mémoire sous Linux 2.4 et au delà, mais seulement si vous
      définissez une directive <code class="directive">CoreDumpDirectory</code>.</p>
    </div>

    <div class="note">
    <h3>Vidages mémoire sous BSD</h3>
    <p>Pour activer le vidage mémoire des exécutables suid sur les
    systèmes de style BSD (comme FreeBSD), définissez
    <code>kern.sugid_coredump</code> à 1.
    </p>
    </div>

    <div class="note"><h3>Signaux spécifiques</h3>
      <p><code class="directive">CoreDumpDirectory</code> n'est traité qu'à la
      reception d'un certain nombre de signaux , SIGFPE, SIGILL, SIGABORT,
      SIGSEGV, et SIGBUS.</p>
      <p>
      Sur certains systèmes d'exploitation, SIGQUIT provoque aussi un
      vidage mémoire, mais n'est pas traité par les directives
      <code class="directive">CoreDumpDirectory</code> ou
      <code class="directive">EnableExceptionHook</code>, si bien que la
      définition du répertoire d'enregistrement du vidage mémoire est
      entièrement dévolue au système d'exploitation.</p>
    </div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="enableexceptionhook" id="enableexceptionhook">Directive</a> <a name="EnableExceptionHook" id="EnableExceptionHook">EnableExceptionHook</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active un hook ("point d'accrochage logiciel") qui exécute des
gestionnaires d'exception après un crash</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>EnableExceptionHook On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>EnableExceptionHook Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code></td></tr>
</table>
    <p>Pour des raisons de sécurité, cette directive n'est disponible
    que si la compilation du serveur a été configurée avec l'option
    <code>--enable-exception-hook</code>. Elle permet d'activer un hook
    ("point d'accrochage logiciel")
    qui autorise certains modules externes à effectuer un branchement et
    accomplir telle ou telle action après le crash d'un processus
    enfant.</p>

    <p>Deux modules, <code>mod_whatkilledus</code> et
    <code>mod_backtrace</code> utilisent ce hook. Veuillez vous
    référer à la <a href="https://emptyhammock.com/projects/httpd/diag/">page EnableExceptionHook</a> de Jeff Trawick pour plus
    d'informations à leur sujet.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="gracefulshutdowntimeout" id="gracefulshutdowntimeout">Directive</a> <a name="GracefulShutdownTimeout" id="GracefulShutdownTimeout">GracefulShutdownTimeout</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie le délai maximum après lequel le serveur va
s'arrêter dans le cas d'un arrêt "en douceur"</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>GracefulShutdownTimeout <var>seconds</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>GracefulShutdownTimeout 0</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code></td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible dans les versions 2.2 et supérieures</td></tr>
</table>
    <p>La directive <code class="directive">GracefulShutdownTimeout</code>
    permet de spécifier le temps, en secondes, pendant lequel le serveur
    va continuer à fonctionner après avoir reçu un signal
    "graceful-stop" ("Arrêt en douceur"), afin de terminer le traitement
    des connexions en cours.</p>

    <p>Définir cette valeur à zéro signifie au serveur d'attendre
    jusqu'à ce que toutes les requêtes en cours aient été traitées.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="listen" id="listen">Directive</a> <a name="Listen" id="Listen">Listen</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Les adresses IP et ports sur lesquels le serveur écoute</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Listen [<var>adresse IP</var>:]<var>numéro port</var>
[<var>protocole</var>]</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>, <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code></td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>L'argument <var>protocole</var> est supporté depuis la version
2.1.5</td></tr>
</table>
    <p>La directive <code class="directive">Listen</code> permet de signifier à
    Apache httpd de ne se mettre à l'écoute que sur les adresses IP et ports spécifiés ; par
    défaut, le serveur répond aux requêtes en provenance de toutes les
    interfaces réseau. La directive <code class="directive">Listen</code> est
    dorénavant requise, et si elle est absente du fichier de
    configuration, le serveur refusera de démarrer. Ceci constitue un
    changement par rapport aux versions précédentes d'Apache httpd.</p>

    <p>La directive <code class="directive">Listen</code> signifie au serveur de
    n'accepter les requêtes entrantes que vers le port ou le couple
    adresse-port spécifié. Si seulement un port est spécifié, le serveur
    se met à l'écoute sur ce port sur toutes les interfaces réseau. Si une adresse IP
    et un port sont spécifiés, le serveur va se mettre à l'écoute sur ce port sur
    l'interface réseau correspondant à l'adresse IP.</p>

    <p>On peut utiliser autant de directives
    <code class="directive">Listen</code> que nécessaire pour spécifier
    plusieurs adresses et/ou ports à écouter. Le serveur répondra aux
    requêtes vers tous les adresses et ports spécifiés.</p>

    <p>Par exemple, pour que le serveur accepte les connexions sur les
    ports 80 et 8000, utilisez :</p>

    <pre class="prettyprint lang-config">Listen 80
Listen 8000</pre>


    <p>Pour que le serveur accepte les connexions sur deux interfaces et
    ports particuliers, spécifiez :</p>

    <pre class="prettyprint lang-config">Listen 192.170.2.1:80
Listen 192.170.2.5:8000</pre>


    <p>Les adressee IPv6 doivent être entourées de crochets, comme dans
    l'exemple suivant :</p>

    <pre class="prettyprint lang-config">Listen [2001:db8::a00:20ff:fea7:ccea]:80</pre>


    <p>L'argument optionnel <var>protocole</var> n'est pas nécessaire
    dans la plupart des configurations. S'il est absent,
    <code>https</code> est la valeur par défaut pour le port 443 et
    <code>http</code> l'est pour tous les autres ports. L'argument
    protocole sert à déterminer quel module doit traiter une requête, et
    à appliquer des optimisations spécifiques à certains protocoles à
    l'aide de la directive <code class="directive"><a href="../mod/core.html#acceptfilter">AcceptFilter</a></code>.</p>

    <p>La spécification d'un protocole n'est nécessaire que si vous
    utilisez des ports non standards. Par exemple, pour configurer un
    site en <code>https</code> sur le port 8443 :</p>

    <pre class="prettyprint lang-config">Listen 192.170.2.1:8443 https</pre>


    <div class="note"><h3>Condition d'erreur</h3>
      Plusieurs directives <code class="directive">Listen</code> pour les mêmes
      adresse IP/port vont provoquer l'envoi d'un message d'erreur
      <code>Address already in use</code>.
    </div>


<h3>Voir aussi</h3>
<ul>
<li><a href="../dns-caveats.html">Problèmes avec DNS</a></li>
<li><a href="../bind.html">Définition des adresses et ports
qu'utilise le serveur HTTP Apache</a></li>
<li><a href="http://wiki.apache.org/httpd/CouldNotBindToAddress">Autre
discussion à propos du message d'erreur <code>Address already in
use</code>, citant d'autres causes possibles.</a></li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="listenbacklog" id="listenbacklog">Directive</a> <a name="ListenBackLog" id="ListenBackLog">ListenBackLog</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Longueur maximale de la liste d'attente des
connexions</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ListenBacklog <var>backlog</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ListenBacklog 511</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>, <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code></td></tr>
</table>
    <p>La longueur maximale de la liste d'attente des connexions. En
    général, aucune modification n'est nécessaire, ni même souhaitable ;
    cependant, sur certains systèmes, il peut être nécessaire
    d'en augmenter la valeur en cas d'attaque TCP SYN flood (envoi en
    masse de requêtes SYN pour saturer le serveur). Voir le paramètre
    backlog de l'appel système <code>listen(2)</code>.</p>

    <p>En fait, l'argument backlog sera souvent limité à une valeur
    inférieure en fonction du système d'exploitation. Notez aussi que de
    nombreux systèmes d'exploitation ne tiennent pas vraiment compte de
    la valeur spécifiée pour l'argument backlog, mais s'en inspirent
    seulement (et choisissent en général une valeur supérieure).</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="listencoresbucketsratio" id="listencoresbucketsratio">Directive</a> <a name="ListenCoresBucketsRatio" id="ListenCoresBucketsRatio">ListenCoresBucketsRatio</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Rapport entre le nombre de coeurs de processeur activés et
le nombre de segments d'écoute</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ListenCoresBucketsRatio <var>ratio</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ListenCoresBucketsRatio 0 (disabled)</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code></td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.13 du serveur HTTP
Apache, avec un noyau supportant l'option de socket
<code>SO_REUSEPORT</code>, et distribuant uniformément les nouvelles
connexions aux sockets d'écoute des processus (ou threads) qui
l'utilisent (par exemple Linux versions 3.9 et ultérieures, mais pas
l'implémentation courante de <code>SO_REUSEPORT</code> par les
plateformes de type BSD.</td></tr>
</table>
    <p>Vous pouvez utiliser la directive
    <code class="directive">ListenCoresBucketsRatio</code> pour spécifier un
    <var>ratio</var> entre le nombre de coeurs de CPU activés et le
    nombre de segments d'écoute (listeners' buckets) souhaités ; le
    serveur HTTP Apache va alors créer<code>num_cpu_cores / ratio</code>
    segments d'écoute, chacun contenant son propre socket d'écoute
    <code class="directive">Listen</code> sur le ou les mêmes ports ; chaque
    processus enfant sera associé à un seul segment d'écoute (avec une
    distribution de type round-robin des segments à la création des
    processus enfants).</p>

    <div class="note"><h3>Définition du terme coeur de CPU activé ("online")</h3>
    <p>Sous Linux et BSD, un coeur de CPU peut être activé ou désactivé si <a href="https://www.kernel.org/doc/Documentation/cpu-hotplug.txt">Hotplug</a>
    a été configuré ; la directive
    <code class="directive">ListenCoresBucketsRatio</code> doit donc tenir compte de ce
    paramètre pour calculer le nombre de segments d'écoute à créer.</p>
    </div>

    <p>La directive <code class="directive">ListenCoresBucketsRatio</code> peut
    améliorer le support de la montée en charge lorsque l'arrivée de
    nouvelles connexions est/devient un goulot d'étranglement. Le test
    de cette fonctionnalité avec des machines possédant un nombre de
    coeurs de CPU important a permit de constater une amélioration des
    performances significative et des temps de réponse plus courts.</p>

    <p>Pour que cette fonctionnalité soit activée, le nombre de coeurs
    de CPU doit être égal au moins au double du <var>ratio</var>
    spécifié. Si vous spécifiez la valeur recommandée pour
    <var>ratio</var>, à savoir <code>8</code>, le nombre minimum de
    coeurs de processeurs disponibles sera alors de <code>16</code>. La valeur
    optimale de <var>ratio</var> permettant d'obtenir des performances maximales
    doit être calculée pour chaque système cible, en testant plusieurs valeurs
    et en observant les résultats.</p>

    <p>Cette directive influence le calcul des valeurs limites inférieures de
    <code class="directive"><a href="#minsparethreads">MinSpareThreads</a></code> et <code class="directive"><a href="#maxsparethreads">MaxSpareThreads</a></code>. En effet, pour accepter les
    connexions de manière optimale, le nombre de processus enfants doit être un
    multiple du nombre de segments d'écoute.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="maxconnectionsperchild" id="maxconnectionsperchild">Directive</a> <a name="MaxConnectionsPerChild" id="MaxConnectionsPerChild">MaxConnectionsPerChild</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limite le nombre de connexions qu'un processus enfant va
traiter au cours de son fonctionnement</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>MaxConnectionsPerChild <var>number</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>MaxConnectionsPerChild 0</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>, <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code></td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.9 du serveur HTTP
Apache. L'ancien nom <code>MaxRequestsPerChild</code> est encore
supporté.</td></tr>
</table>
    <p>La directive <code class="directive">MaxConnectionsPerChild</code> permet de
    définir le nombre maximum de connexions qu'un processus enfant va
    pouvoir traiter au cours de son fonctionnement. Lorsqu'il a traité
    <code class="directive">MaxConnectionsPerChild</code> connexions, le processus
    enfant est arrêté. Si <code class="directive">MaxConnectionsPerChild</code> est
    définie à <code>0</code>, il n'y a plus aucune limite sur le nombre
    de connexions que le processus pourra traiter.</p>

    <p>Définir <code class="directive">MaxConnectionsPerChild</code> à une valeur
    non nulle limite la quantité de mémoire qu'un processus peut
    consommer à cause de fuites (accidentelles) de mémoire.</p>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="maxmemfree" id="maxmemfree">Directive</a> <a name="MaxMemFree" id="MaxMemFree">MaxMemFree</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Quantité maximale de mémoire que l'allocateur principal est
autorisé à conserver sans appeler <code>free()</code></td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>MaxMemFree <var>KOctets</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>MaxMemFree 2048</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>, <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code></td></tr>
</table>
    <p>La directive <code class="directive">MaxMemFree</code> permet de définir
    le nombre maximum de KOctets libres que tout allocateur est
    autorisé à conserver sans appeler <code>free()</code>. Dans les MPMs
    threadés, chaque thread possède son propre allocateur. Si elle est
    définie à 0, la quantité de mémoire libre que peut conserver un
    allocateur est illimitée.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="maxrequestworkers" id="maxrequestworkers">Directive</a> <a name="MaxRequestWorkers" id="MaxRequestWorkers">MaxRequestWorkers</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre maximum de connexions pouvant être traitées
simultanément</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>MaxRequestWorkers <var>nombre</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Voir ci-dessous pour plus de détails</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code></td></tr>
</table>
    <p>La directive <code class="directive">MaxRequestWorkers</code> permet de fixer le
    nombre maximum de requêtes pouvant être traitées simultanément.
    Si la limite <code class="directive">MaxRequestWorkers</code> est atteinte, toute
    tentative de connexion sera normalement mise dans une file
    d'attente, et ceci jusqu'à un certain nombre dépendant de la
    directive <code class="directive"><a href="#listenbacklog">ListenBacklog</a></code>.
    Lorsqu'un processus enfant se libèrera suite à la fin du traitement
    d'une requête, la connexion en attente pourra être traitée à son
    tour.</p>

    <p>Pour les serveurs non threadés (<em>c'est à dire</em> utilisant
    <code class="module"><a href="../mod/prefork.html">prefork</a></code>), la directive
    <code class="directive">MaxRequestWorkers</code> définit alors le nombre maximum de
    processus enfants qui pourront être lancés simultanément pour
    traiter les requêtes. La valeur par défaut est <code>256</code> ; si
    vous l'augmentez, vous devez aussi augmenter la valeur de la
    directive <code class="directive"><a href="#serverlimit">ServerLimit</a></code>.</p>

    <p>Pour les serveur threadés et hybrides (utilisant <em>par
    exemple</em> <code class="module"><a href="../mod/event.html">event</a></code> ou <code class="module"><a href="../mod/worker.html">worker</a></code>),
    <code class="directive">MaxRequestWorkers</code> définit alors le nombre total de
    threads qui seront disponibles pour servir les clients. Dans le
    cas des MPMs hybrides, la valeur par défaut est <code>16</code>
    (directive <code class="directive"><a href="#serverlimit">ServerLimit</a></code>) multiplié par la valeur
    <code>25</code> (directive <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code>). Par conséquent, pour affecter à la
    directive <code class="directive">MaxRequestWorkers</code> une valeur qui requiert
    plus de 16 processus, vous devez aussi augmenter la valeur de la
    directive <code class="directive"><a href="#serverlimit">ServerLimit</a></code>.</p>

    <p>Le nom de la directive <code class="directive">MaxRequestWorkers</code>
    était <code class="directive">MaxClients</code> avant la version 2.3.13. Cet
    ancien nom est encore supporté.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="maxsparethreads" id="maxsparethreads">Directive</a> <a name="MaxSpareThreads" id="MaxSpareThreads">MaxSpareThreads</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre maximum de threads inactifs</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>MaxSpareThreads <var>nombre</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Voir ci-dessous pour plus de détails</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code></td></tr>
</table>
    <p>C'est le nombre maximum de threads inactifs. Les MPMs utilisent
    cette directive de différentes manières.</p>

    <p>Pour <code class="module"><a href="../mod/worker.html">worker</a></code> et <code class="module"><a href="../mod/event.html">event</a></code>, la définition par défaut est
    <code>MaxSpareThreads 250</code>. Ce MPM gère les threads inactifs
    au niveau du serveur. Si le serveur possède trop de threads
    inactifs, des processus enfants seront arrêtés jusqu'à ce que le
    nombre de threads inactifs repasse en dessous de cette limite. Des
    processus/threads supplémentaires sont susceptibles d'être créés si
    <code class="directive"><a href="#listencoresbucketsratio">ListenCoresBucketsRatio</a></code> est
    activée.</p>

    <p>Pour <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, la définition par défaut est
    <code>MaxSpareThreads 100</code>. Comme ce MPM n'exécute qu'un seul
    processus, le nombre de processus inactifs est surveillé au
    niveau du serveur.</p>

    <p><code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code> fonctionne de manière similaire à
    <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>. Pour <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code>, la
    valeur par défaut est <code>10</code>.</p>

    <div class="note"><h3>Contraintes</h3>
      <p>La gamme de valeurs pour <code class="directive">MaxSpareThreads</code>
      est limitée. Apache httpd corrigera automatiquement cette valeur selon
      les règles suivantes :</p>
      <ul>
        <li>Avec <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, <code class="directive">MaxSpareThreads</code> doit être supérieure à <code class="directive"><a href="#minsparethreads">MinSpareThreads</a></code>.</li>

        <li>Avec
	<code class="module"><a href="../mod/worker.html">worker</a></code> et <code class="module"><a href="../mod/event.html">event</a></code>, <code class="directive">MaxSpareThreads</code>
	doit être supérieure ou égale à la somme de <code class="directive"><a href="#minsparethreads">MinSpareThreads</a></code> et <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code>.</li>
      </ul>
    </div>

<h3>Voir aussi</h3>
<ul>
<li><code class="directive"><a href="#minsparethreads">MinSpareThreads</a></code></li>
<li><code class="directive"><a href="#startservers">StartServers</a></code></li>
<li><code class="directive"><a href="../mod/prefork.html#maxspareservers">MaxSpareServers</a></code></li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="minsparethreads" id="minsparethreads">Directive</a> <a name="MinSpareThreads" id="MinSpareThreads">MinSpareThreads</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre minimum de threads inactifs qui seront disponibles
pour pouvoir traiter les pics de requêtes</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>MinSpareThreads <var>nombre</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Voir ci-dessous pour plus de détails</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code></td></tr>
</table>
    <p>C'est le nombre minimum de threads inactifs pour être en mesure
    de traiter les pics de requêtes. Les MPMs utilisent cette directive
    de différentes manières.</p>

    <p>Avec <code class="module"><a href="../mod/worker.html">worker</a></code> et <code class="module"><a href="../mod/event.html">event</a></code>, la définition par défaut est
    <code>MinSpareThreads 75</code>, et le nombre de threads inactifs
    est surveillé au niveau du serveur. Si le serveur ne possède pas
    assez de threads inactifs, des processus enfants sont créés jusqu'à
    ce que le nombre de threads inactifs repasse au dessus de
    <var>nombre</var>. Des processus/threads supplémentaires peuvent
    être créés si <code class="directive"><a href="#listencoresbucketsratio">ListenCoresBucketsRatio</a></code> est activée.</p>

    <p>Avec <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, la définition par défaut est
    <code>MinSpareThreads 10</code> et, comme ce MPM n'exécute qu'un
    seul processus, le nombre de threads est surveillé au niveau du
    serveur.</p>

    <p><code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code> fonctionne de manière similaire à
    <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>. Pour <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code>, la
    valeur par défaut est <code>5</code>.</p>


<h3>Voir aussi</h3>
<ul>
<li><code class="directive"><a href="#maxsparethreads">MaxSpareThreads</a></code></li>
<li><code class="directive"><a href="#startservers">StartServers</a></code></li>
<li><code class="directive"><a href="../mod/prefork.html#minspareservers">MinSpareServers</a></code></li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="pidfile" id="pidfile">Directive</a> <a name="PidFile" id="PidFile">PidFile</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ficher dans lequel le serveur enregistre l'identificateur
de processus du démon</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>PidFile <var>nom fichier</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>PidFile logs/httpd.pid</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>, <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code></td></tr>
</table>
    <p>La directive <code class="directive">PidFile</code> permet de définir le
    ficher dans lequel le serveur
    enregistre l'identificateur de processus du démon. Si le chemin du
    fichier n'est pas absolu, il est considéré comme relatif au chemin
    défini par la directive <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.</p>

    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">PidFile /var/run/apache.pid</pre>
</div>

    <p>Il est souvent utile de pouvoir envoyer un signal au
    serveur afin qu'il ferme et ouvre à nouveau ses journaux
    d'<code class="directive"><a href="../mod/core.html#erreur">erreur</a></code> et de <code class="directive"><a href="../mod/mod_log_config.html#transfert">transfert</a></code>, et recharge son
    fichier de configuration. Pour ce faire, on envoie un signal SIGHUP
    (kill -1) à l'identificateur de processus enregistré dans le fichier
    défini par la directive <code class="directive">PidFile</code>.</p>

    <p>La directive <code class="directive">PidFile</code> fait l'objet des
    mêmes avertissements que ceux concernant le chemin d'enregistrement
    des fichiers journaux et la <a href="../misc/security_tips.html#serverroot">sécurité</a>.</p>

    <div class="note"><h3>Note</h3>
      <p>Depuis la version 2 du serveur HTTP Apache, nous recommandons de n'utiliser
      que le script <code class="program"><a href="../programs/apachectl.html">apachectl</a></code>, ou le script de
      démarrage fourni avec votre système d'exploitation pour (re)démarrer ou
      arrêter le serveur.</p>
    </div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="receivebuffersize" id="receivebuffersize">Directive</a> <a name="ReceiveBufferSize" id="ReceiveBufferSize">ReceiveBufferSize</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille du tampon TCP en entrée</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ReceiveBufferSize <var>octets</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ReceiveBufferSize 0</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>, <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code></td></tr>
</table>
    <p>Le serveur va fixer la taille du tampon TCP en entrée au
    nombre d'octets spécifié.</p>

    <p>Si la directive est définie à <code>0</code>, le serveur va
    utiliser la valeur par défaut adoptée par le système
    d'exploitation.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="scoreboardfile" id="scoreboardfile">Directive</a> <a name="ScoreBoardFile" id="ScoreBoardFile">ScoreBoardFile</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Chemin du fichier où sont stockées les données concernant
la coordination des processus enfants</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ScoreBoardFile <var>chemin fichier</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ScoreBoardFile logs/apache_runtime_status</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code></td></tr>
</table>
    <p>Le serveur HTTP Apache utilise un tableau de bord pour la
    communication entre le processus parent et les processus enfants.
    Pour faciliter cette communication, certaines architectures
    nécessitent un fichier. En l'absence de cette directive, donc si
    aucun nom de fichier n'est spécifié, Apache httpd tentera tout
    d'abord de créer un tableau uniquement en mémoire (en utilisant la
    mémoire partagée anonyme) ; et si il n'y parvient pas, il tentera de
    créer un fichier sur disque (en utilisant la mémoire partagée à base
    de fichier). Si cette directive est utilisée, Apache httpd créera
    systématiquement un fichier sur disque.</p>

    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ScoreBoardFile /var/run/apache_runtime_status</pre>
</div>

    <p>Une mémoire partagée sous forme de fichier est utile pour les
    applications tierces qui nécessitent un accès direct au tableau de
    bord des processus.</p>

    <p>Si vous utilisez un <code class="directive">ScoreBoardFile</code>, vous
    pourrez constater une amélioration des performances en le plaçant
    sur un disque virtuel en RAM. Assurez-vous cependant de tenir compte
    des mêmes avertissements que ceux concernant le chemin du fichier
    journal et la <a href="../misc/security_tips.html">sécurité</a>.</p>

<h3>Voir aussi</h3>
<ul>
<li><a href="../stopping.html">Arrêter et redémarrer
le serveur HTTP Apache</a></li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="sendbuffersize" id="sendbuffersize">Directive</a> <a name="SendBufferSize" id="SendBufferSize">SendBufferSize</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille du tampon TCP en sortie</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SendBufferSize <var>octets</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SendBufferSize 0</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>, <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code></td></tr>
</table>
    <p>Définit la taille du tampon TCP en sortie avec le nombre
    d'octets spécifié. Ceci s'avère souvent très utile pour augmenter les
    valeurs par défaut standards du passé des systèmes d'exploitation
    pour les transmissions à grande vitesse et haute densité (<em>c'est
    à dire</em> de l'ordre de 100ms comme sur les liaisons rapides
    transcontinentales).</p>

    <p>Si la directive est définie à <code>0</code>, le serveur va
    utiliser la valeur par défaut adoptée par le système
    d'exploitation.</p>

    <p>L'amélioration des performances des connexions à grande vitesse
    et à temps de latence élevé, peut nécessiter
    une intervention au niveau de la configuration de votre système
    d'exploitation.</p>

    <div class="note"><p>Sous certains systèmes d'exploitation, la modification du
    comportement TCP via une augmentation de la valeur de
    <code class="directive">SendBufferSize</code> risque de ne pas être
    perceptible, si la directive <code class="directive"><a href="../mod/core.html#enablesendfile">EnableSendfile</a></code> n'est pas définie à OFF.
    Cette interaction ne s'applique qu'aux fichiers statiques.</p> </div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="serverlimit" id="serverlimit">Directive</a> <a name="ServerLimit" id="ServerLimit">ServerLimit</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limite supérieure de la définition du nombre de
processus</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ServerLimit <var>nombre</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Voir ci-dessous pour plus de détails</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code></td></tr>
</table>
    <p>Avec le MPM <code class="module"><a href="../mod/prefork.html">prefork</a></code>, cette directive définit le
    nombre maximum que l'on peut affecter à la directive <code class="directive"><a href="#maxrequestworkers">MaxRequestWorkers</a></code>, et ceci pour la
    durée de vie du processus Apache httpd. Avec les
    MPMs <code class="module"><a href="../mod/worker.html">worker</a></code> et <code class="module"><a href="../mod/event.html">event</a></code>, cette directive, en combinaison avec
    <code class="directive"><a href="#threadlimit">ThreadLimit</a></code>, définit le
    nombre maximum que l'on peut affecter à <code class="directive"><a href="#maxrequestworkers">MaxRequestWorkers</a></code>, et ceci pour la durée de
    vie du processus Apache httpd. Au cours d'un redémarrage, vous pouvez
    modifier la valeur de la directive <code class="directive"><a href="#maxrequestworkers">MaxRequestWorkers</a></code>, alors que toute
    tentative de modification de la valeur de la directive <code class="directive"><a href="#serverlimit">ServerLimit</a></code> sera ignorée.</p>

    <p>Cette directive doit être utilisée avec précaution. Si
    <code class="directive">ServerLimit</code> est définie à une valeur beaucoup
    plus grande que nécessaire, de la mémoire partagée supplémentaire
    sera inutilement allouée. Si à la fois
    <code class="directive">ServerLimit</code> et <code class="directive"><a href="#maxrequestworkers">MaxRequestWorkers</a></code> possèdent des valeurs
    supérieures à ce que le système peut supporter, ce dernier peut
    devenir instable ou Apache httpd peut tout simplement refuser de démarrer.</p>

    <p>Avec les MPMs <code class="module"><a href="../mod/prefork.html">prefork</a></code> et <code class="module"><a href="../mod/event.html">event</a></code>, n'utilisez cette directive
    que si vous devez définir <code class="directive"><a href="#maxrequestworkers">MaxRequestWorkers</a></code> à une valeur supérieure à
    256 (valeur par défaut). N'affectez pas à la directive <code class="directive"><a href="#serverlimit">ServerLimit</a></code> une valeur supérieure à
    celle que vous avez prévu d'affecter à la directive <code class="directive"><a href="#maxrequestworkers">MaxRequestWorkers</a></code>.</p>

    <p>Avec <code class="module"><a href="../mod/worker.html">worker</a></code>, n'utilisez cette directive que si
    la définition de vos directives <code class="directive"><a href="#maxrequestworkers">MaxRequestWorkers</a></code> et <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code> nécessitent plus de
    16 processus serveurs (valeur par défaut). N'affectez pas à la
    directive <code class="directive"><a href="#serverlimit">ServerLimit</a></code> une
    valeur supérieure au nombre de processus requis pour la définition
    des directives <code class="directive"><a href="#maxrequestworkers">MaxRequestWorkers
    </a></code> et <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code>.</p>

    <div class="note"><h3>Note</h3>
      <p>Il existe une limite de <code>ServerLimit 20000</code> codée en
      dur dans le serveur (200000 pour le MPM <code class="module"><a href="../mod/prefork.html">prefork</a></code>).
      Ceci est censé éviter les effets désastreux que pourrait provoquer
      une faute de frappe. Pour dépasser cette limite, vous devez
      modifier la valeur de MAX_SERVER_LIMIT dans le fichier source du
      mpm et recompiler le serveur.</p>
    </div>

<h3>Voir aussi</h3>
<ul>
<li><a href="../stopping.html">Arrêter et redémarrer
le serveur HTTP Apache</a></li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="startservers" id="startservers">Directive</a> <a name="StartServers" id="StartServers">StartServers</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre de processus enfants du serveur créés au
démarrage</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>StartServers <var>nombre</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Voir ci-dessous pour plus de détails</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code></td></tr>
</table>
    <p>La directive <code class="directive">StartServers</code> permet de
    définir le nombre de processus enfants du serveur créés au
    démarrage. Comme le nombre de processus est contrôlé dynamiquement
    en fonction de la charge (voir <code class="directive"><a href="#minsparethreads">MinSpareThreads</a></code>, <code class="directive"><a href="#maxsparethreads">MaxSpareThreads</a></code>, <code class="directive"><a href="../mod/prefork.html#minspareservers">MinSpareServers</a></code>, <code class="directive"><a href="../mod/prefork.html#maxspareservers">MaxSpareServers</a></code>), il n'est en général
    pas nécessaire d'ajuster ce paramètre.</p>

    <p>La valeur par défaut diffère d'un MPM à l'autre. Pour
    <code class="module"><a href="../mod/worker.html">worker</a></code> et <code class="module"><a href="../mod/event.html">event</a></code>, la définition par défaut est
    <code>StartServers 3</code> ; la valeur par défaut est
    <code>5</code> pour <code class="module"><a href="../mod/prefork.html">prefork</a></code> et <code>2</code>
    pour <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code>.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="startthreads" id="startthreads">Directive</a> <a name="StartThreads" id="StartThreads">StartThreads</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre de threads créés au démarrage</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>StartThreads <var>nombre</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Voir ci-dessous pour plus de détails</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code></td></tr>
</table>
    <p>C'est le nombre de threads créés au démarrage du serveur. Comme
    le nombre de threads est contrôlé dynamiquement
    en fonction de la charge (voir <code class="directive"><a href="#minsparethreads">MinSpareThreads</a></code>, <code class="directive"><a href="#maxsparethreads">MaxSpareThreads</a></code>, <code class="directive"><a href="../mod/prefork.html#minspareservers">MinSpareServers</a></code>, <code class="directive"><a href="../mod/prefork.html#maxspareservers">MaxSpareServers</a></code>), il n'est en général
    pas nécessaire d'ajuster ce paramètre.</p>

    <p>Pour <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, la définition par défaut est
    <code>StartThreads 50</code> et, comme il n'y a qu'un processus, il
    s'agit du nombre total de threads créés au démarrage pour servir les
    requêtes.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="threadlimit" id="threadlimit">Directive</a> <a name="ThreadLimit" id="ThreadLimit">ThreadLimit</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le nombre de threads maximum que l'on peut définir par
processus enfant</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ThreadLimit <var>nombre</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Voir ci-dessous pour plus de détails</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code></td></tr>
</table>
    <p>Cette directive permet de définir le nombre maximum que l'on peut
    affecter à la directive <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code> pour la durée de vie
    du processus Apache httpd. La directive  <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code> peut être modifiée
    au cours d'un redémarrage jusqu'à la valeur de la directive <code class="directive"><a href="#threadlimit">ThreadLimit</a></code>, mais toute tentative
    de modification de la directive <code class="directive"><a href="#threadlimit">ThreadLimit</a></code> au cours d'un
    redémarrage sera ignorée.</p>

    <p>L'utilisation de cette directive doit faire l'objet de
    précautions particulières. Si <code class="directive">ThreadLimit</code> est
    définie à une valeur très supérieure à la directive <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code>, de la mémoire
    partagée supplémentaire sera inutilement allouée. Si les directives
    <code class="directive">ThreadLimit</code> et <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code> sont définies à des
    valeurs supérieures à ce que le système peut supporter, ce dernier
    peut devenir instable, ou Apache httpd peut tout simplement refuser de
    démarrer. Ne définissez pas cette directive à une valeur supérieure
    à la valeur maximale que vous pensez affecter à la directive <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code> pour le processus
    Apache httpd en cours d'exécution.</p>

    <p>La valeur par défaut de la directive
    <code class="directive">ThreadLimit</code> est <code>1920</code> avec
    <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>, et <code>64</code> avec les autres
    MPMs.</p>

    <div class="note"><h3>Note</h3>
      <p>Il existe une limite de <code>ThreadLimit 20000</code> (ou
      <code>ThreadLimit 100000</code> avec <code class="module"><a href="../mod/event.html">event</a></code>,
      <code>ThreadLimit 15000</code> avec <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>)
      codée en dur dans le serveur. Ceci est censé éviter les effets
      désastreux que pourrait provoquer une faute de frappe. Pour
      dépasser cette limite, vous devez modifier la valeur de
      MAX_THREAD_LIMIT dans le fichier source du mpm et recompiler le
      serveur.</p>
    </div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="threadsperchild" id="threadsperchild">Directive</a> <a name="ThreadsPerChild" id="ThreadsPerChild">ThreadsPerChild</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre de threads créés par chaque processus
enfant</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ThreadsPerChild <var>nombre</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Voir ci-dessous pour plus de détails</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code></td></tr>
</table>
    <p>Cette directive permet de définir le nombre de threads que va
    créer chaque processus enfant. Un processus enfant crée ces threads
    au démarrage et n'en crée plus d'autres par la suite. Si l'on
    utilise un MPM comme <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code> qui ne lance qu'un
    processus enfant, ce nombre doit être suffisamment grand pour
    supporter la charge du serveur. Avec un MPM comme
    <code class="module"><a href="../mod/worker.html">worker</a></code> qui lance plusieurs processus enfants, c'est
    le nombre <em>total</em> de threads qui doit être suffisamment grand
    pour supporter la charge du serveur.</p>

    <p>La valeur par défaut de la directive
    <code class="directive">ThreadsPerChild</code> est <code>64</code> avec
    <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>, et <code>25</code> avec les autres
    MPMs.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="threadstacksize" id="threadstacksize">Directive</a> <a name="ThreadStackSize" id="ThreadStackSize">ThreadStackSize</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>La taille en octets de la pile qu'utilisent les threads qui
traitent les connexions clients</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ThreadStackSize <var>taille</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>65536 sous NetWare; varie en fonction des autres systèmes
d'exploitation</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>, <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code></td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible dans les versions 2.1 et supérieures
du serveur HTTP Apache</td></tr>
</table>
    <p>La directive <code class="directive">ThreadStackSize</code> permet de
    définir la taille de la pile (pour les données propres) qu'utilisent
    les threads qui traitent les connexions clients en faisant appel à
    des modules. Dans la plupart des cas, la valeur par défaut de la
    taille de la pile du système d'exploitation convient, mais il existe
    certaines situations où il peut s'avérer nécessaire de l'ajuster
    :</p>

    <ul>
      <li>Sur les plates-formes qui possèdent une valeur par défaut de
      taille de la pile relativement petite (par exemple HP-UX), Apache
      httpd peut se crasher si l'on utilise certains modules tiers qui
      possèdent un quantité de données propres stockées relativement
      importante. Il se peut que ces mêmes modules fonctionnent
      correctement sur d'autres plate-formes où la valeur par défaut de
      la taille de la pile est supérieure. Ce type de crash peut être
      evité en définissant <code class="directive">ThreadStackSize</code> à une
      valeur supérieure à la valeur par défaut du système
      d'exploitation. Ce type d'ajustement n'est nécessaire que si le
      fournisseur du module tiers en fait mention, ou si le diagnostic
      d'un crash d'Apache httpd indique que la taille de la pile était trop
      petite.</li>

      <li>Sur les plates-formes où la taille par défaut de la pile des
      threads est sensiblement supérieure à la taille nécessaire pour la
      configuration du serveur web, il est possible de disposer d'un
      plus grand nombre de threads par processus enfant si la directive
      <code class="directive">ThreadStackSize</code> est définie à une valeur
      inférieure à la valeur par défaut du système d'exploitation.
      Cependant, ce
      type d'ajustement ne doit être effectué que dans un environnement
      de test permettant de qualifier le serveur web au maximum de ses
      possibilités, car il peut arriver, dans de rares cas, que des
      requêtes nécessitent une taille de pile supérieure pour pouvoir
      être traitées. La taille minimale requise pour la pile dépend
      fortement des modules utilisés, mais toute modification dans la
      configuration du serveur web peut invalider la définition courante
      de la directive <code class="directive">ThreadStackSize</code>.</li>

      <li>Sous Linux, cette directive ne peut être utilisée que pour
      augmenter la valeur par defaut de la taille de la pile, car
      l'appel système sous-jacent utilise cette valeur comme taille de pile
      <em>minimale</em>. C'est la limite logicielle (souvent élevée)
      pour <code>ulimit -s</code> (8Mo si aucune limite) qui est
      utilisée comme taille de pile par défaut.</li>
    </ul>

    <div class="note">Il est recommandé de ne pas réduire
    <code class="directive">ThreadStackSize</code>, à moins qu'un grand nombre
    de threads par processus enfant ne soit nécessaire. Sur certaines
    plates-formes (y compris Linux), une valeur de 128000 est déjà trop
    basse et provoque des crashes avec certains modules courants.</div>

</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../de/mod/mpm_common.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
<a href="../en/mod/mpm_common.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mpm_common.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ja/mod/mpm_common.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../tr/mod/mpm_common.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/2.4/mod/mpm_common.html';
(function(w, d) {
    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
        d.write('<div id="comments_thread"><\/div>');
        var s = d.createElement('script');
        s.type = 'text/javascript';
        s.async = true;
        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
    }
    else { 
        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
    }
})(window, document);
//--><!]]></script></div><div id="footer">
<p class="apache">Copyright 2016 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
//--><!]]></script>
</body></html>