📄 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 + -