📄 perf-tuning.html.ko.euc-kr
字号:
<p>捞 扁瓷阑 何林狼窍霸 酒颇摹俊 眠啊沁阑锭 咯矾 蜡葱胶
滚傈俊辑 腹篮 巩力啊 惯积沁促. TCP 痹距篮
<code>FIN_WAIT_2</code>俊 鸥烙酒眶捞 乐促绊 沥窍瘤 臼疽瘤父,
陛瘤窍瘤档 臼疽促. 鸥烙酒眶捞 绝绰 矫胶袍俊辑 酒颇摹 1.2绰
腹篮 家南阑 康盔洒 <code>FIN_WAIT_2</code> 惑怕肺 父甸菌促.
腹篮 版快 捞 巩力绰 力累荤啊 力傍窍绰 弥脚 TCP/IP 菩摹甫
利侩窍咯 秦搬且 荐 乐促. 弊矾唱 力累荤啊 菩摹甫 惯钎窍瘤
臼绰 版快啊 (<em>溜,</em> SunOS4 -- 家胶 扼捞急胶啊 乐绰
荤恩篮 流立 菩摹且 荐 乐瘤父) 乐扁锭巩俊 捞 扁瓷阑 荤侩窍瘤
臼扁肺 搬沥沁促.</p>
<p>规过篮 滴啊瘤促. 窍唱绰 家南 可记 <code>SO_LINGER</code>甫
荤侩窍绰 规过捞促. 弊矾唱 阂青洒档 措何盒狼 TCP/IP 胶琶篮
捞 可记阑 棵官肺 备泅窍瘤 臼疽促. 棵官肺 备泅茄 胶琶俊辑
炼瞒档 (<em>溜,</em> 府椽胶 2.0.31) 捞 规过篮 促澜 规过焊促
歹 cpu甫 棱酒冈绰促.</p>
<p>酒颇摹绰 焊烹 (<code>http_main.c</code>俊 乐绰)
<code>lingering_close</code>扼绰 窃荐甫 荤侩茄促. 捞 窃荐绰
措面 促澜苞 鞍促:</p>
<div class="example"><p><code>
void lingering_close (int s)<br />
{<br />
<span class="indent">
char junk_buffer[2048];<br />
<br />
/* shutdown the sending side */<br />
shutdown (s, 1);<br />
<br />
signal (SIGALRM, lingering_death);<br />
alarm (30);<br />
<br />
for (;;) {<br />
<span class="indent">
select (s for reading, 2 second timeout);<br />
if (error) break;<br />
if (s is ready for reading) {<br />
<span class="indent">
if (read (s, junk_buffer, sizeof (junk_buffer)) <= 0) {<br />
<span class="indent">
break;<br />
</span>
}<br />
/* just toss away whatever is here */<br />
</span>
}<br />
</span>
}<br />
<br />
close (s);<br />
</span>
}
</code></p></div>
<p>捞 内靛绰 楷搬阑 摧阑锭 歹 CPU甫 荤侩窍瘤父, 救沥利牢
备泅阑 困秦 鞘夸窍促. HTTP/1.1捞 歹 澄府 欺瘤绊 葛电 楷搬阑
蜡瘤茄促搁(persistent), 楷搬阑 罐绰 厚侩篮 咯矾 夸没阑
贸府窍搁辑 惑尖瞪 巴捞促. 困氰窍霸档
<code>NO_LINGCLOSE</code>甫 沥狼窍咯 捞 扁瓷阑 荤侩窍瘤
臼阑 荐 乐瘤父, 例措肺 鼻窍瘤 臼绰促. 漂洒 HTTP/1.1
颇捞橇扼牢 <span class="transnote">(<em>开林;</em> 楷搬蜡瘤 惑怕俊辑 览翠阑 扁促府瘤
臼绊 咯矾 夸没阑 焊郴绰 扁贱)</span> 楷搬蜡瘤俊绰
<code>lingering_close</code>啊 鞘荐利捞促 (弊府绊 <a href="http://www.w3.org/Protocols/HTTP/Performance/Pipeline.html">
颇捞橇扼牢 楷搬捞 歹 狐福扁锭巩俊</a> 荤侩窍辨 官饿 巴捞促).</p>
<h3>Scoreboard 颇老</h3>
<p>酒颇摹狼 何葛客 磊侥篮 scoreboard扼绰 巴阑 烹秦 辑肺
烹脚茄促. 捞惑利栏肺绰 scoreboard甫 傍蜡皋葛府肺 备泅秦具
茄促. 快府 俺惯磊啊 秦寸 款康眉力俊 立辟且 荐 乐芭唱 惑技茄
器泼 搬苞甫 罐篮 版快 焊烹 傍蜡皋葛府甫 荤侩窍咯 备泅茄促.
唱赣瘤绰 叼胶农俊 乐绰 颇老阑 荤侩窍咯 备泅茄促. 叼胶农俊
乐绰 颇老篮 蠢府绊 脚汾档啊 冻绢柳促 (扁瓷档 歹 利促).
<code>src/main/conf.h</code> 颇老俊辑 荤侩窍绰 酒虐咆媚甫
茫酒辑 <code>USE_MMAP_SCOREBOARD</code> 趣篮
<code>USE_SHMGET_SCOREBOARD</code>牢瘤 犬牢茄促. 笛吝
窍唱甫 (阿阿 窃膊 荤侩且 <code>HAVE_MMAP</code>捞唱
<code>HAVE_SHMGET</code>档 鞍捞) 沥狼窍搁 傍蜡皋葛府 内靛甫
荤侩茄促. 矫胶袍捞 促弗 辆幅狼 傍蜡皋葛府甫 荤侩茄促搁
<code>src/main/http_main.c</code> 颇老阑 荐沥窍咯 酒颇摹俊辑
傍蜡皋葛府甫 荤侩且 荐 乐档废 扰(hook)阑 眠啊窍扼. (肚茄
菩摹甫 快府俊霸 焊郴林辨 官鄂促.)</p>
<div class="note">开荤利 汲疙: 酒颇摹狼 府椽胶 滚傈篮 酒颇摹 1.2 滚傈何磐
傍蜡皋葛府甫 荤侩窍扁 矫累沁促. 府椽胶俊辑 檬扁 酒颇摹
滚傈捞 蠢府绊 脚汾档啊 冻绢脸扁 锭巩捞促.</div>
<h3>DYNAMIC_MODULE_LIMIT</h3>
<p>葛碘阑 悼利栏肺 佬绢甸捞瘤 臼绰促搁 (啊瓷茄 炼陛捞扼档
己瓷阑 臭捞扁困秦 捞 臂阑 佬绰促搁 酒付档 葛碘阑 悼利栏肺
佬绢甸捞瘤 臼阑 巴捞促), 辑滚甫 哪颇老且锭
<code>-DDYNAMIC_MODULE_LIMIT=0</code>阑 眠啊茄促. 弊矾搁
葛碘阑 悼利栏肺 佬绢甸捞扁困秦 且寸窍绰 皋葛府甫 例距茄促.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="trace" id="trace">何废: 矫胶袍龋免 扁废阑 磊技洒 盒籍窍扁</a></h2>
<p>促澜篮 Solaris 8俊辑 worker MPM阑 荤侩茄 酒颇摹 2.0.38狼
矫胶袍龋免 扁废(trace)捞促. 酒贰 疙飞绢甫 荤侩窍咯 扁废阑
掘菌促:</p>
<div class="example"><p><code>
truss -l -p <var>httpd_child_pid</var>.
</code></p></div>
<p><code>-l</code> 可记阑 荤侩窍搁 truss绰 矫胶袍龋免阑
窍绰 LWP (lightweight process, 版樊鞭 橇肺技胶--Solaris狼
目澄荐霖 静饭靛) ID甫 鞍捞 扁废茄促.</p>
<p>促弗 矫胶袍俊绰 <code>strace</code>, <code>ktrace</code>,
<code>par</code> 鞍篮 矫胶袍龋免 眠利 档备啊 乐促. 搬苞绰
厚搅窍促.</p>
<p>努扼捞攫飘绰 昆辑滚俊霸 农扁啊 10KB牢 沥利 颇老阑 夸没茄促.
沥利牢 颇老阑 夸没窍瘤 臼芭唱 郴侩蛆惑窍绰 夸没阑 茄 版快
扁废捞 概快 促福促 (锭肺绰 概快 舅酒焊扁 塞甸促).</p>
<div class="example"><pre>/67: accept(3, 0x00200BEC, 0x00200C0C, 1) (sleeping...)
/67: accept(3, 0x00200BEC, 0x00200C0C, 1) = 9</pre></div>
<p>困俊辑 楷搬措扁(listener) 静饭靛啊 LWP #67俊辑 角青凳阑
舅 荐 乐促.</p>
<div class="note"><code>accept(2)</code> 流纺拳甫 荤侩窍瘤 臼澜阑 林格窍扼.
咯矾 器飘甫 扁促府瘤臼绰 版快 捞 敲贰汽狼 worker MPM篮
扁夯利栏肺 流纺拳窍瘤 臼篮 accept甫 荤侩茄促.</div>
<div class="example"><pre>/65: lwp_park(0x00000000, 0) = 0
/67: lwp_unpark(65, 1) = 0</pre></div>
<p>楷搬篮 罐酒甸捞绊(accept) 楷搬措扁 静饭靛绰
worker 静饭靛甫 柄况辑 夸没阑 贸府窍霸 茄促. 酒贰 扁废俊辑
夸没阑 贸府窍绰 worker 静饭靛啊 LWP #65烙阑 舅 荐 乐促.</p>
<div class="example"><pre>/65: getsockname(9, 0x00200BA4, 0x00200BC4, 1) = 0</pre></div>
<p>啊惑龋胶飘甫 备泅窍扁困秦 酒颇摹绰 楷搬阑 罐酒甸牢
瘤开(local) 家南 林家甫 舅酒具 茄促. (啊惑龋胶飘甫 荤侩窍瘤
臼芭唱 <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code>
瘤矫绢俊 客老靛墨靛 林家甫 荤侩窍瘤 臼篮 版快 殿) 腹篮 版快
捞 龋免阑 绝举 荐 乐促. 弊矾唱 酒流 捞繁 弥利拳 累诀捞
救登乐促. </p>
<div class="example"><pre>/65: brk(0x002170E8) = 0
/65: brk(0x002190E8) = 0</pre></div>
<p><code>brk(2)</code> 龋免篮 赛(heap)俊辑 皋葛府甫 且寸茄促.
昆辑滚绰 措何盒狼 夸没 贸府矫 磊眉 皋葛府
且寸磊(<code>apr_pool</code>苞 <code>apr_bucket_alloc</code>)甫
荤侩窍扁锭巩俊 矫胶袍龋免 扁废俊辑 捞 矫胶袍龋免阑 焊扁啊
靛拱促. 捞 扁废俊辑 昆辑滚绰 矫累窍磊付磊 磊眉 皋葛府 且寸磊啊
荤侩且 皋葛府喉废阑 掘扁困秦 <code>malloc(3)</code>阑 龋免茄促.</p>
<div class="example"><pre>/65: fcntl(9, F_GETFL, 0x00000000) = 2
/65: fstat64(9, 0xFAF7B818) = 0
/65: getsockopt(9, 65535, 8192, 0xFAF7B918, 0xFAF7B910, 2190656) = 0
/65: fstat64(9, 0xFAF7B818) = 0
/65: getsockopt(9, 65535, 8192, 0xFAF7B918, 0xFAF7B914, 2190656) = 0
/65: setsockopt(9, 65535, 8192, 0xFAF7B918, 4, 2190656) = 0
/65: fcntl(9, F_SETFL, 0x00000082) = 0</pre></div>
<p>促澜 worker 静饭靛绰 努扼捞攫飘狼 楷搬(颇老扁贱磊 9)阑
措扁救窃(non-blocking) 惑怕肺 官槽促. <code>setsockopt(2)</code>客
<code>getsockopt(2)</code> 龋免篮 Solaris狼 libc啊 家南俊
措茄 <code>fcntl(2)</code>阑 绢痘霸 贸府窍绰瘤 焊咯霖促.</p>
<div class="example"><pre>/65: read(9, " G E T / 1 0 k . h t m".., 8000) = 97</pre></div>
<p>worker 静饭靛绰 努扼捞攫飘肺 何磐 夸没阑 佬绰促.</p>
<div class="example"><pre>/65: stat("/var/httpd/apache/httpd-8999/htdocs/10k.html", 0xFAF7B978) = 0
/65: open("/var/httpd/apache/httpd-8999/htdocs/10k.html", O_RDONLY) = 10</pre></div>
<p>昆辑滚 汲沥篮 <code>Options FollowSymLinks</code>客
<code>AllowOverride None</code>捞促. 弊贰辑 夸没茄 颇老版肺狼
阿 叼泛配府俊 措秦 <code>lstat(2)</code>窍芭唱
<code>.htaccess</code> 颇老阑 八荤且 鞘夸啊 绝促. 颇老阑
八荤窍扁困秦, 1) 颇老捞 乐绰瘤, 2) 叼泛配府啊 酒囱 老馆颇老牢瘤,
<code>stat(2)</code> 龋免父 窍搁 等促.</p>
<div class="example"><pre>/65: sendfilev(0, 9, 0x00200F90, 2, 0xFAF7B53C) = 10269</pre></div>
<p>捞 版快 昆辑滚绰 茄锅狼 <code>sendfilev(2)</code> 矫胶袍龋免肺
HTTP 览翠庆歹客 夸没茄 颇老阑 傈价且 荐 乐促. Sendfile 瘤盔咯何绰
款康眉力付促 促福促. 促弗 矫胶袍捞扼搁 <code>sendfile(2)</code>阑
龋免窍扁 傈俊 庆歹甫 焊郴扁困秦 <code>write(2)</code>唱
<code>writev(2)</code> 龋免阑 茄促.</p>
<div class="example"><pre>/65: write(4, " 1 2 7 . 0 . 0 . 1 - ".., 78) = 78</pre></div>
<p><code>write(2)</code> 龋免篮 立辟肺弊(access log)俊 夸没阑
扁废茄促. 捞 扁废俊 <code>time(2)</code> 龋免捞 绝澜阑 林格窍扼.
酒颇摹 1.3苞 崔府 酒颇摹 2.0篮 矫埃阑 舅扁困秦
<code>gettimeofday(3)</code>甫 荤侩茄促.
<code>gettimeofday</code>甫 弥利拳茄 府椽胶客 Solaris 鞍篮
割割 款康眉力俊辑绰 老馆利牢 矫胶袍龋免 何淬捞 绝促.</p>
<div class="example"><pre>/65: shutdown(9, 1, 1) = 0
/65: poll(0xFAF7B980, 1, 2000) = 1
/65: read(9, 0xFAF7BC20, 512) = 0
/65: close(9) = 0</pre></div>
<p>worker 静饭靛绰 楷搬阑 瘤楷摧扁(lingering close)茄促.</p>
<div class="example"><pre>/65: close(10) = 0
/65: lwp_park(0x00000000, 0) (sleeping...)</pre></div>
<p>付瘤阜栏肺 worker 静饭靛绰 规陛 傈价茄 颇老阑 摧绊,
楷搬措扁(listener) 静饭靛啊 促弗 楷搬阑 且寸且 锭鳖瘤
沥瘤茄促.</p>
<div class="example"><pre>/67: accept(3, 0x001FEB74, 0x001FEB94, 1) (sleeping...)</pre></div>
<p>弊悼救 楷搬措扁 静饭靛绰 楷搬阑 (葛电 worker啊 累诀吝捞搁
楷搬措扁 静饭靛甫 肛眠绰 worker MPM狼 儒抚力绢 扁瓷俊 蝶扼)
worker 静饭靛俊 且寸窍磊付磊 促弗 楷搬阑 罐酒甸老 荐 乐促.
捞 扁废俊绰 唱坷瘤 臼瘤父, worker 静饭靛啊 规陛 罐篮 楷搬阑
贸府窍绰 悼救 促澜 <code>accept(2)</code>啊 (夸没捞 概快
腹篮 版快 亲惑) 老绢朝 荐 乐促.</p>
</div></div>
<div class="bottomlang">
<p><span>啊瓷茄 攫绢: </span><a href="../en/misc/perf-tuning.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../ko/misc/perf-tuning.html" title="Korean"> ko </a></p>
</div><div id="footer">
<p class="apache">Copyright 2006 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">葛碘</a> | <a href="../mod/directives.html">瘤矫绢甸</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">侩绢</a> | <a href="../sitemap.html">荤捞飘甘</a></p></div>
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -