| <?xml version="1.0" encoding="UTF-8"?> |
| <!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=UTF-8" http-equiv="Content-Type" /> |
| <!-- |
| 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" 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 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="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.4</a> > <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"> de </a> | |
| <a href="../en/mod/mpm_common.html" hreflang="en" rel="alternate" title="English"> en </a> | |
| <a href="../fr/mod/mpm_common.html" title="Français"> fr </a> | |
| <a href="../ja/mod/mpm_common.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | |
| <a href="../tr/mod/mpm_common.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> |
| </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"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><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__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mpm_common">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&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 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é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="warning"> |
| <h3>Note de sécurité pour les systèmes de type Linux</h3> |
| |
| <p>Utiliser cette directive sous Linux peut permettre aux autres processus |
| du système s'exécutant avec les même privilèges (comme les scripts CGI) de |
| se rattacher aux processus httpd enfants via l'appel système |
| <code>ptrace</code>. La protection contre certaines attaques engageant la |
| sécurité peut s'en trouver affectée. Il est par conséquent déconseillé |
| d'utiliser cette directive sur les systèmes en production.</p> |
| </div> |
| |
| <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 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é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 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é:</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 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é:</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 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é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 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é:</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"><a href="#listen">Listen</a></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 class="note"> |
| <h3>Cas où plusieurs <code class="directive">Listen</code>ers ou serveurs HTTP |
| Apache partagent la même adresse IP et port</h3> |
| <p>La définition de l'option <code>SO_REUSEPORT</code> pour les sockets |
| d'écoute permet à plusieurs processus (partageant le même <code>EUID</code>, |
| par exemple <code>root</code>) de se rattacher à la même adresse IP et port, |
| sans obtenir l'erreur de rattachement que le système génère habituellement |
| lorsque ce cas se produit.</p> |
| <p>Cela signifie aussi que plusieurs instances d'Apache httpd configurées |
| avec le même <code>IP:port</code> et avec une valeur |
| <code class="directive">ListenCoresBucketsRatio</code> positive pourraient démarrer |
| sans erreur, et fonctionner ensuite avec une répartition uniforme des |
| connexions entrantes sur ces différentes instances (ce n'est PAS une |
| recommandation et ne constitue pas un usage approprié à tous les cas, mais |
| juste un avertissement sur le fait qu'un véritable problème de rattachement |
| multiple à un <code>IP:port</code> pourrait alors être occulté).</p> |
| <p>Au sein d'une même instance, Apache httpd vérifie la présence de |
| directives <code class="directive">Listen</code> multiples avec la même adresse IP |
| (ou nom d'hôte) et le même port, et refuse de démarrer si c'est le cas, ce |
| qui permet d'éviter la création de segments d'écoute dupliqué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ôte correspondant à une adresse IP utilisé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><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 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é:</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 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é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 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ê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 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é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 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 ê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 général 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 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é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 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é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 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é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 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é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 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é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. Avec le MPM <code class="module"><a href="../mod/event.html">event</a></code>, cette |
| directive permet aussi de définir le nombre de processus anciens du serveur |
| pouvant continuer à s'exécuter pour terminer le traitement des connexions |
| ouvertes. 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 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é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 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éé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 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é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 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é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> |
| |
| <p>La valeur de la directive <code class="directive">ThreadsPerChild</code> ne peut |
| pas dépasser la valeur de la directive <code class="directive"><a href="#threadlimit">ThreadLimit</a></code>. Si on spécifie une valeur |
| supérieure, elle sera automatiquement réduite au démarrage du serveur et un |
| avertissement sera enregistré dans le journal. La relation entre ces deux |
| directives est expliquée dans la <code class="directive"><a href="#documentation de la directive threadlimit">documentation de la directive ThreadLimit</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="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 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é:</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"> de </a> | |
| <a href="../en/mod/mpm_common.html" hreflang="en" rel="alternate" title="English"> en </a> | |
| <a href="../fr/mod/mpm_common.html" title="Français"> fr </a> | |
| <a href="../ja/mod/mpm_common.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | |
| <a href="../tr/mod/mpm_common.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </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&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed 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 Libera.chat, or sent to our <a href="https://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 2022 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> |