📄 perf-tuning.html.ko.euc-kr
字号:
(扁夯蔼牢) <code>ExtendedStatus off</code>甫 汲沥茄促.</p>
<h3>accept 流纺拳 - 咯矾 家南</h3>
<div class="warning"><h3>林狼:</h3>
<p> 酒贰 巩辑绰 酒颇摹 昆辑滚 2.0 滚傈俊辑 函版等 郴侩阑
淬绊 乐瘤 臼促. 酒流档 蜡瓤茄 沥焊啊 乐瘤父, 林狼秦辑
荤侩窍辨 官鄂促.</p>
</div>
<p>蜡葱胶 家南 API狼 窜痢阑 汲疙茄促. 昆辑滚啊 咯矾 器飘
趣篮 咯矾 林家甫 扁促府扁困秦 咯矾 <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code>阑 荤侩茄促绊 啊沥窍磊.
楷搬捞 啊瓷茄瘤 阿 家南阑 八荤窍扁困秦 酒颇摹绰
<code>select(2)</code>甫 荤侩茄促. <code>select(2)</code>绰
家南俊 扁促府绊 乐绰 楷搬捞 <em>绝绰瘤</em> 趣篮 <em>弥家茄
茄俺</em> 乐绰瘤 舅妨霖促. 酒颇摹俊绰 咯矾 磊侥捞 乐绊,
浆绊 乐绰 葛电 磊侥篮 悼矫俊 货肺款 楷搬阑 八荤茄促. 盔贰
备泅篮 促澜苞 厚搅窍促 (捞 抗绰 内靛俊辑 啊廉坷瘤 臼疽促.
窜瘤 汲疙窍扁困茄 侩档肺 父甸菌促.):</p>
<div class="example"><p><code>
for (;;) {<br />
<span class="indent">
for (;;) {<br />
<span class="indent">
fd_set accept_fds;<br />
<br />
FD_ZERO (&accept_fds);<br />
for (i = first_socket; i <= last_socket; ++i) {<br />
<span class="indent">
FD_SET (i, &accept_fds);<br />
</span>
}<br />
rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL);<br />
if (rc < 1) continue;<br />
new_connection = -1;<br />
for (i = first_socket; i <= last_socket; ++i) {<br />
<span class="indent">
if (FD_ISSET (i, &accept_fds)) {<br />
<span class="indent">
new_connection = accept (i, NULL, NULL);<br />
if (new_connection != -1) break;<br />
</span>
}<br />
</span>
}<br />
if (new_connection != -1) break;<br />
</span>
}<br />
process the new_connection;<br />
</span>
}
</code></p></div>
<p>弊矾唱 困狼 窜鉴茄 备泅俊绰 缴阿茄 绊哎(starvation)
巩力啊 乐促. 咯矾 磊侥捞 悼矫俊 捞 馆汗巩阑 角青窍搁,
夸没阑 扁促府哥 葛滴 <code>select</code>俊辑 肛冕促. 捞锭
绢恫 家南俊 夸没捞 窍唱扼档 甸绢坷搁 葛电 磊侥捞 柄绢抄促
(柄绢唱绰 磊侥狼 俺荐绰 款康眉力客 鸥捞怪俊 蝶扼 促福促).
捞甸篮 葛滴 楷搬阑 <code>accept</code>窍辨 矫档茄促. 弊矾唱
(酒流档 茄 楷搬父 措扁吝捞扼搁) 茄 磊侥父 己傍窍绊, 唱赣瘤绰
<code>accept</code>俊辑 <em>肛冕促.</em> 弊矾搁 捞 磊侥甸篮
茄 家南狼 夸没父阑 辑厚胶窍档废 弓咯辑, 弊 家南栏肺 货肺款
夸没捞 面盒洒 甸绢客辑 葛电 磊侥阑 柄匡锭鳖瘤 沥瘤秦乐促.
捞繁 绊哎 巩力绰 <a href="http://bugs.apache.org/index/full/467">PR#467</a>俊
贸澜 焊绊登菌促. 弥家茄 滴啊瘤 秦搬氓捞 乐促.</p>
<p>茄啊瘤绰 家南阑 措扁窍瘤 臼档废 (non-blocking) 父靛绰
规过捞促. 捞 版快 磊侥捞 <code>accept</code>甫 秦档 肛眠瘤
臼绊, 溜矫 柳青且 荐 乐促. 弊矾唱 CPU 矫埃阑 扯厚茄促.
<code>select</code>俊辑 浆绰 磊侥捞 10俺 乐绊, 货肺 楷搬捞
茄俺 甸绢吭促绊 啊沥窍磊. 弊矾搁 捞 磊侥吝 9俺绰 柄绢唱辑
楷搬阑 <code>accept</code>窍辨 矫档窍绊 角菩窍搁 酒公
老档 窍瘤 臼绊 促矫 <code>select</code>甫 馆汗茄促. 促矫
<code>select</code>肺 倒酒棵 锭鳖瘤 绢恫 磊侥档 促弗 家南俊
甸绢柯 夸没阑 辑厚胶窍瘤 臼绰促. (促吝橇肺技辑 哪腔磐俊辑)
浆绰 磊侥 俺荐父怒 CPU 俺荐啊 乐绰 靛巩 版快啊 酒聪扼搁
捞 秦搬氓篮 喊肺 亮酒焊捞瘤 臼绰促.</p>
<p>促弗 规过篮 酒颇摹啊 荤侩窍绰 规过栏肺 郴何 馆汗巩俊
茄 磊侥父阑 甸咯焊辰促. 馆汗巩篮 促澜苞 鞍促 (瞒捞甫
碍炼沁澜):</p>
<div class="example"><p><code>
for (;;) {<br />
<span class="indent">
<strong>accept_mutex_on ();</strong><br />
for (;;) {<br />
<span class="indent">
fd_set accept_fds;<br />
<br />
FD_ZERO (&accept_fds);<br />
for (i = first_socket; i <= last_socket; ++i) {<br />
<span class="indent">
FD_SET (i, &accept_fds);<br />
</span>
}<br />
rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL);<br />
if (rc < 1) continue;<br />
new_connection = -1;<br />
for (i = first_socket; i <= last_socket; ++i) {<br />
<span class="indent">
if (FD_ISSET (i, &accept_fds)) {<br />
<span class="indent">
new_connection = accept (i, NULL, NULL);<br />
if (new_connection != -1) break;<br />
</span>
}<br />
</span>
}<br />
if (new_connection != -1) break;<br />
</span>
}<br />
<strong>accept_mutex_off ();</strong><br />
process the new_connection;<br />
</span>
}
</code></p></div>
<p><code>accept_mutex_on</code>苞 <code>accept_mutex_off</code>
<a id="serialize" name="serialize">窃荐</a>绰 mutex 技付器绢甫
备泅茄促. 茄锅俊 坷流 茄 磊侥父捞 mutex甫 啊龙 荐 乐促.
mutex甫 备泅窍绰 规过篮 咯矾啊瘤捞促. 备泅 规过篮 (1.3
捞傈) <code>src/conf.h</code>唱 (1.3苞 弊 捞饶)
<code>src/include/ap_config.h</code>俊 沥狼登乐促. 绢恫
酒虐咆媚绰 泪陛(locking) 规过阑 急琶窍瘤 臼扁锭巩俊, 捞繁
酒虐咆媚俊辑 咯矾 <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code> 瘤矫绢甫 荤侩窍搁
困氰窍促.</p>
<p>角青矫 <code class="directive"><a href="../mod/mpm_common.html#acceptmutex">AcceptMutex</a></code> 瘤矫绢甫 荤侩窍咯
mutex 备泅阑 函版且 荐 乐促.</p>
<dl>
<dt><code>AcceptMutex flock</code></dt>
<dd>
<p>捞 规过篮 泪陛颇老阑 泪弊扁困秦 <code>flock(2)</code>
矫胶袍龋免阑 荤侩茄促 (泪陛颇老 困摹绰 <code class="directive"><a href="../mod/mpm_common.html#lockfile">LockFile</a></code> 瘤矫绢肺 瘤沥).</p>
</dd>
<dt><code>AcceptMutex fcntl</code></dt>
<dd>
<p>捞 规过篮 泪陛颇老阑 泪弊扁困秦 <code>fcntl(2)</code>
矫胶袍龋免阑 荤侩茄促 (泪陛颇老 困摹绰 <code class="directive"><a href="../mod/mpm_common.html#lockfile">LockFile</a></code> 瘤矫绢肺 瘤沥).</p>
</dd>
<dt><code>AcceptMutex sysvsem</code></dt>
<dd>
<p>(1.3苞 弊 捞饶) 捞 规过阑 SysV侥 技付器绢甫 荤侩窍咯
mutex甫 备泅茄促. 阂青洒档 SysV侥 技付器绢绰 唱慧
何累侩捞 乐促. 窍唱绰 酒颇摹啊 技付器绢甫 沥府窍瘤
臼绊 磷阑 荐 乐绰 痢捞促 (<code>ipcs(8)</code> manpage
曼绊). 促弗 窍唱绰 昆辑滚客 悼老茄 uid肺 角青窍绰
CGI啊 (<em>溜,</em> <code>suexec</code>唱
<code>cgiwrapper</code>甫 荤侩窍瘤臼绰 茄 葛电 CGI)
技付器绢 API甫 荤侩窍咯 辑厚胶芭何傍拜阑 且 荐 乐绰
痢捞促. 捞繁 捞蜡锭巩俊 IRIX甫 力寇茄 酒虐咆媚俊辑
捞 规过阑 荤侩窍瘤 臼绰促 (措何盒狼 IRIX 哪腔磐俊辑
菊狼 滴 规过篮 瘤唱摹霸 滚疤促).</p>
</dd>
<dt><code>AcceptMutex pthread</code></dt>
<dd>
<p>(1.3苞 弊 捞饶) 捞 规过篮 POSIX mutex甫 荤侩窍扁锭巩俊
POSIX 静饭靛 痹距阑 肯傈洒 备泅茄 酒虐咆媚扼搁 葛滴
荤侩啊瓷窍瘤父, (2.5 捞饶) Solaris俊辑父 弊巴档 漂沥
备己俊辑父 悼累窍绰 淀窍促. 捞 规过阑 矫档秦夯促搁
辑滚啊 肛苗辑 览翠阑 救窍绰瘤 混旗毫具 茄促. 沥利
郴侩父 辑厚胶窍绰 辑滚绰 肋 悼累窍绰 巴 鞍促.</p>
</dd>
<dt><code>AcceptMutex posixsem</code></dt>
<dd>
<p>(2.0苞 弊 捞饶) 捞 规过篮 POSIX 技付器绢甫 荤侩茄促.
mutex甫 啊柳 橇肺技胶狼 静饭靛啊 磷绰促搁(segfault)
技付器绢 家蜡鼻捞 雀汗登瘤 臼酒辑 昆辑滚啊 肛冕促.</p>
</dd>
</dl>
<p>矫胶袍俊 困 格废俊 绝绰 流纺拳(serialization) 规过捞
乐促搁 弊 规过阑 荤侩窍绰 内靛甫 APR俊 眠啊且 啊摹啊 乐促.</p>
<p>绊妨绰 秦好瘤父 备泅窍瘤臼篮 促弗 规过篮 何盒利栏肺
馆汗巩阑 流纺拳窍绰 规过捞促. 溜, 橇肺技辑甫 割俺父 甸咯焊郴绰
巴捞促. 捞 规过篮 咯矾 磊侥阑 悼矫俊 角青且 荐 乐绢辑
流纺拳锭巩俊 傈眉 措开气阑 劝侩窍瘤 给窍绰 促吝橇肺技辑
哪腔磐俊辑父 包缴阑 啊廉杭 荐 乐促. 菊栏肺 混旗杭 何盒捞瘤父,
概快 捍纺拳等 昆辑滚啊 如窍瘤 臼酒辑 快急鉴困啊 撤促.</p>
<p>弥惑狼 己瓷阑 掘扁困秦辑绰 咯矾 <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code> 巩阑 荤侩窍瘤 臼绰
巴捞 捞惑利捞促. 弊矾唱 拌加 汲疙茄促.</p>
<h3>accept 流纺拳 - 家南 茄俺</h3>
<p>菊狼 汲疙篮 促吝家南 辑滚俊绰 亮瘤父, 家南捞 茄俺牢
辑滚绰 绢恫啊? 楷搬捞 档馒且锭鳖瘤 葛电 磊侥捞
<code>accept(2)</code>俊辑 肛苗乐扁锭巩俊 捞沸惑 鞍篮
巩力啊 惯积窍瘤 臼绊, 绊哎 巩力档 绝促. 弊矾唱 角力肺绰
菊俊辑 富茄 措扁窍瘤 臼绰 (non-blocking) 规过俊辑 惯积窍绰
"傍雀傈(spinning)" 泅惑阑 皑眠绊 乐促. 措何盒狼 TCP 胶琶篮
楷搬捞 档馒窍搁 目澄捞 <code>accept</code>俊辑 肛苗乐绰
葛电 磊侥阑 柄快档废 备泅登乐促. 橇肺技胶吝 茄俺啊 楷搬阑
掘绊 荤侩磊康开栏肺 倒酒啊绊, 唱赣瘤绰 目澄俊辑 傍雀傈窍咯
楷搬捞 绝澜阑 惯斑窍搁 促矫 泪阑 儡促. 荤侩磊康开 内靛俊辑绰
捞繁 傍雀傈阑 舅 荐 绝瘤父, 盒疙洒 粮犁茄促. 弊贰辑 促吝家南狼
措扁窍瘤 臼绰 规过苞 悼老窍霸 何窍甫 臭捞绰 阂鞘夸茄 青悼捞
老绢抄促.</p>
<p>弊贰辑 快府绰 咯矾 酒虐咆媚俊辑 家南捞 茄俺牢 版快俊档
流纺拳窍搁 歹 "肋" 悼累窃阑 惯斑沁促. 弊贰辑 芭狼 措何盒狼
版快 扁夯利栏肺 流纺拳甫 荤侩茄促. 府椽胶俊辑 (目澄 2.0.30,
128Mb 皋葛府俊 掂倔 Pentium pro) 角氰茄 搬苞 家南 茄俺甫
流纺拳窍搁 窍瘤 臼篮 版快俊 厚秦 檬寸 夸没捞 3% 固父
临绢甸菌促. 弊矾唱 流纺拳甫 窍瘤 臼篮 版快 夸没寸 100ms
瘤楷捞 惯积沁促. 捞 瘤楷篮 酒付档 LAN俊辑 惯积窍绰 变
楷搬急锭巩老 巴捞促. 家南捞 茄俺牢 版快 流纺拳甫 荤侩窍瘤
臼栏妨搁 <code>SINGLE_LISTEN_UNSERIALIZED_ACCEPT</code>甫
沥狼茄促.</p>
<h3>Close 瘤楷(lingering)</h3>
<p><a href="http://www.ics.uci.edu/pub/ietf/http/draft-ietf-http-connection-00.txt">
draft-ietf-http-connection-00.txt</a> 8例俊辑 汲疙窍淀捞
<strong>救沥利牢</strong> 昆辑滚啊 登妨搁, 烹脚狼 剧 规氢阑
刀赋利栏肺 摧阑 荐 乐绢具 茄促 (TCP 楷搬篮 街规氢捞绊,
规氢篮 辑肺 刀赋利捞促). 捞痢阑 促弗 辑滚俊辑绰 磊林
埃苞窍瘤父, 酒颇摹绰 1.2何磐 沥犬洒 备泅秦吭促.</p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -