📄 mpm_common.html
字号:
<li><code class="directive"><a href="#acceptmutex">AcceptMutex</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="MaxClients" id="MaxClients">MaxClients</a> <a name="maxclients" id="maxclients">指令</a></h2>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="directive">
<tr><th><a href="directive-dict.html#Description">说明</a></th><td>允许同时伺服的最大接入请求数量</td></tr>
<tr><th><a href="directive-dict.html#Syntax">语法</a></th><td><code>MaxClients <var>number</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">默认值</a></th><td><code>参见下面的说明</code></td></tr>
<tr><th><a href="directive-dict.html#Context">作用域</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">状态</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">模块</a></th><td><code class="module"><a href="../mod/beos.html">beos</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code></td></tr>
</table>
<p><code class="directive">MaxClients</code>指令设置了允许同时伺服的最大接入请求数量。任何超过<code class="directive">MaxClients</code>限制的请求都将进入等候队列,直到达到<code class="directive"><a href="#listenbacklog">ListenBacklog</a></code>指令限制的最大值为止。一旦一个链接被释放,队列中的请求将得到服务。</p>
<p>对于非线程型的MPM(也就是<code class="module"><a href="../mod/prefork.html">prefork</a></code>),<code class="directive">MaxClients</code>表示可以用于伺服客户端请求的最大子进程数量,默认值是<code>256</code>。要增大这个值,你必须同时增大<code class="directive"><a href="#serverlimit">ServerLimit</a></code> 。</p>
<p>对于线程型或者混合型的MPM(也就是<code class="module"><a href="../mod/beos.html">beos</a></code>或<code class="module"><a href="../mod/worker.html">worker</a></code>),<code class="directive">MaxClients</code>表示可以用于伺服客户端请求的最大线程数量。线程型的<code class="module"><a href="../mod/beos.html">beos</a></code>的默认值是<code>50</code>。对于混合型的MPM默认值是<code>16</code>(<code class="directive"><a href="#serverlimit">ServerLimit</a></code>)乘以<code>25</code>(<code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code>)的结果。因此要将<code class="directive">MaxClients</code>增加到超过16个进程才能提供的时候,你必须同时增加<code class="directive"><a href="#serverlimit">ServerLimit</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="MaxMemFree" id="MaxMemFree">MaxMemFree</a> <a name="maxmemfree" id="maxmemfree">指令</a></h2>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="directive">
<tr><th><a href="directive-dict.html#Description">说明</a></th><td>主内存分配程序在未调用<code>free()</code>的情况下允许持有的最大自由内存数量(KB)</td></tr>
<tr><th><a href="directive-dict.html#Syntax">语法</a></th><td><code>MaxMemFree <var>KBytes</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">默认值</a></th><td><code>MaxMemFree 0</code></td></tr>
<tr><th><a href="directive-dict.html#Context">作用域</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">状态</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">模块</a></th><td><code class="module"><a href="../mod/beos.html">beos</a></code>, <code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>, <code class="module"><a href="../mod/prefork.html">prefork</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><code class="directive">MaxMemFree</code>指令用于设置主内存分配程序在未调用<code>free()</code>的情况下允许持有的最大自由内存数量(KB)。若未设置或设置为"0",将表示无限制。</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="MaxRequestsPerChild" id="MaxRequestsPerChild">MaxRequestsPerChild</a> <a name="maxrequestsperchild" id="maxrequestsperchild">指令</a></h2>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="directive">
<tr><th><a href="directive-dict.html#Description">说明</a></th><td>每个子进程在其生存期内允许伺服的最大请求数量</td></tr>
<tr><th><a href="directive-dict.html#Syntax">语法</a></th><td><code>MaxRequestsPerChild <var>number</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">默认值</a></th><td><code>MaxRequestsPerChild 10000</code></td></tr>
<tr><th><a href="directive-dict.html#Context">作用域</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">状态</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">模块</a></th><td><code class="module"><a href="../mod/mpm_netware.html">mpm_netware</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>, <code class="module"><a href="../mod/prefork.html">prefork</a></code>, <code class="module"><a href="../mod/worker.html">worker</a></code></td></tr>
</table>
<p><code class="directive">MaxRequestsPerChild</code>指令设置每个子进程在其生存期内允许伺服的最大请求数量。到达<code class="directive">MaxRequestsPerChild</code>的限制后,子进程将会结束。如果<code class="directive">MaxRequestsPerChild</code>为"<code>0</code>",子进程将永远不会结束。</p>
<div class="note"><h3>不同的默认值</h3>
<p>在<code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>和<code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>上的默认值是"<code>0</code>"。</p>
</div>
<p>将<code class="directive">MaxRequestsPerChild</code>设置成非零值有两个好处:</p>
<ul>
<li>可以防止(偶然的)内存泄漏无限进行,从而耗尽内存。</li>
<li>给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。</li>
</ul>
<div class="note"><h3>注意</h3>
<p>对于<code class="directive"><a href="../mod/core.html#keepalive">KeepAlive</a></code>链接,只有第一个请求会被计数。事实上,它改变了每个子进程限制最大<em>链接</em>数量的行为。</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="MaxSpareThreads" id="MaxSpareThreads">MaxSpareThreads</a> <a name="maxsparethreads" id="maxsparethreads">指令</a></h2>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="directive">
<tr><th><a href="directive-dict.html#Description">说明</a></th><td>最大空闲线程数</td></tr>
<tr><th><a href="directive-dict.html#Syntax">语法</a></th><td><code>MaxSpareThreads <var>number</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">默认值</a></th><td><code>参见下面的说明</code></td></tr>
<tr><th><a href="directive-dict.html#Context">作用域</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">状态</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">模块</a></th><td><code class="module"><a href="../mod/beos.html">beos</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>, <code class="module"><a href="../mod/worker.html">worker</a></code></td></tr>
</table>
<p>设置最大空闲线程数。不同的MPM对这个指令的处理是不一样的:</p>
<p><code class="module"><a href="../mod/worker.html">worker</a></code>的默认值是"<code>250</code>"。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太多,子进程将杀死多余的空闲线程。</p>
<p><code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>的默认值是"<code>100</code>"。既然这个MPM只运行单独一个子进程,此MPM当然亦基于整个服务器监视空闲线程数。</p>
<p><code class="module"><a href="../mod/beos.html">beos</a></code>和<code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code>的工作方式与<code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>差不多,<code class="module"><a href="../mod/beos.html">beos</a></code>的默认值是"<code>50</code>";<code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code>的默认值是"<code>10</code>"。</p>
<div class="note"><h3>限制</h3>
<p><code class="directive">MaxSpareThreads</code>的取值范围是有限制的。Apache将按照如下限制自动修正你设置的值:</p>
<ul>
<li><code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>要求其小于等于<code class="directive"><a href="#minsparethreads">MinSpareThreads</a></code></li>
<li><code class="module"><a href="../mod/worker.html">worker</a></code>要求其大于等于<code class="directive"><a href="#minsparethreads">MinSpareThreads</a></code>加上<code class="directive"><a href="#threadsperchild">ThreadsPerChild</a></code>的和</li>
</ul>
</div>
<h3>参见</h3>
<ul>
<li><code class="directive"><a href="#minsparethreads">MinSpareThreads</a></code></li>
<li><code class="directive"><a href="#startservers">StartServers</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">MinSpareThreads</a> <a name="minsparethreads" id="minsparethreads">指令</a></h2>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#AAAAAA" class="directive">
<tr><th><a href="directive-dict.html#Description">说明</a></th><td>最小空闲线程数</td></tr>
<tr><th><a href="directive-dict.html#Syntax">语法</a></th><td><code>MinSpareThreads <var>number</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">默认值</a></th><td><code>参见下面的说明</code></td></tr>
<tr><th><a href="directive-dict.html#Context">作用域</a></th><td>server config</td></tr>
<tr><th><a href="directive-dict.html#Status">状态</a></th><td>MPM</td></tr>
<tr><th><a href="directive-dict.html#Module">模块</a></th><td><code class="module"><a href="../mod/beos.html">beos</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>, <code class="module"><a href="../mod/worker.html">worker</a></code></td></tr>
</table>
<p>设置最小空闲线程数,用于处理可能到来的突发请求。不同的MPM对这个指令的处理是不一样的:</p>
<p><code class="module"><a href="../mod/worker.html">worker</a></code>的默认值是"<code>75</code>"。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太少,子进程将产生新的空闲线程。</p>
<p><code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>的默认值是"<code>10</code>"。既然这个MPM只运行单独一个子进程,此MPM当然亦基于整个服务器监视空闲线程数。</p>
<p><code class="module"><a href="../mod/beos.html">beos</a></code>和<code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code>的工作方式与<code class="module"><a href="../mod/mpm_netware.html">mpm_netware</a></code>差不多,<code class="module"><a href="../mod/beos.html">beos</a></code>的默认值是"<code>1</code>";<code class="module"><a href="../mod/mpmt_os2.html">mpmt_os2</a></code>的默认值是"<code>5</code>"。</p>
<h3>参见</h3>
<ul>
<li><code class="directive"><a href="#maxsparethreads">MaxSpareThreads</a></code></li>
<li><code class="directive"><a href="#startservers">StartServers</a></code></li>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -