mirror of
https://github.com/apache/httpd.git
synced 2025-10-28 20:34:59 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1820399 13f79535-47bb-0310-9956-ffa450edef68
994 lines
73 KiB
Plaintext
994 lines
73 KiB
Plaintext
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
|
||
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
|
||
<!--
|
||
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||
This file is generated from xml source: DO NOT EDIT
|
||
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||
-->
|
||
<title>mpm_common - Serveur Apache HTTP Version 2.5</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/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
|
||
<p class="apache">Serveur Apache HTTP Version 2.5</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.5</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<61>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<72>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<70>ment<6E>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="#accepterrorsnonfatal">AcceptErrorsNonFatal</a></li>
|
||
<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<62>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="accepterrorsnonfatal" id="accepterrorsnonfatal">Directive</a> <a name="AcceptErrorsNonFatal" id="AcceptErrorsNonFatal">AcceptErrorsNonFatal</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Traite certaines erreurs lors de l'acceptation d'une nouvelle connexion comme
|
||
non fatales pour le processus httpd.</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AcceptErrorsNonFatal ON</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>OFF (les erreurs ECONNREFUSED, ECONNABORTED, ECONNRESET entra<72>nent
|
||
alors la fermeture du processus httpd)</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit<69>:</a></th><td>Disponible <20> partir de la version 2.5.1 du serveur HTTP Apache</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">AcceptErrorsNonFatal</code> permet de
|
||
modifier le comportement du serveur lorsque certaines erreurs
|
||
rares apparaissent lors de l'acceptation d'une nouvelle connexion avec un
|
||
client. Par d<>faut, le processus enfant qui traite la requ<71>te se terminera
|
||
en douceur pratiquement chaque fois qu'une erreur de socket appara<72>t au
|
||
cours de l'appel syst<73>me accept(), ceci dans le but de s'assurer qu'un
|
||
processus enfant potentiellement endommag<61> ne tentera pas de prendre en
|
||
compte de nouvelles connexions.</p>
|
||
|
||
<p>Lorsque la directive <code class="directive">AcceptErrorsNonFatal</code> est <20>
|
||
"ON", le processus n'enclenchera <em>pas</em> sa proc<6F>dure d'arr<72>t si
|
||
l'erreur accept() est ECONNREFUSED, ECONNABORTED, ou ECONNRESET.</p>
|
||
|
||
<div class="note">Certains composants de logiciels pare-feu tiers peuvent injecter des
|
||
erreurs dans le traitement de l'appel accept() en utilisant des codes de
|
||
retour non sp<73>cif<69>s par le syst<73>me d'exploitation.</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="coredumpdirectory" id="coredumpdirectory">Directive</a> <a name="CoreDumpDirectory" id="CoreDumpDirectory">CoreDumpDirectory</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le r<>pertoire dans lequel le serveur HTTP Apache va tenter de se
|
||
positionner avant d'effectuer un vidage m<>moire</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CoreDumpDirectory <var>r<>pertoire</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>Voir ci-dessous pour le r<>pertoire par d<>faut</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code></td></tr>
|
||
</table>
|
||
<p>Cette directive permet de d<>finir le r<>pertoire dans lequel
|
||
Apache httpd va tenter de se positionner avant d'effectuer un vidage
|
||
m<>moire sur disque.
|
||
Si votre syst<73>me d'exploitation est configur<75> pour cr<63>er des
|
||
fichiers de vidage m<>moire dans le r<>pertoire de travail des
|
||
processus qui se sont crash<73>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 <20>tre accessible en <20>criture par l'utilisateur sous
|
||
lequel le serveur s'ex<65>cute.</p>
|
||
|
||
<p>Si vous avez besoin d'un vidage m<>moire pour le d<>bogage, vous
|
||
pouvez utiliser cette directive pour le placer <20> un endroit
|
||
diff<66>rent. Cette directive n'a aucun effet si votre syst<73>me
|
||
d'exploitation n'est pas configur<75> pour cr<63>er des
|
||
fichiers de vidage m<>moire dans le r<>pertoire de travail des
|
||
processus qui se sont crash<73>s.</p>
|
||
|
||
<div class="note"><h3>Vidages m<>moire sous Linux</h3>
|
||
<p>Si Apache httpd est d<>marr<72> 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 <20>criture au
|
||
processus. Apache httpd (versions 2.0.46 et sup<75>rieures) r<>active les
|
||
vidages m<>moire sous Linux 2.4 et au del<65>, 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<65>cutables suid sur les
|
||
syst<73>mes de style BSD (comme FreeBSD), d<>finissez
|
||
<code>kern.sugid_coredump</code> <20> 1.
|
||
</p>
|
||
</div>
|
||
|
||
<div class="note"><h3>Signaux sp<73>cifiques</h3>
|
||
<p><code class="directive">CoreDumpDirectory</code> n'est trait<69> qu'<27> la
|
||
reception d'un certain nombre de signaux , SIGFPE, SIGILL, SIGABORT,
|
||
SIGSEGV, et SIGBUS.</p>
|
||
<p>
|
||
Sur certains syst<73>mes d'exploitation, SIGQUIT provoque aussi un
|
||
vidage m<>moire, mais n'est pas trait<69> 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<74>rement d<>volue au syst<73>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<65>cute des
|
||
gestionnaires d'exception apr<70>s un crash</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>EnableExceptionHook On|Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>EnableExceptionHook Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code></td></tr>
|
||
</table>
|
||
<p>Pour des raisons de s<>curit<69>, cette directive n'est disponible
|
||
que si la compilation du serveur a <20>t<EFBFBD> configur<75>e avec l'option
|
||
<code>--enable-exception-hook</code>. Elle permet d'activer un hook
|
||
("point d'accrochage logiciel")
|
||
qui autorise certains modules externes <20> effectuer un branchement et
|
||
accomplir telle ou telle action apr<70>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<EFBFBD>rer <20> la <a href="https://emptyhammock.com/projects/httpd/diag/">page EnableExceptionHook</a> de Jeff Trawick pour plus
|
||
d'informations <20> 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<53>cifie le d<>lai maximum apr<70>s lequel le serveur va
|
||
s'arr<72>ter dans le cas d'un arr<72>t "en douceur"</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>GracefulShutdownTimeout <var>seconds</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>GracefulShutdownTimeout 0</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code></td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">GracefulShutdownTimeout</code>
|
||
permet de sp<73>cifier le temps, en secondes, pendant lequel le serveur
|
||
va continuer <20> fonctionner apr<70>s avoir re<72>u un signal
|
||
"graceful-stop" ("Arr<72>t en douceur"), afin de terminer le traitement
|
||
des connexions en cours.</p>
|
||
|
||
<p>D<>finir cette valeur <20> z<>ro signifie au serveur d'attendre
|
||
jusqu'<27> ce que toutes les requ<71>tes en cours aient <20>t<EFBFBD> trait<69>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 <20>coute</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Listen [<var>adresse IP</var>:]<var>num<75>ro port</var>
|
||
[<var>protocole</var>]</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>, <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code></td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">Listen</code> permet de signifier <20>
|
||
Apache httpd de ne se mettre <20> l'<27>coute que sur les adresses IP et ports sp<73>cifi<66>s ; par
|
||
d<>faut, le serveur r<>pond aux requ<71>tes en provenance de toutes les
|
||
interfaces r<>seau. La directive <code class="directive">Listen</code> est
|
||
dor<6F>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<70>c<EFBFBD>dentes d'Apache httpd.</p>
|
||
|
||
<p>La directive <code class="directive">Listen</code> signifie au serveur de
|
||
n'accepter les requ<71>tes entrantes que vers le port ou le couple
|
||
adresse-port sp<73>cifi<66>. Si seulement un port est sp<73>cifi<66>, le serveur
|
||
se met <20> l'<27>coute sur ce port sur toutes les interfaces r<>seau. Si une adresse IP
|
||
et un port sont sp<73>cifi<66>s, le serveur va se mettre <20> l'<27>coute sur ce port sur
|
||
l'interface r<>seau correspondant <20> l'adresse IP.</p>
|
||
|
||
<p>On peut utiliser autant de directives
|
||
<code class="directive">Listen</code> que n<>cessaire pour sp<73>cifier
|
||
plusieurs adresses et/ou ports <20> <20>couter. Le serveur r<>pondra aux
|
||
requ<71>tes vers tous les adresses et ports sp<73>cifi<66>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<73>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 <20>tre entour<75>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 <20> d<>terminer quel module doit traiter une requ<71>te, et
|
||
<20> appliquer des optimisations sp<73>cifiques <20> certains protocoles <20>
|
||
l'aide de la directive <code class="directive"><a href="../mod/core.html#acceptfilter">AcceptFilter</a></code>.</p>
|
||
|
||
<p>La sp<73>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<62>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 <20> propos du message d'erreur <code>Address already in
|
||
use</code>, citant d'autres causes possibles.</a></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="listenbacklog" id="listenbacklog">Directive</a> <a name="ListenBackLog" id="ListenBackLog">ListenBackLog</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Longueur maximale de la liste d'attente des
|
||
connexions</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ListenBacklog <var>backlog</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>ListenBacklog 511</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>, <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code></td></tr>
|
||
</table>
|
||
<p>La longueur maximale de la liste d'attente des connexions. En
|
||
g<>n<EFBFBD>ral, aucune modification n'est n<>cessaire, ni m<>me souhaitable ;
|
||
cependant, sur certains syst<73>mes, il peut <20>tre n<>cessaire
|
||
d'en augmenter la valeur en cas d'attaque TCP SYN flood (envoi en
|
||
masse de requ<71>tes SYN pour saturer le serveur). Voir le param<61>tre
|
||
backlog de l'appel syst<73>me <code>listen(2)</code>.</p>
|
||
|
||
<p>En fait, l'argument backlog sera souvent limit<69> <20> une valeur
|
||
inf<6E>rieure en fonction du syst<73>me d'exploitation. Notez aussi que de
|
||
nombreux syst<73>mes d'exploitation ne tiennent pas vraiment compte de
|
||
la valeur sp<73>cifi<66>e pour l'argument backlog, mais s'en inspirent
|
||
seulement (et choisissent en g<>n<EFBFBD>ral une valeur sup<75>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<69>s et
|
||
le nombre de segments d'<27>coute</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ListenCoresBucketsRatio <var>ratio</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>ListenCoresBucketsRatio 0 (disabled)</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit<69>:</a></th><td>Disponible <20> 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<72>ment les nouvelles
|
||
connexions aux sockets d'<27>coute des processus (ou threads) qui
|
||
l'utilisent (par exemple Linux versions 3.9 et ult<6C>rieures, mais pas
|
||
l'impl<70>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<73>cifier un
|
||
<var>ratio</var> entre le nombre de coeurs de CPU activ<69>s et le
|
||
nombre de segments d'<27>coute (listeners' buckets) souhait<69>s ; le
|
||
serveur HTTP Apache va alors cr<63>er<code>num_cpu_cores / ratio</code>
|
||
segments d'<27>coute, chacun contenant son propre socket d'<27>coute
|
||
<code class="directive">Listen</code> sur le ou les m<>mes ports ; chaque
|
||
processus enfant sera associ<63> <20> un seul segment d'<27>coute (avec une
|
||
distribution de type round-robin des segments <20> la cr<63>ation des
|
||
processus enfants).</p>
|
||
|
||
<div class="note"><h3>D<>finition du terme coeur de CPU activ<69> ("online")</h3>
|
||
<p>Sous Linux et BSD, un coeur de CPU peut <20>tre activ<69> ou d<>sactiv<69> si <a href="https://www.kernel.org/doc/Documentation/cpu-hotplug.txt">Hotplug</a>
|
||
a <20>t<EFBFBD> configur<75> ; la directive
|
||
<code class="directive">ListenCoresBucketsRatio</code> doit donc tenir compte de ce
|
||
param<61>tre pour calculer le nombre de segments d'<27>coute <20> cr<63>er.</p>
|
||
</div>
|
||
|
||
<p>La directive <code class="directive">ListenCoresBucketsRatio</code> peut
|
||
am<61>liorer le support de la mont<6E>e en charge lorsque l'arriv<69>e de
|
||
nouvelles connexions est/devient un goulot d'<27>tranglement. Le test
|
||
de cette fonctionnalit<69> avec des machines poss<73>dant un nombre de
|
||
coeurs de CPU important a permit de constater une am<61>lioration des
|
||
performances significative et des temps de r<>ponse plus courts.</p>
|
||
|
||
<p>Pour que cette fonctionnalit<69> soit activ<69>e, le nombre de coeurs
|
||
de CPU doit <20>tre <20>gal au moins au double du <var>ratio</var>
|
||
sp<73>cifi<66>. Si vous sp<73>cifiez la valeur recommand<6E>e pour
|
||
<var>ratio</var>, <20> 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 <20>tre calcul<75>e pour chaque syst<73>me cible, en testant plusieurs valeurs
|
||
et en observant les r<>sultats.</p>
|
||
|
||
<p>Cette directive influence le calcul des valeurs limites inf<6E>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<6E>re optimale, le nombre de processus enfants doit <20>tre un
|
||
multiple du nombre de segments d'<27>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'<27>coute permet <20> plusieurs processus (partageant le m<>me <code>EUID</code>,
|
||
par exemple <code>root</code>) de se rattacher <20> la m<>me adresse IP et port,
|
||
sans obtenir l'erreur de rattachement que le syst<73>me g<>n<EFBFBD>re habituellement
|
||
lorsque ce cas se produit.</p>
|
||
<p>Cela signifie aussi que plusieurs instances d'Apache httpd configur<75>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<66>rentes instances (ce n'est PAS une
|
||
recommandation et ne constitue pas un usage appropri<72> <20> tous les cas, mais
|
||
juste un avertissement sur le fait qu'un v<>ritable probl<62>me de rattachement
|
||
multiple <20> un <code>IP:port</code> pourrait alors <20>tre occult<6C>).</p>
|
||
<p>Au sein d'une m<>me instance, Apache httpd v<>rifie la pr<70>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'<27>viter la cr<63>ation de segments d'<27>coute dupliqu<71>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 <20> une adresse IP utilis<69>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 du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>, <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilit<69>:</a></th><td>Disponible depuis la version 2.3.9 du serveur HTTP
|
||
Apache. L'ancien nom <code>MaxRequestsPerChild</code> est encore
|
||
support<EFBFBD>.</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<69>
|
||
<code class="directive">MaxConnectionsPerChild</code> connexions, le processus
|
||
enfant est arr<72>t<EFBFBD>. Si <code class="directive">MaxConnectionsPerChild</code> est
|
||
d<>finie <20> <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> <20> une valeur
|
||
non nulle limite la quantit<69> de m<>moire qu'un processus peut
|
||
consommer <20> 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<69> maximale de m<>moire que l'allocateur principal est
|
||
autoris<EFBFBD> <20> conserver sans appeler <code>free()</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>MaxMemFree <var>KOctets</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>MaxMemFree 2048</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>, <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code></td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">MaxMemFree</code> permet de d<>finir
|
||
le nombre maximum de KOctets libres que tout allocateur est
|
||
autoris<69> <20> conserver sans appeler <code>free()</code>. Dans les MPMs
|
||
thread<61>s, chaque thread poss<73>de son propre allocateur. Si elle est
|
||
d<>finie <20> 0, la quantit<69> de m<>moire libre que peut conserver un
|
||
allocateur est illimit<69>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 <20>tre trait<69>es
|
||
simultan<EFBFBD>ment</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>MaxRequestWorkers <var>nombre</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>Voir ci-dessous pour plus de d<>tails</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code></td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">MaxRequestWorkers</code> permet de fixer le
|
||
nombre maximum de requ<71>tes pouvant <20>tre trait<69>es simultan<61>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'<27> un certain nombre d<>pendant de la
|
||
directive <code class="directive"><a href="#listenbacklog">ListenBacklog</a></code>.
|
||
Lorsqu'un processus enfant se lib<69>rera suite <20> la fin du traitement
|
||
d'une requ<71>te, la connexion en attente pourra <20>tre trait<69>e <20> son
|
||
tour.</p>
|
||
|
||
<p>Pour les serveurs non thread<61>s (<em>c'est <20> 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 <20>tre lanc<6E>s simultan<61>ment pour
|
||
traiter les requ<71>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<61>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<6C> par la valeur
|
||
<code>25</code> (directive <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code>). Par cons<6E>quent, pour affecter <20> 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>
|
||
<20>tait <code class="directive">MaxClients</code> avant la version 2.3.13. Cet
|
||
ancien nom est encore support<72>.</p>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="maxsparethreads" id="maxsparethreads">Directive</a> <a name="MaxSpareThreads" id="MaxSpareThreads">MaxSpareThreads</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre maximum de threads inactifs</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>MaxSpareThreads <var>nombre</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>Voir ci-dessous pour plus de d<>tails</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code></td></tr>
|
||
</table>
|
||
<p>C'est le nombre maximum de threads inactifs. Les MPMs utilisent
|
||
cette directive de diff<66>rentes mani<6E>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<73>de trop de threads
|
||
inactifs, des processus enfants seront arr<72>t<EFBFBD>s jusqu'<27> ce que le
|
||
nombre de threads inactifs repasse en dessous de cette limite. Des
|
||
processus/threads suppl<70>mentaires sont susceptibles d'<27>tre cr<63><72>s si
|
||
<code class="directive"><a href="#listencoresbucketsratio">ListenCoresBucketsRatio</a></code> est
|
||
activ<69>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<65>cute qu'un seul
|
||
processus, le nombre de processus inactifs est surveill<6C> au
|
||
niveau du serveur.</p>
|
||
|
||
<p><code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code> fonctionne de mani<6E>re similaire <20>
|
||
<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<69>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 <20>tre sup<75>rieure <20> <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 <20>tre sup<75>rieure ou <20>gale <20> 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<71>tes</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>MinSpareThreads <var>nombre</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>Voir ci-dessous pour plus de d<>tails</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code></td></tr>
|
||
</table>
|
||
<p>C'est le nombre minimum de threads inactifs pour <20>tre en mesure
|
||
de traiter les pics de requ<71>tes. Les MPMs utilisent cette directive
|
||
de diff<66>rentes mani<6E>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<6C> au niveau du serveur. Si le serveur ne poss<73>de pas
|
||
assez de threads inactifs, des processus enfants sont cr<63><72>s jusqu'<27>
|
||
ce que le nombre de threads inactifs repasse au dessus de
|
||
<var>nombre</var>. Des processus/threads suppl<70>mentaires peuvent
|
||
<20>tre cr<63><72>s si <code class="directive"><a href="#listencoresbucketsratio">ListenCoresBucketsRatio</a></code> est activ<69>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<65>cute qu'un
|
||
seul processus, le nombre de threads est surveill<6C> au niveau du
|
||
serveur.</p>
|
||
|
||
<p><code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code> fonctionne de mani<6E>re similaire <20>
|
||
<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 httpd.pid</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>, <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code></td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">PidFile</code> permet de d<>finir le
|
||
ficher dans lequel le serveur
|
||
enregistre l'identificateur de processus du d<>mon. Si le chemin du
|
||
fichier n'est pas absolu, il est consid<69>r<EFBFBD> comme relatif au chemin
|
||
d<>fini par la directive <code class="directive"><a href="../mod/core.html#defaultruntimedir">DefaultRuntimeDir</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 <20> 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) <20> l'identificateur de processus enregistr<74> 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<69></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<73>me d'exploitation pour (re)d<>marrer ou
|
||
arr<72>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<74>e</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ReceiveBufferSize <var>octets</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>ReceiveBufferSize 0</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>, <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code></td></tr>
|
||
</table>
|
||
<p>Le serveur va fixer la taille du tampon TCP en entr<74>e au
|
||
nombre d'octets sp<73>cifi<66>.</p>
|
||
|
||
<p>Si la directive est d<>finie <20> <code>0</code>, le serveur va
|
||
utiliser la valeur par d<>faut adopt<70>e par le syst<73>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<63>es les donn<6E>es concernant
|
||
la coordination des processus enfants</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ScoreBoardFile <var>file-path</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>ScoreBoardFile apache_runtime_status</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code></td></tr>
|
||
</table>
|
||
<p>Le serveur HTTP Apache utilise un tableau de bord pour la
|
||
communication entre le processus parent et les processus enfants.
|
||
Pour faciliter cette communication, certaines architectures
|
||
n<>cessitent un fichier. En l'absence de cette directive, donc si
|
||
aucun nom de fichier n'est sp<73>cifi<66>, Apache httpd tentera tout
|
||
d'abord de cr<63>er un tableau uniquement en m<>moire (en utilisant la
|
||
m<>moire partag<61>e anonyme) ; et si il n'y parvient pas, il tentera de
|
||
cr<63>er un fichier sur disque (en utilisant la m<>moire partag<61>e <20> base
|
||
de fichier). Si cette directive est utilis<69>e, Apache httpd cr<63>era
|
||
syst<73>matiquement un fichier sur disque.</p>
|
||
|
||
<p>Si <var>file-path</var> n'est pas un chemin absolu, il sera relatif <20> la
|
||
valeur sp<73>cifi<66>e par la directive <code class="directive"><a href="../mod/core.html#defaultruntimedir">DefaultRuntimeDir</a></code>.
|
||
</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<61>e sous forme de fichier est utile pour les
|
||
applications tierces qui n<>cessitent un acc<63>s direct au tableau de
|
||
bord des processus.</p>
|
||
|
||
<p>Si vous utilisez un <code class="directive">ScoreBoardFile</code>, vous
|
||
pourrez constater une am<61>lioration des performances en le pla<6C>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<69></a>.</p>
|
||
|
||
<h3>Voir aussi</h3>
|
||
<ul>
|
||
<li><a href="../stopping.html">Arr<72>ter et red<65>marrer
|
||
le serveur HTTP Apache</a></li>
|
||
</ul>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="sendbuffersize" id="sendbuffersize">Directive</a> <a name="SendBufferSize" id="SendBufferSize">SendBufferSize</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille du tampon TCP en sortie</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SendBufferSize <var>octets</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>SendBufferSize 0</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>, <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code></td></tr>
|
||
</table>
|
||
<p>D<>finit la taille du tampon TCP en sortie avec le nombre
|
||
d'octets sp<73>cifi<66>. Ceci s'av<61>re souvent tr<74>s utile pour augmenter les
|
||
valeurs par d<>faut standards du pass<73> des syst<73>mes d'exploitation
|
||
pour les transmissions <20> grande vitesse et haute densit<69> (<em>c'est
|
||
<20> dire</em> de l'ordre de 100ms comme sur les liaisons rapides
|
||
transcontinentales).</p>
|
||
|
||
<p>Si la directive est d<>finie <20> <code>0</code>, le serveur va
|
||
utiliser la valeur par d<>faut adopt<70>e par le syst<73>me
|
||
d'exploitation.</p>
|
||
|
||
<p>L'am<61>lioration des performances des connexions <20> grande vitesse
|
||
et <20> temps de latence <20>lev<65>, peut n<>cessiter
|
||
une intervention au niveau de la configuration de votre syst<73>me
|
||
d'exploitation.</p>
|
||
|
||
<div class="note"><p>Sous certains syst<73>mes d'exploitation, la modification du
|
||
comportement TCP via une augmentation de la valeur de
|
||
<code class="directive">SendBufferSize</code> risque de ne pas <20>tre
|
||
perceptible, si la directive <code class="directive"><a href="../mod/core.html#enablesendfile">EnableSendfile</a></code> n'est pas d<>finie <20> 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<75>rieure de la d<>finition du nombre de
|
||
processus</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ServerLimit <var>nombre</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>Voir ci-dessous pour plus de d<>tails</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code></td></tr>
|
||
</table>
|
||
<p>Avec le MPM <code class="module"><a href="../mod/prefork.html">prefork</a></code>, cette directive d<>finit le
|
||
nombre maximum que l'on peut affecter <20> la directive <code class="directive"><a href="#maxrequestworkers">MaxRequestWorkers</a></code>, et ceci pour la
|
||
dur<75>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 <20> <code class="directive"><a href="#maxrequestworkers">MaxRequestWorkers</a></code>, et ceci pour la dur<75>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 combien de processus anciens peuvent
|
||
continuer <20> s'ex<65>cuter pour terminer le traitement des connexions ouvertes.
|
||
Au cours d'un red<65>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<6F>e.</p>
|
||
|
||
<p>Cette directive doit <20>tre utilis<69>e avec pr<70>caution. Si
|
||
<code class="directive">ServerLimit</code> est d<>finie <20> une valeur beaucoup
|
||
plus grande que n<>cessaire, de la m<>moire partag<61>e suppl<70>mentaire
|
||
sera inutilement allou<6F>e. Si <20> la fois
|
||
<code class="directive">ServerLimit</code> et <code class="directive"><a href="#maxrequestworkers">MaxRequestWorkers</a></code> poss<73>dent des valeurs
|
||
sup<75>rieures <20> ce que le syst<73>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> <20> une valeur sup<75>rieure <20>
|
||
256 (valeur par d<>faut). N'affectez pas <20> la directive <code class="directive"><a href="#serverlimit">ServerLimit</a></code> une valeur sup<75>rieure <20>
|
||
celle que vous avez pr<70>vu d'affecter <20> 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 <20> la
|
||
directive <code class="directive"><a href="#serverlimit">ServerLimit</a></code> une
|
||
valeur sup<75>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>
|
||
|
||
<p>Avec le MPM <code class="module"><a href="../mod/event.html">event</a></code>, augmentez la valeur de cette
|
||
directive si le nombre de processus d<>fini par les directives <code class="directive"><a href="#maxrequestworkers">MaxRequestWorkers</a></code> et <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code> augment<6E> du nombre de processus
|
||
en proc<6F>dure d'arr<72>t "graceful" est sup<75>rieur <20> 16 (valeur par d<>faut).</p>
|
||
|
||
<div class="note"><h3>Note</h3>
|
||
<p>Il existe une limite de <code>ServerLimit 20000</code> cod<6F>e en
|
||
dur dans le serveur (200000 pour le MPM <code class="module"><a href="../mod/prefork.html">prefork</a></code>).
|
||
Ceci est cens<6E> <20>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<72>ter et red<65>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<63><72>s au
|
||
d<EFBFBD>marrage</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>StartServers <var>nombre</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>Voir ci-dessous pour plus de d<>tails</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code></td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">StartServers</code> permet de
|
||
d<>finir le nombre de processus enfants du serveur cr<63><72>s au
|
||
d<>marrage. Comme le nombre de processus est contr<74>l<EFBFBD> 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<EFBFBD>ral
|
||
pas n<>cessaire d'ajuster ce param<61>tre.</p>
|
||
|
||
<p>La valeur par d<>faut diff<66>re d'un MPM <20> 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<63><72>s au d<>marrage</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>StartThreads <var>nombre</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>Voir ci-dessous pour plus de d<>tails</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code></td></tr>
|
||
</table>
|
||
<p>C'est le nombre de threads cr<63><72>s au d<>marrage du serveur. Comme
|
||
le nombre de threads est contr<74>l<EFBFBD> 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<EFBFBD>ral
|
||
pas n<>cessaire d'ajuster ce param<61>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<63><72>s au d<>marrage pour servir les
|
||
requ<71>tes.</p>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="threadlimit" id="threadlimit">Directive</a> <a name="ThreadLimit" id="ThreadLimit">ThreadLimit</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le nombre de threads maximum que l'on peut d<>finir par
|
||
processus enfant</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ThreadLimit <var>nombre</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>Voir ci-dessous pour plus de d<>tails</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code></td></tr>
|
||
</table>
|
||
<p>Cette directive permet de d<>finir le nombre maximum que l'on peut
|
||
affecter <20> la directive <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code> pour la dur<75>e de vie
|
||
du processus Apache httpd. La directive <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code> peut <20>tre modifi<66>e
|
||
au cours d'un red<65>marrage jusqu'<27> 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<65>marrage sera ignor<6F>e.</p>
|
||
|
||
<p>L'utilisation de cette directive doit faire l'objet de
|
||
pr<70>cautions particuli<6C>res. Si <code class="directive">ThreadLimit</code> est
|
||
d<>finie <20> une valeur tr<74>s sup<75>rieure <20> la directive <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code>, de la m<>moire
|
||
partag<61>e suppl<70>mentaire sera inutilement allou<6F>e. Si les directives
|
||
<code class="directive">ThreadLimit</code> et <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code> sont d<>finies <20> des
|
||
valeurs sup<75>rieures <20> ce que le syst<73>me peut supporter, ce dernier
|
||
peut devenir instable, ou Apache httpd peut tout simplement refuser de
|
||
d<>marrer. Ne d<>finissez pas cette directive <20> une valeur sup<75>rieure
|
||
<20> la valeur maximale que vous pensez affecter <20> la directive <code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code> pour le processus
|
||
Apache httpd en cours d'ex<65>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<6F>e en dur dans le serveur. Ceci est cens<6E> <20>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<63><72>s par chaque processus
|
||
enfant</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ThreadsPerChild <var>nombre</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>Voir ci-dessous pour plus de d<>tails</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code></td></tr>
|
||
</table>
|
||
<p>Cette directive permet de d<>finir le nombre de threads que va
|
||
cr<63>er chaque processus enfant. Un processus enfant cr<63>e ces threads
|
||
au d<>marrage et n'en cr<63>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 <20>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 <20>tre suffisamment grand
|
||
pour supporter la charge du serveur.</p>
|
||
|
||
<p>La valeur par d<>faut de la directive
|
||
<code class="directive">ThreadsPerChild</code> est <code>64</code> avec
|
||
<code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>, et <code>25</code> avec les autres
|
||
MPMs.</p>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="threadstacksize" id="threadstacksize">Directive</a> <a name="ThreadStackSize" id="ThreadStackSize">ThreadStackSize</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>La taille en octets de la pile qu'utilisent les threads qui
|
||
traitent les connexions clients</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ThreadStackSize <var>taille</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">D<>faut:</a></th><td><code>65536 sous NetWare; varie en fonction des autres syst<73>mes
|
||
d'exploitation</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/event.html">event</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code>, <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>, <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, <code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code></td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">ThreadStackSize</code> permet de
|
||
d<>finir la taille de la pile (pour les donn<6E>es propres) qu'utilisent
|
||
les threads qui traitent les connexions clients en faisant appel <20>
|
||
des modules. Dans la plupart des cas, la valeur par d<>faut de la
|
||
taille de la pile du syst<73>me d'exploitation convient, mais il existe
|
||
certaines situations o<> il peut s'av<61>rer n<>cessaire de l'ajuster
|
||
:</p>
|
||
|
||
<ul>
|
||
<li>Sur les plates-formes qui poss<73>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<73>dent un quantit<69> de donn<6E>es propres stock<63>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<75>rieure. Ce type de crash peut <20>tre
|
||
evit<69> en d<>finissant <code class="directive">ThreadStackSize</code> <20> une
|
||
valeur sup<75>rieure <20> la valeur par d<>faut du syst<73>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 <20>tait trop
|
||
petite.</li>
|
||
|
||
<li>Sur les plates-formes o<> la taille par d<>faut de la pile des
|
||
threads est sensiblement sup<75>rieure <20> 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 <20> une valeur
|
||
inf<6E>rieure <20> la valeur par d<>faut du syst<73>me d'exploitation.
|
||
Cependant, ce
|
||
type d'ajustement ne doit <20>tre effectu<74> que dans un environnement
|
||
de test permettant de qualifier le serveur web au maximum de ses
|
||
possibilit<69>s, car il peut arriver, dans de rares cas, que des
|
||
requ<71>tes n<>cessitent une taille de pile sup<75>rieure pour pouvoir
|
||
<20>tre trait<69>es. La taille minimale requise pour la pile d<>pend
|
||
fortement des modules utilis<69>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 <20>tre utilis<69>e que pour
|
||
augmenter la valeur par defaut de la taille de la pile, car
|
||
l'appel syst<73>me sous-jacent utilise cette valeur comme taille de pile
|
||
<em>minimale</em>. C'est la limite logicielle (souvent <20>lev<65>e)
|
||
pour <code>ulimit -s</code> (8Mo si aucune limite) qui est
|
||
utilis<69>e comme taille de pile par d<>faut.</li>
|
||
</ul>
|
||
|
||
<div class="note">Il est recommand<6E> de ne pas r<>duire
|
||
<code class="directive">ThreadStackSize</code>, <20> 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<EFBFBD> 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<61>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<72>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 again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
|
||
<script type="text/javascript"><!--//--><![CDATA[//><!--
|
||
var comments_shortname = 'httpd';
|
||
var comments_identifier = 'http://httpd.apache.org/docs/trunk/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 2018 The Apache Software Foundation.<br />Autoris<69> 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/quickreference.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> |