<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="fr"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>mpm_common - Serveur HTTP Apache 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">
</script>

<link href="../images/favicon.png" rel="shortcut icon"></head>
<body>
<div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p>
<p class="apache">Serveur HTTP Apache Version 2.4</p>
<img alt="" src="../images/feather.png"></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif"></a></div>
<div id="path">
<a href="https://www.apache.org/">Apache</a> &gt; <a href="https://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="https://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>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<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&ccedil;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&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Une s&eacute;rie de directives impl&eacute;ment&eacute;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="#listentcpdeferaccept">ListenTCPDeferAccept</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&egrave;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></div>

<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="coredumpdirectory">Directive <span id="CoreDumpDirectory">CoreDumpDirectory</span> <a title="Lien permanent" href="#coredumpdirectory" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le r&eacute;pertoire dans lequel le serveur HTTP Apache va tenter de se
positionner avant d'effectuer un vidage m&eacute;moire</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CoreDumpDirectory <var>r&eacute;pertoire</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>Voir ci-dessous pour le r&eacute;pertoire par d&eacute;faut</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</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&eacute;finir le r&eacute;pertoire dans lequel
    Apache httpd va tenter de se positionner avant d'effectuer un vidage
    m&eacute;moire sur disque.
    Si votre syst&egrave;me d'exploitation est configur&eacute; pour cr&eacute;er des
    fichiers de vidage m&eacute;moire dans le r&eacute;pertoire de travail des
    processus qui se sont crash&eacute;s,
    <code class="directive">CoreDumpDirectory</code> est n&eacute;cessaire pour
    d&eacute;finir un r&eacute;pertoire de travail autre que le r&eacute;pertoire par d&eacute;faut
    <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>, ce r&eacute;pertoire de
    travail ne devant pas &ecirc;tre accessible en &eacute;criture par l'utilisateur sous
    lequel le serveur s'ex&eacute;cute.</p>

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

    <div class="warning">
      <h3>Note de s&eacute;curit&eacute; pour les syst&egrave;mes de type Linux</h3>

      <p>Utiliser cette directive sous Linux peut permettre aux autres processus
      du syst&egrave;me s'ex&eacute;cutant avec les m&ecirc;me privil&egrave;ges (comme les scripts CGI) de
      se rattacher aux processus httpd enfants via l'appel syst&egrave;me
      <code>ptrace</code>. La protection contre certaines attaques engageant la
      s&eacute;curit&eacute; peut s'en trouver affect&eacute;e. Il est par cons&eacute;quent d&eacute;conseill&eacute;
      d'utiliser cette directive sur les syst&egrave;mes en production.</p>
    </div>

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

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

    <div class="note"><h3>Signaux sp&eacute;cifiques</h3>
      <p><code class="directive">CoreDumpDirectory</code> n'est trait&eacute; qu'&agrave; la
      reception d'un certain nombre de signaux , SIGFPE, SIGILL, SIGABORT,
      SIGSEGV, et SIGBUS.</p>
      <p>
      Sur certains syst&egrave;mes d'exploitation, SIGQUIT provoque aussi un
      vidage m&eacute;moire, mais n'est pas trait&eacute; par les directives
      <code class="directive">CoreDumpDirectory</code> ou
      <code class="directive">EnableExceptionHook</code>, si bien que la
      d&eacute;finition du r&eacute;pertoire d'enregistrement du vidage m&eacute;moire est
      enti&egrave;rement d&eacute;volue au syst&egrave;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 id="enableexceptionhook">Directive <span id="EnableExceptionHook">EnableExceptionHook</span> <a title="Lien permanent" href="#enableexceptionhook" class="permalink">&para;</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&eacute;cute des
gestionnaires d'exception apr&egrave;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&eacute;faut:</a></th><td><code>EnableExceptionHook Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</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&eacute;curit&eacute;, cette directive n'est disponible
    que si la compilation du serveur a &eacute;t&eacute; configur&eacute;e avec l'option
    <code>--enable-exception-hook</code>. Elle permet d'activer un hook
    ("point d'accrochage logiciel")
    qui autorise certains modules externes &agrave; effectuer un branchement et
    accomplir telle ou telle action apr&egrave;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&eacute;f&eacute;rer &agrave; la <a href="https://emptyhammock.com/projects/httpd/diag/">page EnableExceptionHook</a> de Jeff Trawick pour plus
    d'informations &agrave; 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 id="gracefulshutdowntimeout">Directive <span id="GracefulShutdownTimeout">GracefulShutdownTimeout</span> <a title="Lien permanent" href="#gracefulshutdowntimeout" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sp&eacute;cifie le d&eacute;lai maximum apr&egrave;s lequel le serveur va
s'arr&ecirc;ter dans le cas d'un arr&ecirc;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&eacute;faut:</a></th><td><code>GracefulShutdownTimeout 0</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</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&eacute;:</a></th><td>Disponible dans les versions 2.2 et sup&eacute;rieures</td></tr>
</table>
    <p>La directive <code class="directive">GracefulShutdownTimeout</code>
    permet de sp&eacute;cifier le temps, en secondes, pendant lequel le serveur
    va continuer &agrave; fonctionner apr&egrave;s avoir re&ccedil;u un signal
    "graceful-stop" ("Arr&ecirc;t en douceur"), afin de terminer le traitement
    des connexions en cours.</p>

    <p>D&eacute;finir cette valeur &agrave; z&eacute;ro signifie au serveur d'attendre
    jusqu'&agrave; ce que toutes les requ&ecirc;tes en cours aient &eacute;t&eacute; trait&eacute;es.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="listen">Directive <span id="Listen">Listen</span> <a title="Lien permanent" href="#listen" class="permalink">&para;</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 &eacute;coute</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Listen [<var>adresse IP</var>:]<var>num&eacute;ro port</var>
[<var>protocole</var>]</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</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&eacute;:</a></th><td>L'argument <var>protocole</var> est support&eacute; depuis la version
2.1.5</td></tr>
</table>
    <p>La directive <code class="directive">Listen</code> permet de signifier &agrave;
    Apache httpd de ne se mettre &agrave; l'&eacute;coute que sur les adresses IP et ports sp&eacute;cifi&eacute;s ; par
    d&eacute;faut, le serveur r&eacute;pond aux requ&ecirc;tes en provenance de toutes les
    interfaces r&eacute;seau. La directive <code class="directive">Listen</code> est
    dor&eacute;navant requise, et si elle est absente du fichier de
    configuration, le serveur refusera de d&eacute;marrer. Ceci constitue un
    changement par rapport aux versions pr&eacute;c&eacute;dentes d'Apache httpd.</p>

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

    <p>On peut utiliser autant de directives
    <code class="directive">Listen</code> que n&eacute;cessaire pour sp&eacute;cifier
    plusieurs adresses et/ou ports &agrave; &eacute;couter. Le serveur r&eacute;pondra aux
    requ&ecirc;tes vers tous les adresses et ports sp&eacute;cifi&eacute;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&eacute;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 &ecirc;tre entour&eacute;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&eacute;cessaire
    dans la plupart des configurations. S'il est absent,
    <code>https</code> est la valeur par d&eacute;faut pour le port 443 et
    <code>http</code> l'est pour tous les autres ports. L'argument
    protocole sert &agrave; d&eacute;terminer quel module doit traiter une requ&ecirc;te, et
    &agrave; appliquer des optimisations sp&eacute;cifiques &agrave; certains protocoles &agrave;
    l'aide de la directive <code class="directive"><a href="../mod/core.html#acceptfilter">AcceptFilter</a></code>.</p>

    <p>La sp&eacute;cification d'un protocole n'est n&eacute;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&ecirc;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&egrave;mes avec DNS</a></li>
<li><a href="../bind.html">D&eacute;finition des adresses et ports
qu'utilise le serveur HTTP Apache</a></li>
<li><a href="https://cwiki.apache.org/confluence/display/httpd/CouldNotBindToAddress">Autre
discussion &agrave; 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 id="listenbacklog">Directive <span id="ListenBackLog">ListenBackLog</span> <a title="Lien permanent" href="#listenbacklog" class="permalink">&para;</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&eacute;faut:</a></th><td><code>ListenBackLog 511</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</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&eacute;n&eacute;ral, aucune modification n'est n&eacute;cessaire, ni m&ecirc;me souhaitable ;
    cependant, sur certains syst&egrave;mes, il peut &ecirc;tre n&eacute;cessaire
    d'en augmenter la valeur en cas d'attaque TCP SYN flood (envoi en
    masse de requ&ecirc;tes SYN pour saturer le serveur). Voir le param&egrave;tre
    backlog de l'appel syst&egrave;me <code>listen(2)</code>.</p>

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

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="listencoresbucketsratio">Directive <span id="ListenCoresBucketsRatio">ListenCoresBucketsRatio</span> <a title="Lien permanent" href="#listencoresbucketsratio" class="permalink">&para;</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&eacute;s et
le nombre de segments d'&eacute;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&eacute;faut:</a></th><td><code>ListenCoresBucketsRatio 0 (disabled)</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</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&eacute;:</a></th><td>Disponible &agrave; 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&eacute;ment les nouvelles
connexions aux sockets d'&eacute;coute des processus (ou threads) qui
l'utilisent (par exemple Linux versions 3.9 et ult&eacute;rieures, mais pas
l'impl&eacute;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&eacute;cifier un
    <var>ratio</var> entre le nombre de coeurs de CPU activ&eacute;s et le nombre de
    segments d'&eacute;coute (listeners' buckets) souhait&eacute;s ; le serveur HTTP Apache va
    alors cr&eacute;er<code>num_cpu_cores / ratio</code> segments d'&eacute;coute, chacun
    contenant son propre socket d'&eacute;coute <code class="directive"><a href="#listen">Listen</a></code> sur le ou les m&ecirc;mes ports ; chaque
    processus enfant sera associ&eacute; &agrave; un seul segment d'&eacute;coute (avec une
    distribution de type round-robin des segments &agrave; la cr&eacute;ation des processus
    enfants).</p>

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

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

    <p>Pour que cette fonctionnalit&eacute; soit activ&eacute;e, le nombre de coeurs
    de CPU doit &ecirc;tre &eacute;gal au moins au double du <var>ratio</var>
    sp&eacute;cifi&eacute;. Si vous sp&eacute;cifiez la valeur recommand&eacute;e pour
    <var>ratio</var>, &agrave; 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 &ecirc;tre calcul&eacute;e pour chaque syst&egrave;me cible, en testant plusieurs valeurs
    et en observant les r&eacute;sultats.</p>

    <p>Cette directive influence le calcul des valeurs limites inf&eacute;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&egrave;re optimale, le nombre de processus enfants doit &ecirc;tre un
    multiple du nombre de segments d'&eacute;coute.</p>

    <div class="note">
    <h3>Cas o&ugrave; plusieurs <code class="directive">Listen</code>ers ou serveurs HTTP
    Apache partagent la m&ecirc;me adresse IP et port</h3>
    <p>La d&eacute;finition de l'option <code>SO_REUSEPORT</code> pour les sockets
    d'&eacute;coute permet &agrave; plusieurs processus (partageant le m&ecirc;me <code>EUID</code>,
    par exemple <code>root</code>) de se rattacher &agrave; la m&ecirc;me adresse IP et port,
    sans obtenir l'erreur de rattachement que le syst&egrave;me g&eacute;n&egrave;re habituellement
    lorsque ce cas se produit.</p>
    <p>Cela signifie aussi que plusieurs instances d'Apache httpd configur&eacute;es
    avec le m&ecirc;me <code>IP:port</code> et avec une valeur
    <code class="directive">ListenCoresBucketsRatio</code> positive pourraient d&eacute;marrer
    sans erreur, et fonctionner ensuite avec une r&eacute;partition uniforme des
    connexions entrantes sur ces diff&eacute;rentes instances (ce n'est PAS une
    recommandation et ne constitue pas un usage appropri&eacute; &agrave; tous les cas, mais
    juste un avertissement sur le fait qu'un v&eacute;ritable probl&egrave;me de rattachement
    multiple &agrave; un <code>IP:port</code> pourrait alors &ecirc;tre occult&eacute;).</p>
    <p>Au sein d'une m&ecirc;me instance, Apache httpd v&eacute;rifie la pr&eacute;sence de
    directives <code class="directive">Listen</code> multiples avec la m&ecirc;me adresse IP
    (ou nom d'h&ocirc;te) et le m&ecirc;me port, et refuse de d&eacute;marrer si c'est le cas, ce
    qui permet d'&eacute;viter la cr&eacute;ation de segments d'&eacute;coute dupliqu&eacute;s qui seraient
    du coup inutiles et affecteraient les performances. Cependant, il ne peut
    pas (et n'essaiera pas de le faire) intercepter tous les cas possibles de
    recouvrement (comme un nom d'h&ocirc;te correspondant &agrave; une adresse IP utilis&eacute;e
    quelque part ailleurs).</p>
    </div>
    
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="listentcpdeferaccept">Directive <span id="ListenTCPDeferAccept">ListenTCPDeferAccept</span> <a title="Lien permanent" href="#listentcpdeferaccept" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Valeur de l'option de socket TCP_DEFER_ACCEPT si elle est
d&eacute;finie</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ListenTCPDeferAccept <var>integer</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">D&eacute;faut:</a></th><td><code>ListenTCPDeferAccept 30</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</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&eacute;:</a></th><td>Disponible &agrave; partir de la version 2.5.1 du serveur HTTP Apache</td></tr>
</table>
    <p>La valeur sp&eacute;cifi&eacute;e ici est d&eacute;finie comme valeur de l'option de socket
    <code>TCP_DEFER_ACCEPT</code> si cette derni&egrave;re est d&eacute;finie sur le socket
    d'&eacute;coute. Cela se produit sous Linux lorsque la directive <code class="directive"><a href="../mod/core.html#acceptfilter">AcceptFilter</a></code> est d&eacute;finie &agrave; toute autre valeur que
    <code>none</code>. Dans tous les autres cas, ce r&eacute;glage est ignor&eacute;. Pour
    plus de d&eacute;tails, voir la page de manuel de <a href="http://man7.org/linux/man-pages/man7/tcp.7.html">tcp(7)</a> sous
    Linux.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="maxconnectionsperchild">Directive <span id="MaxConnectionsPerChild">MaxConnectionsPerChild</span> <a title="Lien permanent" href="#maxconnectionsperchild" class="permalink">&para;</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&eacute;faut:</a></th><td><code>MaxConnectionsPerChild 0</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</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&eacute;:</a></th><td>Disponible depuis la version 2.3.9 du serveur HTTP
Apache. L'ancien nom <code>MaxRequestsPerChild</code> est encore
support&eacute;.</td></tr>
</table>
    <p>La directive <code class="directive">MaxConnectionsPerChild</code> permet de
    d&eacute;finir le nombre maximum de connexions qu'un processus enfant va
    pouvoir traiter au cours de son fonctionnement. Lorsqu'il a trait&eacute;
    <code class="directive">MaxConnectionsPerChild</code> connexions, le processus
    enfant est arr&ecirc;t&eacute;. Si <code class="directive">MaxConnectionsPerChild</code> est
    d&eacute;finie &agrave; <code>0</code>, il n'y a plus aucune limite sur le nombre
    de connexions que le processus pourra traiter.</p>

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


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="maxmemfree">Directive <span id="MaxMemFree">MaxMemFree</span> <a title="Lien permanent" href="#maxmemfree" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Quantit&eacute; maximale de m&eacute;moire que l'allocateur principal est
autoris&eacute; &agrave; 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&eacute;faut:</a></th><td><code>MaxMemFree 2048</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</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&eacute;finir
    le nombre maximum de KOctets libres que tout allocateur est
    autoris&eacute; &agrave; conserver sans appeler <code>free()</code>. Dans les MPMs
    thread&eacute;s, chaque thread poss&egrave;de son propre allocateur. Si elle est
    d&eacute;finie &agrave; 0, la quantit&eacute; de m&eacute;moire libre que peut conserver un
    allocateur est illimit&eacute;e.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="maxrequestworkers">Directive <span id="MaxRequestWorkers">MaxRequestWorkers</span> <a title="Lien permanent" href="#maxrequestworkers" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre maximum de connexions pouvant &ecirc;tre trait&eacute;es
simultan&eacute;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&eacute;faut:</a></th><td><code>Voir ci-dessous pour plus de d&eacute;tails</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</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&ecirc;tes pouvant &ecirc;tre trait&eacute;es simultan&eacute;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'&agrave; un certain nombre d&eacute;pendant de la
    directive <code class="directive"><a href="#listenbacklog">ListenBacklog</a></code>.
    Lorsqu'un processus enfant se lib&egrave;rera suite &agrave; la fin du traitement
    d'une requ&ecirc;te, la connexion en attente pourra &ecirc;tre trait&eacute;e &agrave; son
    tour.</p>

    <p>Pour les serveurs non thread&eacute;s (<em>c'est &agrave; dire</em> utilisant
    <code class="module"><a href="../mod/prefork.html">prefork</a></code>), la directive
    <code class="directive">MaxRequestWorkers</code> d&eacute;finit alors le nombre maximum de
    processus enfants qui pourront &ecirc;tre lanc&eacute;s simultan&eacute;ment pour
    traiter les requ&ecirc;tes. La valeur par d&eacute;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&eacute;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&eacute;finit alors le nombre total de
    threads qui seront disponibles pour servir les clients. Pour les MPMs
    hybrides et thread&eacute;s, la valeur par d&eacute;faut est <code>16</code> (directive
    <code class="directive"><a href="#serverlimit">ServerLimit</a></code>) multipli&eacute; par la
    valeur <code>25</code> (directive <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code>). Par cons&eacute;quent, pour affecter &agrave; 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>Pour les MPMs thread&eacute;s et hybrides, la valeur de la directive
    <code class="directive">MaxRequestWorkers</code> doit sup&eacute;rieure ou &eacute;gale &agrave; celle de
    la directive <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code> et
    doit &ecirc;tre un multiple entier de cette derni&egrave;re. Si elle n&rsquo;est pas un
    multiple de cette derni&egrave;re, le serveur l&rsquo;arrondit par le bas au d&eacute;marrage au
    multiple le plus proche et journalise un avertissement.</p>

    <div class="example"><h3>Avertissement&nbsp;: MaxRequestWorkers trop petit</h3><p><code>
    WARNING: MaxRequestWorkers of 10 is less than ThreadsPerChild
    of 25, increasing to 25. MaxRequestWorkers must be at least as
    large as the number of threads in a single server.
    </code></p></div>

    <div class="example"><h3>Avertissement&nbsp;: MaxRequestWorkers n&rsquo;est pas un multiple de
    ThreadsPerChild</h3><p><code>
    WARNING: MaxRequestWorkers of 90 is not an integer multiple of
    ThreadsPerChild of 25, decreasing to nearest multiple 75, for a
    maximum of 3 servers.
    </code></p></div>

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

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="maxsparethreads">Directive <span id="MaxSpareThreads">MaxSpareThreads</span> <a title="Lien permanent" href="#maxsparethreads" class="permalink">&para;</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&eacute;faut:</a></th><td><code>Voir ci-dessous pour plus de d&eacute;tails</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</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&eacute;rentes mani&egrave;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&eacute;finition par d&eacute;faut est
    <code>MaxSpareThreads 250</code>. Ce MPM g&egrave;re les threads inactifs
    au niveau du serveur. Si le serveur poss&egrave;de trop de threads
    inactifs, des processus enfants seront arr&ecirc;t&eacute;s jusqu'&agrave; ce que le
    nombre de threads inactifs repasse en dessous de cette limite. Des
    processus/threads suppl&eacute;mentaires sont susceptibles d'&ecirc;tre cr&eacute;&eacute;s si
    <code class="directive"><a href="#listencoresbucketsratio">ListenCoresBucketsRatio</a></code> est
    activ&eacute;e.</p>

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

    <p><code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code> fonctionne de mani&egrave;re similaire &agrave;
    <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&eacute;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&eacute;e. Apache httpd corrigera automatiquement cette valeur selon
      les r&egrave;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 &ecirc;tre sup&eacute;rieure &agrave; <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 &ecirc;tre sup&eacute;rieure ou &eacute;gale &agrave; 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 id="minsparethreads">Directive <span id="MinSpareThreads">MinSpareThreads</span> <a title="Lien permanent" href="#minsparethreads" class="permalink">&para;</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&ecirc;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&eacute;faut:</a></th><td><code>Voir ci-dessous pour plus de d&eacute;tails</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</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 &ecirc;tre en mesure
    de traiter les pics de requ&ecirc;tes. Les MPMs utilisent cette directive
    de diff&eacute;rentes mani&egrave;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&eacute;finition par d&eacute;faut est
    <code>MinSpareThreads 75</code>, et le nombre de threads inactifs
    est surveill&eacute; au niveau du serveur. Si le serveur ne poss&egrave;de pas
    assez de threads inactifs, des processus enfants sont cr&eacute;&eacute;s jusqu'&agrave;
    ce que le nombre de threads inactifs repasse au dessus de
    <var>nombre</var>. Des processus/threads suppl&eacute;mentaires peuvent
    &ecirc;tre cr&eacute;&eacute;s si <code class="directive"><a href="#listencoresbucketsratio">ListenCoresBucketsRatio</a></code> est activ&eacute;e.</p>

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

    <p><code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code> fonctionne de mani&egrave;re similaire &agrave;
    <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&eacute;faut est <code>5</code>.</p>

    <p>La valeur de la directive <code class="directive">MinSpareThreads</code> doit
    &ecirc;tre sup&eacute;rieure ou &eacute;gale &agrave; 1. Une valeur inf&eacute;rieure &agrave; 1 sera automatiquement
    augment&eacute;e &agrave; 1 et un avertissement sera journalis&eacute;.</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 id="pidfile">Directive <span id="PidFile">PidFile</span> <a title="Lien permanent" href="#pidfile" class="permalink">&para;</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&eacute;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&eacute;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 globale</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&eacute;finir le
    ficher dans lequel le serveur
    enregistre l'identificateur de processus du d&eacute;mon. Si le chemin du
    fichier n'est pas absolu, il est consid&eacute;r&eacute; comme relatif au chemin
    d&eacute;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 &agrave; 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) &agrave; l'identificateur de processus enregistr&eacute; dans le fichier
    d&eacute;fini par la directive <code class="directive">PidFile</code>.</p>

    <p>La directive <code class="directive">PidFile</code> fait l'objet des
    m&ecirc;mes avertissements que ceux concernant le chemin d'enregistrement
    des fichiers journaux et la <a href="../misc/security_tips.html#serverroot">s&eacute;curit&eacute;</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&eacute;marrage fourni avec votre syst&egrave;me d'exploitation pour (re)d&eacute;marrer ou
      arr&ecirc;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 id="receivebuffersize">Directive <span id="ReceiveBufferSize">ReceiveBufferSize</span> <a title="Lien permanent" href="#receivebuffersize" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille du tampon TCP en entr&eacute;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&eacute;faut:</a></th><td><code>ReceiveBufferSize 0</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</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&eacute;e au
    nombre d'octets sp&eacute;cifi&eacute;.</p>

    <p>Si la directive est d&eacute;finie &agrave; <code>0</code>, le serveur va utiliser la
    valeur par d&eacute;faut adopt&eacute;e par le syst&egrave;me d'exploitation. Sinon, elle doit
    &ecirc;tre sup&eacute;rieure ou &eacute;gale &agrave; <code>512</code>.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="scoreboardfile">Directive <span id="ScoreBoardFile">ScoreBoardFile</span> <a title="Lien permanent" href="#scoreboardfile" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Chemin du fichier o&ugrave; sont stock&eacute;es les donn&eacute;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&eacute;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 globale</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&eacute;cessitent un fichier. En l'absence de cette directive, donc si
    aucun nom de fichier n'est sp&eacute;cifi&eacute;, Apache httpd tentera tout
    d'abord de cr&eacute;er un tableau uniquement en m&eacute;moire (en utilisant la
    m&eacute;moire partag&eacute;e anonyme) ; et si il n'y parvient pas, il tentera de
    cr&eacute;er un fichier sur disque (en utilisant la m&eacute;moire partag&eacute;e &agrave; base
    de fichier). Si cette directive est utilis&eacute;e, Apache httpd cr&eacute;era
    syst&eacute;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&eacute;moire partag&eacute;e sous forme de fichier est utile pour les
    applications tierces qui n&eacute;cessitent un acc&egrave;s direct au tableau de
    bord des processus.</p>

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

<h3>Voir aussi</h3>
<ul>
<li><a href="../stopping.html">Arr&ecirc;ter et red&eacute;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 id="sendbuffersize">Directive <span id="SendBufferSize">SendBufferSize</span> <a title="Lien permanent" href="#sendbuffersize" class="permalink">&para;</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&eacute;faut:</a></th><td><code>SendBufferSize 0</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</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&eacute;finit la taille du tampon TCP en sortie avec le nombre
    d'octets sp&eacute;cifi&eacute;. Ceci s'av&egrave;re souvent tr&egrave;s utile pour augmenter les
    valeurs par d&eacute;faut standards du pass&eacute; des syst&egrave;mes d'exploitation
    pour les transmissions &agrave; grande vitesse et haute densit&eacute; (<em>c'est
    &agrave; dire</em> de l'ordre de 100ms comme sur les liaisons rapides
    transcontinentales).</p>

    <p>Si la directive est d&eacute;finie &agrave; <code>0</code>, le serveur va utiliser la
    valeur par d&eacute;faut adopt&eacute;e par le syst&egrave;me d'exploitation. Sinon, elle doit
    &ecirc;tre sup&eacute;rieure ou &eacute;gale &agrave; <code>512</code>.</p>

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

    <div class="note"><p>Sous certains syst&egrave;mes d'exploitation, la modification du
    comportement TCP via une augmentation de la valeur de
    <code class="directive">SendBufferSize</code> risque de ne pas &ecirc;tre
    perceptible, si la directive <code class="directive"><a href="../mod/core.html#enablesendfile">EnableSendfile</a></code> n'est pas d&eacute;finie &agrave; 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 id="serverlimit">Directive <span id="ServerLimit">ServerLimit</span> <a title="Lien permanent" href="#serverlimit" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limite sup&eacute;rieure de la d&eacute;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&eacute;faut:</a></th><td><code>Voir ci-dessous pour plus de d&eacute;tails</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</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&eacute;finit le
    nombre maximum que l'on peut affecter &agrave; la directive <code class="directive"><a href="#maxrequestworkers">MaxRequestWorkers</a></code>, et ceci pour la
    dur&eacute;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&eacute;finit le
    nombre maximum que l'on peut affecter &agrave; <code class="directive"><a href="#maxrequestworkers">MaxRequestWorkers</a></code>, et ceci pour la dur&eacute;e de
    vie du processus Apache httpd. Avec le MPM <code class="module"><a href="../mod/event.html">event</a></code>, cette
    directive permet aussi de d&eacute;finir le nombre de processus anciens du serveur
    pouvant continuer &agrave; s'ex&eacute;cuter pour terminer le traitement des connexions
    ouvertes. Au cours d'un red&eacute;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">ServerLimit</code> sera ignor&eacute;e.</p>

    <p>Cette directive doit &ecirc;tre utilis&eacute;e avec pr&eacute;caution. Si
    <code class="directive">ServerLimit</code> est d&eacute;finie &agrave; une valeur beaucoup
    plus grande que n&eacute;cessaire, de la m&eacute;moire partag&eacute;e suppl&eacute;mentaire
    sera inutilement allou&eacute;e. Si &agrave; la fois
    <code class="directive">ServerLimit</code> et <code class="directive"><a href="#maxrequestworkers">MaxRequestWorkers</a></code> poss&egrave;dent des valeurs
    sup&eacute;rieures &agrave; ce que le syst&egrave;me peut supporter, ce dernier peut
    devenir instable ou Apache httpd peut tout simplement refuser de d&eacute;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&eacute;finir <code class="directive"><a href="#maxrequestworkers">MaxRequestWorkers</a></code> &agrave; une valeur sup&eacute;rieure &agrave;
    256 (valeur par d&eacute;faut). N'affectez pas &agrave; la directive <code class="directive">ServerLimit</code> une valeur sup&eacute;rieure &agrave;
    celle que vous avez pr&eacute;vu d'affecter &agrave; 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&eacute;finition de vos directives <code class="directive"><a href="#maxrequestworkers">MaxRequestWorkers</a></code> et <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code> n&eacute;cessitent plus de
    16 processus serveurs (valeur par d&eacute;faut). N'affectez pas &agrave; la
    directive <code class="directive">ServerLimit</code> une
    valeur sup&eacute;rieure au nombre de processus requis pour la d&eacute;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&eacute;e en
      dur dans le serveur (200000 pour le MPM <code class="module"><a href="../mod/prefork.html">prefork</a></code>).
      Ceci est cens&eacute; &eacute;viter les effets d&eacute;sastreux que pourrait provoquer
      une faute de frappe. Pour d&eacute;passer cette limite, vous devez
      modifier la valeur de MAX_SERVER_LIMIT dans le fichier source du
      mpm et recompiler le serveur.</p>
    </div>

    <p>La valeur de la directive <code class="directive">ServerLimit</code> doit
    &ecirc;tre sup&eacute;rieure ou &eacute;gale &agrave; 1. Une valeur inf&eacute;rieure &agrave; 1 sera automatiquement
    augment&eacute;e &agrave; 1 et un avertissement sera journalis&eacute;.</p>

<h3>Voir aussi</h3>
<ul>
<li><a href="../stopping.html">Arr&ecirc;ter et red&eacute;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 id="startservers">Directive <span id="StartServers">StartServers</span> <a title="Lien permanent" href="#startservers" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre de processus enfants du serveur cr&eacute;&eacute;s au
d&eacute;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&eacute;faut:</a></th><td><code>Voir ci-dessous pour plus de d&eacute;tails</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</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&eacute;finir le nombre de processus enfants du serveur cr&eacute;&eacute;s au
    d&eacute;marrage. Comme le nombre de processus est contr&ocirc;l&eacute; 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&eacute;n&eacute;ral
    pas n&eacute;cessaire d'ajuster ce param&egrave;tre.</p>

    <p>La valeur par d&eacute;faut diff&egrave;re d'un MPM &agrave; 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&eacute;finition par d&eacute;faut est
    <code>StartServers 3</code> ; la valeur par d&eacute;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>

    <p>La valeur de la directive <code class="directive">StartServers</code> doit
    &ecirc;tre sup&eacute;rieure ou &eacute;gale &agrave; 1. Une valeur inf&eacute;rieure &agrave; 1 sera automatiquement
    augment&eacute;e &agrave; 1 et un avertissement sera journalis&eacute;. Pour le module
    <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code>, la valeur 0 est aussi accept&eacute;e ; les valeurs
    inf&eacute;rieures &agrave; 0 sont automatiquement augment&eacute;es &agrave; 1.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="startthreads">Directive <span id="StartThreads">StartThreads</span> <a title="Lien permanent" href="#startthreads" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre de threads cr&eacute;&eacute;s au d&eacute;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&eacute;faut:</a></th><td><code>Voir ci-dessous pour plus de d&eacute;tails</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</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&eacute;&eacute;s au d&eacute;marrage du serveur. Comme
    le nombre de threads est contr&ocirc;l&eacute; 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&eacute;n&eacute;ral
    pas n&eacute;cessaire d'ajuster ce param&egrave;tre.</p>

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

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="threadlimit">Directive <span id="ThreadLimit">ThreadLimit</span> <a title="Lien permanent" href="#threadlimit" class="permalink">&para;</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&eacute;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&eacute;faut:</a></th><td><code>Voir ci-dessous pour plus de d&eacute;tails</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</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&eacute;finir le nombre maximum que l'on peut
    affecter &agrave; la directive <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code> pour la dur&eacute;e de vie
    du processus Apache httpd. La directive  <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code> peut &ecirc;tre modifi&eacute;e
    au cours d'un red&eacute;marrage jusqu'&agrave; la valeur de la directive <code class="directive">ThreadLimit</code>, mais toute tentative
    de modification de la directive <code class="directive">ThreadLimit</code> au cours d'un
    red&eacute;marrage sera ignor&eacute;e.</p>

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

    <p>La valeur par d&eacute;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&eacute;e en dur dans le serveur. Ceci est cens&eacute; &eacute;viter les effets
      d&eacute;sastreux que pourrait provoquer une faute de frappe. Pour
      d&eacute;passer cette limite, vous devez modifier la valeur de
      MAX_THREAD_LIMIT dans le fichier source du mpm et recompiler le
      serveur.</p>
    </div>

    <p>La valeur de la directive <code class="directive">ThreadLimit</code> doit
    &ecirc;tre sup&eacute;rieure ou &eacute;gale &agrave; 1. Une valeur inf&eacute;rieure &agrave; 1 sera automatiquement
    augment&eacute;e &agrave; 1 et un avertissement sera journalis&eacute;.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="threadsperchild">Directive <span id="ThreadsPerChild">ThreadsPerChild</span> <a title="Lien permanent" href="#threadsperchild" class="permalink">&para;</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre de threads cr&eacute;&eacute;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&eacute;faut:</a></th><td><code>Voir ci-dessous pour plus de d&eacute;tails</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</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&eacute;finir le nombre de threads que va
    cr&eacute;er chaque processus enfant. Un processus enfant cr&eacute;e ces threads
    au d&eacute;marrage et n'en cr&eacute;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 &ecirc;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 &ecirc;tre suffisamment grand
    pour supporter la charge du serveur.</p>

    <p>La valeur par d&eacute;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>

    <p>La valeur de la directive <code class="directive">ThreadsPerChild</code> ne peut
    pas d&eacute;passer la valeur de la directive <code class="directive"><a href="#threadlimit">ThreadLimit</a></code>. Si on sp&eacute;cifie une valeur
    sup&eacute;rieure, elle sera automatiquement r&eacute;duite au d&eacute;marrage du serveur et un
    avertissement sera enregistr&eacute; dans le journal. La relation entre ces deux
    directives est expliqu&eacute;e dans la <code class="directive"><a href="#documentation de la directive threadlimit">documentation de la directive ThreadLimit</a></code>.</p>

    <p>La valeur de la directive <code class="directive">ThreadsPerChild</code> doit
    &ecirc;tre sup&eacute;rieure ou &eacute;gale &agrave; 1. Une valeur inf&eacute;rieure &agrave; 1 sera automatiquement
    augment&eacute;e &agrave; 1 et un avertissement sera journalis&eacute;.</p>

    <p>La valeur de la directive <code class="directive"><a href="#maxrequestworkers">MaxRequestWorkers</a></code> doit &ecirc;tre un multiple
    entier de celle de la directive <code class="directive">ThreadsPerChild</code>. Voir
    la directive <code class="directive"><a href="#maxrequestworkers">MaxRequestWorkers</a></code>
    pour les d&eacute;tails.</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif"></a></div>
<div class="directive-section"><h2 id="threadstacksize">Directive <span id="ThreadStackSize">ThreadStackSize</span> <a title="Lien permanent" href="#threadstacksize" class="permalink">&para;</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&eacute;faut:</a></th><td><code>65536 sous NetWare; varie en fonction des autres syst&egrave;mes
d'exploitation</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</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&eacute;:</a></th><td>Disponible dans les versions 2.1 et sup&eacute;rieures
du serveur HTTP Apache</td></tr>
</table>
    <p>La directive <code class="directive">ThreadStackSize</code> permet de
    d&eacute;finir la taille de la pile (pour les donn&eacute;es propres) qu'utilisent
    les threads qui traitent les connexions clients en faisant appel &agrave;
    des modules. Dans la plupart des cas, la valeur par d&eacute;faut de la
    taille de la pile du syst&egrave;me d'exploitation convient, mais il existe
    certaines situations o&ugrave; il peut s'av&eacute;rer n&eacute;cessaire de l'ajuster
    :</p>

    <ul>
      <li>Sur les plates-formes qui poss&egrave;dent une valeur par d&eacute;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&egrave;dent un quantit&eacute; de donn&eacute;es propres stock&eacute;es relativement
      importante. Il se peut que ces m&ecirc;mes modules fonctionnent
      correctement sur d'autres plate-formes o&ugrave; la valeur par d&eacute;faut de
      la taille de la pile est sup&eacute;rieure. Ce type de crash peut &ecirc;tre
      evit&eacute; en d&eacute;finissant <code class="directive">ThreadStackSize</code> &agrave; une
      valeur sup&eacute;rieure &agrave; la valeur par d&eacute;faut du syst&egrave;me
      d'exploitation. Ce type d'ajustement n'est n&eacute;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 &eacute;tait trop
      petite.</li>

      <li>Sur les plates-formes o&ugrave; la taille par d&eacute;faut de la pile des
      threads est sensiblement sup&eacute;rieure &agrave; la taille n&eacute;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&eacute;finie &agrave; une valeur
      inf&eacute;rieure &agrave; la valeur par d&eacute;faut du syst&egrave;me d'exploitation.
      Cependant, ce
      type d'ajustement ne doit &ecirc;tre effectu&eacute; que dans un environnement
      de test permettant de qualifier le serveur web au maximum de ses
      possibilit&eacute;s, car il peut arriver, dans de rares cas, que des
      requ&ecirc;tes n&eacute;cessitent une taille de pile sup&eacute;rieure pour pouvoir
      &ecirc;tre trait&eacute;es. La taille minimale requise pour la pile d&eacute;pend
      fortement des modules utilis&eacute;s, mais toute modification dans la
      configuration du serveur web peut invalider la d&eacute;finition courante
      de la directive <code class="directive">ThreadStackSize</code>.</li>

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

    <div class="note">Il est recommand&eacute; de ne pas r&eacute;duire
    <code class="directive">ThreadStackSize</code>, &agrave; moins qu'un grand nombre
    de threads par processus enfant ne soit n&eacute;cessaire. Sur certaines
    plates-formes (y compris Linux), une valeur de 128000 est d&eacute;j&agrave; 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&ccedil;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&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br>Autoris&eacute; sous <a href="https://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/quickreference.html">Directives</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
    langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
    document.body.appendChild(qv);
    var qvBtn = document.createElement('button');
    qvBtn.className = 'qv-toggle';
    qvBtn.setAttribute('aria-label', 'Toggle page navigation');
    qvBtn.innerHTML = '&#9776;';
    document.body.appendChild(qvBtn);
    qvBtn.addEventListener('click', function() {
        var isOpen = qv.classList.toggle('open');
        if (isOpen) {
            qv.style.top = window.scrollY + 10 + 'px';
        }
    });
    window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>