home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 November / CMCD1104.ISO / Software / Complet / Apache / apache_2.0.52-win32-x86-no_ssl.msi / Data.Cab / F277900_perftuning.html.ko.euckr < prev    next >
Extensible Markup Language  |  2004-05-07  |  46KB  |  974 lines

  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko"><head><!--
  4.         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  5.               This file is generated from xml source: DO NOT EDIT
  6.         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  7.       -->
  8. <title>╛╞╞──í ╝║┤╔╟Γ╗≤ - Apache HTTP Server</title>
  9. <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
  10. <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
  11. <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
  12. <link href="../images/favicon.ico" rel="shortcut icon" /></head>
  13. <body id="manual-page"><div id="page-header">
  14. <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>
  15. <p class="apache">Apache HTTP Server Version 2.0</p>
  16. <img alt="" src="../images/feather.gif" /></div>
  17. <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
  18. <div id="path">
  19. <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs-project/">Documentation</a> > <a href="../">Version 2.0</a> > <a href="./">Miscellaneous Documentation</a></div><div id="page-content"><div id="preamble"><h1>╛╞╞──í ╝║┤╔╟Γ╗≤</h1>
  20. <div class="toplang">
  21. <p><span>░í┤╔╟╤ ╛≡╛ε: </span><a href="../en/misc/perf-tuning.html" hreflang="en" rel="alternate" title="English"> en </a> |
  22. <a href="../ko/misc/perf-tuning.html" title="Korean"> ko </a></p>
  23. </div>
  24.  
  25.  
  26.     <p>╛╞╞──í 2.0└║ ▒Γ┤╔░· ╞≈╞├░í┤╔╝║░· ╝║┤╔└╟ ▒╒╟ⁿ└╠ ╕┬╡╡╖╧
  27.     ╝│░Φ╟╤ ╣ⁿ┐δ └Ñ╝¡╣÷└╠┤┘. ║Ñ─í╕╢┼⌐ ▒Γ╖╧└╗ ╝╝┐∞▒Γ└º╟╪ ╝│░Φ╟╧┴÷
  28.     ╛╩╛╥┴÷╕╕ ╛╞╞──í 2.0└║ ╜╟┴ª ╕╣└║ ░µ┐∞ │⌠└║ ╝║┤╔└╗ │╜┤┘.</p>
  29.  
  30.     <p>╛╞╞──í 1.3░· ║±▒│╟╪╝¡ 2.0 ╣÷└ⁿ└║ ├│╕«╖«░· ╚«└σ╝║(scalability)└╗
  31.     │⌠└╠▒Γ└º╟╪ ╕╣└║ ├╓└√╚¡╕ª ╟▀┤┘. ▒Γ║╗░¬└╕╖╬ ┤δ║╬║╨ ├╓└√╚¡╟╤
  32.     ░¬└╗ ╗τ┐δ╟╤┤┘. ▒╫╖»│¬ ──╞─└╧╜├ ╚ñ└║ ╜╟╟α╜├ ╝│┴ñ└╠ ╝║┤╔┐í
  33.     ┼½ ┐╡╟Γ└╗ ┴┘ ╝÷ └╓┤┘. └╠ ╣«╝¡┤┬ ╛╞╞──í 2.0└╟ ╝║┤╔└╗ ╟Γ╗≤╟╧▒Γ└º╟╪
  34.     ╝¡╣÷ ░ⁿ╕«└┌░í ╝│┴ñ╟╥ ╝÷ └╓┤┬ ┐╔╝╟└╗ ╝│╕φ╟╤┤┘. ╛ε╢▓ ╝│┴ñ
  35.     ┐╔╝╟└║ └Ñ╝¡╣÷░í ╟╧╡σ┐■╛ε┐═ ┐ε┐╡├╝┴ª└╟ ▒Γ┤╔└╗ ┤⌡ └▀ ╚░┐δ╟╧╡╡╖╧
  36.     ╟╧┤┬ ╣▌╕Θ, ╛ε╢▓ ┐╔╝╟└║ ╝╙╡╡╕ª └º╟╪ ▒Γ┤╔└╗ ╚±╗²╟╤┤┘.</p>
  37.  
  38.   </div>
  39. <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#hardware">╟╧╡σ┐■╛ε┐═ ┐ε┐╡├╝┴ª┐í ┤δ╟╪╝¡</a></li>
  40. <li><img alt="" src="../images/down.gif" /> <a href="#runtime">╜╟╟α╜├ ╝│┴ñ┐í ┤δ╟╪╝¡</a></li>
  41. <li><img alt="" src="../images/down.gif" /> <a href="#compiletime">──╞─└╧╜├ ╝│┴ñ┐í ┤δ╟╪╝¡</a></li>
  42. <li><img alt="" src="../images/down.gif" /> <a href="#trace">║╬╖╧: ╜├╜║┼█╚ú├Γ ▒Γ╖╧└╗ └┌╝╝╚≈ ║╨╝«╟╧▒Γ</a></li>
  43. </ul></div>
  44. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  45. <div class="section">
  46. <h2><a name="hardware" id="hardware">╟╧╡σ┐■╛ε┐═ ┐ε┐╡├╝┴ª┐í ┤δ╟╪╝¡</a></h2>
  47.  
  48.     
  49.  
  50.     <p>└Ñ╝¡╣÷ ╝║┤╔┐í ░í└σ ┼½ ┐╡╟Γ└╗ ┴╓┤┬ ░═└║ ╕▐╕≡╕«┤┘. ╜║┐╥└║
  51.     ┐Σ├╗┤τ ┴÷┐¼╜├░ú└╗ ╗τ┐δ└┌░í "├µ║╨╚≈ ║ⁿ╕ú┤┘░φ" ╗²░ó╟╧┴÷ ╕°╟╧░╘
  52.     ┤├╕«▒Γ╢º╣«┐í └Ñ╝¡╣÷┤┬ ╜║┐╥└╗ ╟╧╕Θ ╛╚╡╚┤┘. ┤└╖┴┴÷╕Θ ╗τ┐δ└┌┤┬
  53.     ┴ñ┴÷╟╧░φ ┤┘╜├ ┴ó╝╙╟╧┐⌐ ║╬╟╧░í ░Φ╝╙ ┴⌡░í╟╤┤┘. <code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code> ┴÷╜├╛ε╕ª ┴╢└²╟╧┐⌐
  54.     └Ñ╝¡╣÷░í ╜║┐╥└╗ ╟╥ ┴ñ╡╡╖╬ ╕╣└║ └┌╜─└╗ ╕╕╡Θ┴÷╛╩╡╡╖╧ ╟╪╛▀
  55.     ╟╤┤┘. ╣µ╣²└║ ░ú┤▄╟╧┤┘: <code>top</code>░· ░░└║ ╡╡▒╕┐í╝¡
  56.     ╟┴╖╬╝╝╜║ ╕±╖╧└╗ ║╕░φ ╛╞╞──í ╟┴╖╬╝╝╜║└╟ ╞≥▒╒ ╕▐╕≡╕« ╗τ┐δ╖«└╗
  57.     ╛╦╛╞│╜╚─, └ⁿ├╝ ╗τ┐δ░í┤╔╟╤ ╕▐╕≡╕«┐í╝¡ ┤┘╕Ñ ╟┴╖╬╝╝╜║╡Θ└╠ ╗τ┐δ╟╥
  58.     ░°░ú└╗ ╗½ ░¬┐í╝¡ │¬┤½┤┘.</p>
  59.  
  60.     <p>│¬╕╙┴÷┤┬ ╞≥╣ⁿ╟╧┤┘: ├µ║╨╚≈ ║ⁿ╕Ñ CPU, ├µ║╨╚≈ ║ⁿ╕Ñ │╫╞«┐≈─½╡σ,
  61.     ├µ║╨╚≈ ║ⁿ╕Ñ ╡≡╜║┼⌐, ┐⌐▒Γ╝¡ "├µ║╨╚≈ ║ⁿ╕Ñ"└║ ╜╟╟Φ└╗ ╟╪╝¡ ░ß┴ñ╟╪╛▀
  62.     ╟╤┤┘.</p>
  63.  
  64.     <p>┐ε┐╡├╝┴ª┤┬ ║╕┼δ ░ó└┌ ╛╦╛╞╝¡ ╝▒┼├╟╥ └╧└╠┤┘. ▒╫╖»│¬ └╧╣▌└√└╕╖╬
  65.     └»┐δ╟╧┤┘░φ ╞╟╕φ╡╚ ╕ε░í┴÷ ┴÷─º└╠ └╓┤┘:</p>
  66.  
  67.     <ul>
  68.       <li>
  69.         <p>╝▒┼├╟╤ ┐ε┐╡├╝┴ª└╟ ├╓╜┼ ╛╚┴ñ ╣÷└ⁿ░· ╞╨─í╕ª ╜╟╟α╟╤┤┘.
  70.         ╕╣└║ ┐ε┐╡├╝┴ª ┴ª└█╗τ┤┬ ├╓▒┘ TCP ╜║┼├░· ╛▓╖╣╡σ ╢≤└╠║Ω╖»╕«┐í
  71.         ╕╣└║ ╝╙╡╡╟Γ╗≤└╗ ╟▀┤┘.</p>
  72.       </li>
  73.  
  74.       <li>
  75.         <p>┐ε┐╡├╝┴ª░í <code>sendfile(2)</code> ╜├╜║┼█╚ú├Γ└╗
  76.         ┴÷┐°╟╤┤┘╕Θ, └╠╕ª ╗τ┐δ╟╧▒Γ└º╟╤ ╣÷└ⁿ└╠│¬ ╞╨─í╕ª ╝│─í╟╧┐┤┤┬┴÷
  77.         ╚«└╬╟╤┤┘. (┐╣╕ª ╡Θ╛ε, ╕«┤¬╜║╢≤╕Θ 2.4 └╠╗≤ ╣÷└ⁿ└╗ ╢µ╟╤┤┘.
  78.         Solaris 8 ├╩▒Γ ╣÷└ⁿ└║ ╞╨─í░í ╟╩┐Σ╟╧┤┘.) ┴÷┐°╟╧┤┬ ╜├╜║┼█└╠╢≤╕Θ
  79.         ╛╞╞──í 2┤┬ <code>sendfile</code>└╗ ╗τ┐δ╟╧┐⌐ CPU╕ª ┤·
  80.         ╗τ┐δ╟╧╕τ ┴ñ└√ ╞─└╧└╗ ┤⌡ ╗í╕« └ⁿ╝█╟╥ ╝÷ └╒┤┘.</p>
  81.       </li>
  82.     </ul>
  83.  
  84.   </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  85. <div class="section">
  86. <h2><a name="runtime" id="runtime">╜╟╟α╜├ ╝│┴ñ┐í ┤δ╟╪╝¡</a></h2>
  87.  
  88.     
  89.  
  90.     <table class="related"><tr><th>░ⁿ╖├╡╚ ╕≡╡Γ</th><th>░ⁿ╖├╡╚ ┴÷╜├╛ε</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code></li><li><code class="module"><a href="../mod/mpm_common.html">mpm_common</a></code></li><li><code class="module"><a href="../mod/mod_status.html">mod_status</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code></li><li><code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code></li><li><code class="directive"><a href="../mod/core.html#hostnamelookups">HostnameLookups</a></code></li><li><code class="directive"><a href="../mod/core.html#enablemmap">EnableMMAP</a></code></li><li><code class="directive"><a href="../mod/core.html#enablesendfile">EnableSendfile</a></code></li><li><code class="directive"><a href="../mod/core.html#keepalivetimeout">KeepAliveTimeout</a></code></li><li><code class="directive"><a href="../mod/prefork.html#maxspareservers">MaxSpareServers</a></code></li><li><code class="directive"><a href="../mod/prefork.html#minspareservers">MinSpareServers</a></code></li><li><code class="directive"><a href="../mod/core.html#options">Options</a></code></li><li><code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code></li></ul></td></tr></table>
  91.  
  92.     <h3><a name="dns" id="dns">HostnameLookups┐═ DNS┐í ┤δ╟╪ ░φ╖┴╟╥ ┴í╡Θ</a></h3>
  93.  
  94.       
  95.  
  96.       <p>╛╞╞──í 1.3 └╠└ⁿ┐í <code class="directive"><a href="../mod/core.html#hostnamelookups">HostnameLookups</a></code>└╟ ▒Γ║╗░¬└║
  97.       <code>On</code>└╠┐┤┤┘. ┐Σ├╗└╗ ╕╢─í▒Γ└ⁿ┐í DNS ░╦╗÷└╠ │í│¬╛▀
  98.       ╟╧╣╟╖╬ ┐Σ├╗╕╢┤┘ ┴÷┐¼└╠ ╗²░σ┤┘. ╛╞╞──í 1.3┐í╝¡ └╠ ╝│┴ñ└╟
  99.       ▒Γ║╗░¬└╠ <code>Off</code>╖╬ ║»░µ╡╟╛·┤┘. ╖╬▒╫╞─└╧└╟ ┴╓╝╥╕ª
  100.       ╚ú╜║╞«╕φ└╕╖╬ ║»╚»╟╧╖┴╕Θ ┐⌐╖» ╖╬▒╫├│╕« ╟┴╖╬▒╫╖Ñ┴▀ ╟╧│¬└╬,
  101.       ╛╞╞──í┐í ╞≈╟╘╡╚ <a href="../programs/logresolve.html"><code>logresolve</code></a>
  102.       ╟┴╖╬▒╫╖Ñ└╗ ╗τ┐δ╟╧╢≤.</p>
  103.  
  104.       <p>╖╬▒╫├│╕« └█╛≈└╠ ╝¡╣÷ ╝║┤╔┐í ╛╟┐╡╟Γ└╗ ╣╠─í╣╟╖╬ ╜╟┴ª
  105.       ╗τ┐δ╟╧┤┬ └Ñ╝¡╣÷░í ╛╞┤╤ ┤┘╕Ñ ──╟╗┼═┐í╝¡ ╖╬▒╫╞─└╧└╗ ╚─├│╕«╟╧▒µ
  106.       ╣┘╢⌡┤┘.</p>
  107.  
  108.       <p><code><code class="directive"><a href="../mod/mod_access.html#allow">Allow</a></code>
  109.       from domain</code>└╠│¬ <code><code class="directive"><a href="../mod/mod_access.html#deny">Deny</a></code> from domain</code>
  110.       ┴÷╜├╛ε╕ª ╗τ┐δ╟╤┤┘╕Θ (┴∩, IP ┴╓╝╥░í ╛╞┤╤ ╚ú╜║╞«╕φ└╠│¬ ╡╡╕▐└╬╕φ└╗
  111.       ╗τ┐δ╟╤┤┘╕Θ) ║╬╡µ└╠ ┴▀║╣-┐¬ DNS ░╦╗÷└╗ (┐¬░╦╗÷└╗ ╟╤╚─ ╛╟└╟╖╬
  112.       ║»░µ╡╟╛·┤┬┴÷ ╚«└╬╟╧▒Γ└º╟╪ ┤┘╜├ ░╦╗÷) ╟╪╛▀ ╟╤┤┘. ▒╫╖»╣╟╖╬
  113.       ╝║┤╔└╗ │⌠└╠▒Γ└º╟╪ └╠╖▒ ┴÷╜├╛ε┐í┤┬ ░í┤╔╟╧╕Θ └╠╕º┤δ╜┼ IP
  114.       ┴╓╝╥╕ª ╗τ┐δ╟╤┤┘.</p>
  115.  
  116.       <p><code><Location /server-status></code> ╝╜╝╟ ╡ε└╕╖╬
  117.       ┴÷╜├╛ε└╟ └√┐δ╣ⁿ└º╕ª ┴ª╟╤╟╥ ╝÷ └╓└╜└╗ ▒Γ╛∩╟╧╢≤. └╠ ░µ┐∞
  118.       ┴╢░╟┐í ╕┬┤┬ ┐Σ├╗┐í╕╕ DNS ┴╢╚╕╕ª ╟╤┤┘. ┤┘└╜└║
  119.       <code>.html</code>░· <code>.cgi</code> ╞─└╧╕╕ DNS ░╦╗÷└╗
  120.       ╟╧┤┬ ┐╣┴ª┤┘:</p>
  121.  
  122.       <div class="example"><p><code>
  123.         HostnameLookups off<br />
  124.         <Files ~ "\.(html|cgi)$"><br />
  125.         <span class="indent">
  126.           HostnameLookups on<br />
  127.         </span>
  128.         </Files>
  129.       </code></p></div>
  130.  
  131.       <p>▒╫╖»│¬ CGI┐í╝¡ DNS╕φ└╠ ╟╩┐Σ╟╥ ╗╙└╠╢≤╕Θ, ╟╩┐Σ╟╤ ╞»┴ñ
  132.       CGI┐í╝¡╕╕ <code>gethostbyname</code> ╚ú├Γ└╗ ╟╧╡╡╖╧ ░φ╖┴╟╪║╝
  133.       ╝÷ └╓┤┘.</p>
  134.  
  135.     
  136.  
  137.     <h3><a name="symlinks" id="symlinks">FollowSymLinks┐═ SymLinksIfOwnerMatch</a></h3>
  138.  
  139.       
  140.  
  141.       <p>URL ░°░ú┐í╝¡ <code>Options FollowSymLinks</code>╕ª
  142.       ╗τ┐δ╟╧┴÷╛╩░φ <code>Options SymLinksIfOwnerMatch</code>╕ª
  143.       ╗τ┐δ╟╧╕Θ ╛╞╞──í┤┬ ╜╔║╝╕╡┼⌐╕ª ░╦╗τ╟╧▒Γ└º╟╪ ╜├╜║┼█╚ú├Γ└╗
  144.       ╟╤╣° ┤⌡ ╟╪╛▀ ╟╤┤┘. ╞─└╧╕φ└╟ ░ó ║╬║╨╕╢┤┘ ╟╤╣°╛┐ ┤⌡ ╚ú├Γ└╗
  145.       ╟╤┤┘. ┐╣╕ª ╡Θ╛ε, ╝│┴ñ└╠ ┤┘└╜░· ░░░φ:</p>
  146.  
  147.       <div class="example"><p><code>
  148.         DocumentRoot /www/htdocs<br />
  149.         <Directory /><br />
  150.         <span class="indent">
  151.           Options SymLinksIfOwnerMatch<br />
  152.         </span>
  153.         </Directory>
  154.       </code></p></div>
  155.  
  156.       <p><code>/index.html</code> URI┐í ┤δ╟╤ ┐Σ├╗└╠ └╓┤┘░φ ░í┴ñ╟╧└┌.
  157.       ▒╫╖»╕Θ ╛╞╞──í┤┬ <code>/www</code>, <code>/www/htdocs</code>,
  158.       <code>/www/htdocs/index.html</code> ░ó░ó┐í ┤δ╟╪
  159.       <code>lstat(2)</code>╕ª ╚ú├Γ╟╤┤┘. <code>lstats</code>
  160.       ░ß░·╕ª ─│╜╠╟╧┴÷ ╛╩▒Γ╢º╣«┐í ┐Σ├╗└╠ ╡Θ╛ε┐├ ╢º╕╢┤┘ ╕┼╣° ░░└║
  161.       └█╛≈└╗ ╟╤┤┘. ┴°┬Ñ ╜╔║╝╕╡┼⌐ ║╕╛╚ ░╦╗τ╕ª ┐°╟╤┤┘╕Θ ┤┘└╜░·
  162.       ░░└╠ ╟╥ ╝÷ └╓┤┘:</p>
  163.  
  164.       <div class="example"><p><code>
  165.         DocumentRoot /www/htdocs<br />
  166.         <Directory /><br />
  167.         <span class="indent">
  168.           Options FollowSymLinks<br />
  169.         </span>
  170.         </Directory><br />
  171.         <br />
  172.         <Directory /www/htdocs><br />
  173.         <span class="indent">
  174.           Options -FollowSymLinks +SymLinksIfOwnerMatch<br />
  175.         </span>
  176.         </Directory>
  177.       </code></p></div>
  178.  
  179.       <p>└╠ ░µ┐∞ ├╓╝╥╟╤ <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> ░µ╖╬┤┬ ░╦╗τ╟╧┴÷
  180.       ╛╩┤┬┤┘. DocumentRoot ╣█┐í └╓┤┬ ░µ╖╬╖╬ <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code>│¬ <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>└╗ ╗τ┐δ╟╤
  181.       ░µ┐∞┐í╡╡ └º┐═ ║±╜┴╟╤ ╝╜╝╟└╠ ╟╩┐Σ╟╧┤┘. ╜╔║╝╕╡┼⌐ ║╕╛╚└╗
  182.       ░φ╖┴╟╧┴÷ ╛╩░φ ├╓░φ└╟ ╝║┤╔└╗ ╛≥└╕╖┴╕Θ,
  183.       <code>FollowSymLinks</code>╕ª ╝│┴ñ╟╧░φ,
  184.       <code>SymLinksIfOwnerMatch</code>┤┬ └²┤δ╖╬ ╛╚╡╚┤┘.</p>
  185.  
  186.     
  187.  
  188.     <h3><a name="htacess" id="htacess">AllowOverride</a></h3>
  189.  
  190.       
  191.  
  192.       <p>URL ░°░ú┐í╝¡ overrides╕ª ╟π┐δ╟╤┤┘╕Θ (║╕┼δ
  193.       <code>.htaccess</code> ╞─└╧) ╛╞╞──í┤┬ ╞─└╧╕φ└╟ ░ó ║╬║╨╕╢┤┘
  194.       <code>.htaccess</code>╕ª ┐¡▒µ ╜├╡╡╟╤┤┘. ┐╣╕ª ╡Θ╛ε,</p>
  195.  
  196.       <div class="example"><p><code>
  197.         DocumentRoot /www/htdocs<br />
  198.         <Directory /><br />
  199.         <span class="indent">
  200.           AllowOverride all<br />
  201.         </span>
  202.         </Directory>
  203.       </code></p></div>
  204.  
  205.       <p><code>/index.html</code> URI┐í ┤δ╟╤ ┐Σ├╗└╠ └╓┤┘░φ ░í┴ñ╟╧└┌.
  206.       ╛╞╞──í┤┬ <code>/.htaccess</code>, <code>/www/.htaccess</code>,
  207.       <code>/www/htdocs/.htaccess</code>╕ª ┐¡╖┴░φ ╜├╡╡╟╤┤┘.
  208.       ╟╪░ß├Ñ└║ ╛╒└╟ <code>Options FollowSymLinks</code> ░µ┐∞┐═
  209.       ║±╜┴╟╧┤┘. ├╓░φ└╟ ╝║┤╔└╗ ╛≥└╕╖┴╕Θ ╞─└╧╜├╜║┼█┐í ┤δ╟╪╝¡ ╟╫╗≤
  210.       <code>AllowOverride None</code>└╗ ╗τ┐δ╟╤┤┘.</p>
  211.  
  212.     
  213.  
  214.     <h3><a name="negotiation" id="negotiation">│╗┐δ╟∙╗≤</a></h3>
  215.  
  216.       
  217.  
  218.       <p>░í┤╔╟╧░φ ┴°┬Ñ ┴╢▒▌└╟ ╝║┤╔╟Γ╗≤┐í╡╡ ░ⁿ╜╔└╠ └╓┤┘╕Θ │╗┐δ╟∙╗≤└╗
  219.       ╕╖┤┬┤┘. ╜╟┴ª╖╬ ╟∙╗≤└╟ └╠╡µ└║ ╝║┤╔└·╟╧║╕┤┘ └█┤┘. ╝¡╣÷╕ª
  220.       ║ⁿ╕ú░╘ ╟╥ ╝÷ └╓┤┘. ┤┘└╜░· ░░└╠ ┐═└╧╡σ─½╡σ╕ª ╗τ┐δ╟╧┤┬ ┤δ╜┼:</p>
  221.  
  222.       <div class="example"><p><code>
  223.         DirectoryIndex index
  224.       </code></p></div>
  225.  
  226.       <p>┐╧└ⁿ╟╤ ╕±╖╧└╗ ╗τ┐δ╟╤┤┘:</p>
  227.  
  228.       <div class="example"><p><code>
  229.         DirectoryIndex index.cgi index.pl index.shtml index.html
  230.       </code></p></div>
  231.  
  232.       <p>░í└σ ╚τ╟╤ ░═└╗ ╛╒┐í ╡╨┤┘.</p>
  233.  
  234.       <p>╢╟, ╡≡╖║┼Σ╕«┐í╝¡ ╞─└╧╡Θ└╗ ├ú┤┬ <code>MultiViews</code>
  235.       ║╕┤┘┤┬, ╟╤ ╞─└╧╕╕ └╨└╕╕Θ ╟╩┐Σ╟╤ ┴ñ║╕╕ª ╛≥└╗ ╝÷ └╓┤┬
  236.       <code>type-map</code> ╞─└╧└╗ ┴≈┴ó ╕╕╡σ┤┬ ░═└╠ ┤⌡ ║ⁿ╕º└╗
  237.       ╕φ╜╔╟╧╢≤.</p>
  238.  
  239.     <p>╗τ└╠╞«┐í │╗┐δ╟∙╗≤└╠ ╟╩┐Σ╟╧┤┘╕Θ ╟∙╗≤└╗ └º╟╪ <code>Options
  240.     MultiViews</code> ┴÷╜├╛ε╕ª ╗τ┐δ╟╧▒Γ║╕┤┘ <code>type-map</code>
  241.     ╞─└╧└╗ ░φ╖┴╟╧╢≤. ╟∙╗≤╣µ╣²┐í ┤δ╟╤ └┌╝╝╟╤ ╝│╕φ░·
  242.     <code>type-map</code> ╞─└╧└╗ ╕╕╡σ┤┬ ╣µ╣²└║ <a href="../content-negotiation.html">│╗┐δ╟∙╗≤</a> ╣«╝¡╕ª ┬ⁿ░φ╟╧╢≤.</p>
  243.  
  244.     
  245.  
  246.     <h3>╕▐╕≡╕«┤δ└└ (memory-mapping)</h3>
  247.  
  248.       
  249.  
  250.       <p>┐╣╕ª ╡Θ╛ε, server-side-include╕ª ├│╕«╟╧┤┬ ╡ε ╛╞╞──í
  251.       2.0└╠ └ⁿ╝█╟╥ ╞─└╧└╗ └╨└╗╢º ┐ε┐╡├╝┴ª░í <code>mmap(2)</code>
  252.       ╡ε└╗ ┴÷┐°╟╤┤┘╕Θ ╞─└╧└╗ ╕▐╕≡╕«┤δ└└╟╤┤┘.</p>
  253.  
  254.       <p>┐⌐╖» ╟├╖í╞√┐í╝¡ ╕▐╕≡╕«┤δ└└└╗ ╝║┤╔└╗ ╟Γ╗≤╟╤┤┘. ▒╫╖»│¬
  255.       ╕▐╕≡╕«┤δ└└└╠ ╝¡╣÷└╟ ╝║┤╔└╗ ╢│╛ε╞«╕«░φ ╜╔┴÷╛ε ╛╚┴ñ╝║└╗
  256.       ╟╪─í┤┬ ░µ┐∞░í └╓┤┘:</p>
  257.  
  258.       <ul>
  259.         <li>
  260.           <p>╛ε╢▓ ┐ε┐╡├╝┴ª┐í╝¡ <code>mmap</code>└║ CPU ░│╝÷░í
  261.           ╕╣╛╞┴·╢º <code>read(2)</code> ╕╕┼¡ ╚«└σ╝║└╠ ┴┴┴÷ ╛╩┤┘.
  262.           ┐╣╕ª ╡Θ╛ε, ┤┘┴▀╟┴╖╬╝╝╝¡ Solaris ╝¡╣÷┐í╝¡ ╛╞╞──í 2.0└║
  263.           ┴╛┴╛ <code>mmap</code>└╗ ╗τ┐δ╟╧┴÷ ╛╩└╗╢º ╝¡╣÷░í ├│╕«╟╤
  264.           ╞─└╧└╗ ┤⌡ ╗í╕« └ⁿ╝█╟╤┤┘.</p>
  265.         </li>
  266.  
  267.         <li>
  268.           <p>NFS ╕╢┐ε╞«╟╤ ╞─└╧╜├╜║┼█┐í └╓┤┬ ╞─└╧└╗ ╕▐╕≡╕«┤δ└└╟╧┤┬
  269.           ╡╡┴▀┐í ┤┘╕Ñ NFS ┼¼╢≤└╠╛≡╞«┐í └╓┤┬ ╟┴╖╬╝╝╜║░í ╞─└╧└╗
  270.           ┴÷┐∞░┼│¬ ╞─└╧┼⌐▒Γ╕ª ┴┘└╠╕Θ, └Ñ╝¡╣÷ ╟┴╖╬╝╝╜║░í ┤┘└╜
  271.           ╣°┐í ╕▐╕≡╕«┤δ└└╟╤ ╞─└╧│╗┐δ└╗ └╨└╗╢º bus error░í ╣▀╗²╟╥
  272.           ╝÷ └╓┤┘.</p>
  273.         </li>
  274.       </ul>
  275.  
  276.       <p>└º└╟ ┴╢░╟┐í ╟╪┤τ╟╧╕Θ └ⁿ╝█╟╧┤┬ ╞─└╧└╗ ╕▐╕≡╕«┤δ└└╟╧┴÷
  277.       ╛╩╡╡╖╧ <code>EnableMMAP off</code>╕ª ╗τ┐δ╟╪╛▀ ╟╤┤┘. (┴╓└╟:
  278.       └╠ ┴÷╜├╛ε┤┬ ╡≡╖║┼Σ╕«║░╖╬ ║»░µ╟╥ ╝÷ └╓┤┘.)</p>
  279.  
  280.     
  281.  
  282.     <h3>Sendfile</h3>
  283.  
  284.       
  285.  
  286.       <p>╛╞╞──í┤┬ ┐ε┐╡├╝┴ª░í <code>sendfile(2)</code>└╗ ┴÷┐°╟╧╕Θ
  287.       ─┐│╬ sendfile└╗ ╗τ┐δ╟╧┐⌐ -- ┐╣╕ª ╡Θ╛ε, ┴ñ└√ ╞─└╧└╗ ╝¡║±╜║╟╥╢º
  288.       -- └ⁿ╝█╟╥ ╞─└╧└╗ ┴≈┴ó └╨┴÷╛╩└╗ ╝÷ └╓┤┘.</p>
  289.  
  290.       <p>┐⌐╖» ╟├╖í╞√┐í╝¡ sendfile└╗ ╗τ┐δ╟╧╕Θ read┐═ send╕ª ╡√╖╬
  291.       ╟╥ ╟╩┐Σ░í ╛°╛ε╝¡ ╗í╢≤┴°┤┘. ▒╫╖»│¬ sendfile└╗ ╗τ┐δ╟╧╕Θ
  292.       └Ñ╝¡╣÷└╟ ╛╚┴ñ╝║└╗ ╟╪─í░╘╡╟┤┬ ░µ┐∞░í └╓┤┘:</p>
  293.  
  294.       <ul>
  295.         <li>
  296.           <p>sendfile ┴÷┐°└╠ └▀╕°╡╟╛·░φ ──╞─└╧ ╜├╜║┼█└╠ └╠┴í└╗
  297.           ╣▀░▀╟╧┴÷ ╕°╟╧┤┬ ╟├╖í╞√└╠ └╓┤┘. ╞»╚≈ ┤┘╕Ñ ──╟╗┼═┐í╝¡
  298.           ╜╟╟α╞─└╧└╗ ──╞─└╧╟╧┐⌐ sendfile ┴÷┐°└╠ └▀╕°╡╚ ──╟╗┼═╖╬
  299.           ░í┴«┐┬ ░µ┐∞┐í ░í┤╔╟╧┤┘.</p>
  300.         </li>
  301.         <li>
  302.           <p>─┐│╬└║ └┌╜┼└╟ ─│╜¼╕ª ╗τ┐δ╟╧┐⌐ NFS╖╬ ╕╢┐ε╞«╟╤ ╞─└╧└╗
  303.           ╛╚┴ñ└√└╕╖╬ ╝¡║±╜║╟╥ ╝÷ ╛°┤┬ ░µ┐∞░í └╓┤┘.</p>
  304.         </li>
  305.       </ul>
  306.  
  307.       <p>└º└╟ ┴╢░╟┐í ╟╪┤τ╟╧╕Θ ╞─└╧└╗ sendfile └ⁿ╝█╟╧┴÷ ╛╩╡╡╖╧
  308.       <code>EnableSendfile off</code>╕ª ╗τ┐δ╟╪╛▀ ╟╤┤┘. (┴╓└╟:
  309.       └╠ ┴÷╜├╛ε┤┬ ╡≡╖║┼Σ╕«║░╖╬ ║»░µ╟╥ ╝÷ └╓┤┘.)</p>
  310.  
  311.     
  312.  
  313.     <h3><a name="process" id="process">╟┴╖╬╝╝╜║ ╗²╝║</a></h3>
  314.  
  315.       
  316.  
  317.       <p>╛╞╞──í 1.3 └╠└ⁿ┐í┤┬ <code class="directive"><a href="../mod/prefork.html#minspareservers">MinSpareServers</a></code>, <code class="directive"><a href="../mod/prefork.html#maxspareservers">MaxSpareServers</a></code>, <code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code> ╝│┴ñ└╠ ╕≡╡╬
  318.       ║Ñ─í╕╢┼⌐ ░ß░·┐í ┼½ ┐╡╟Γ└╗ ╣╠├╞┤┘. ╞»╚≈ ╛╞╞──í┤┬ └█╛≈└╗
  319.       ╝¡║±╜║╟╧▒Γ└º╟╪ ├µ║╨╟╤ └┌╜─╝÷┐í ┤┘┤┘╕ª ╢º▒ε┴÷ "╡╡┤▐" ▒Γ░ú└╠
  320.       ╟╩┐Σ╟▀┤┘. ├│└╜ <code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code>░│ └┌╜─└╗
  321.       ╕╕╡τ╚─, <code class="directive"><a href="../mod/prefork.html#minspareservers">MinSpareServers</a></code>
  322.       ╝│┴ñ░¬▒ε┴÷ ├╩┤τ └┌╜─└╗ ╟╧│¬╛┐ ╕╕╡Θ╛·┤┘. ▒╫╖í╝¡ <code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code> ▒Γ║╗░¬└╠
  323.       <code>5</code>└╬ ╝¡╣÷┐í ┼¼╢≤└╠╛≡╞« 100░│░í ╡┐╜├┐í ┴ó╝╙╟╧╕Θ
  324.       ║╬╟╧╕ª ├│╕«╟╧▒Γ┐í ├µ║╨╟╤ └┌╜─└╗ ╕╕╡Θ▒Γ▒ε┴÷ 95├╩░í ░╔╖╚┤┘.
  325.       └┌┴╓ └τ╜├└█╟╧┴÷ ╛╩┤┬ ╜╟┴ª ╝¡╣÷┐í╝¡┤┬ └▀ ╡┐└█╟╧┴÷╕╕, 10║╨░ú╕╕
  326.       ╜╟╟α╟╧┤┬ ║Ñ─í╕╢┼⌐ ░ß░·┤┬ ╕┼┐∞ │¬╗┌░╘ │¬┐┬┤┘.</p>
  327.  
  328.       <p>├╩┤τ ╟╤░│ ▒╘─ó└║ └┌╜─└╗ ╗⌡╖╬ ╜├└█╟╧╕Θ╝¡ ╝¡╣÷┐í ╣½╕«╕ª
  329.       ┴╓┴÷ ╛╩└╕╖┴░φ ┴ñ╟▀┤┘. ──╟╗┼═░í └┌╜─└╗ ╜├└█╟╧┤└╢≤ ╣┘╗┌╕Θ
  330.       ┐Σ├╗└╗ ╝¡║±╜║╟╥ ╝÷ ╛°┤┘. ▒╫╖»│¬ └╠ ▒╘─ó└╠ ╛╞╞──í└╟ ├╝░¿
  331.       ╝║┤╔┐í ╛╟┐╡╟Γ└╗ ┴╓╛ε ║»░µ╟╧┐┤┤┘. ╛╞╞──í 1.3┐í╝¡ ├╩┤τ ╟╤░│
  332.       ▒╘─ó└║ ┐╧╚¡╡╟╛·┤┘. ─┌╡σ┤┬ └┌╜─ ╟╤░│╕ª ╕╕╡Θ░φ, 1├╩ ╜¼░φ,
  333.       ╡╬░│╕ª ╕╕╡Θ░φ, 1├╩ ╜¼░φ, │╫░│╕ª ╕╕╡Θ░φ, └╠╖▒ ╜─└╕╖╬ ├╩┤τ
  334.       └┌╜─└╗ 32░│ ╕╕╡Θ╢º▒ε┴÷ ┴÷╝÷╖╬ ┴⌡░í╟╤┤┘. └┌╜─╝÷░í <code class="directive"><a href="../mod/prefork.html#minspareservers">MinSpareServers</a></code> ╝│┴ñ┐í ┤┘┤┘╕ú╕Θ
  335.       ┴⌡░í╕ª ┴▀┤▄╟╤┤┘.</p>
  336.  
  337.       <p>└╠ ░µ┐∞ ╣▌└└╝╙╡╡░í ╗í╢≤┴«╝¡ <code class="directive"><a href="../mod/prefork.html#minspareservers">MinSpareServers</a></code>, <code class="directive"><a href="../mod/prefork.html#maxspareservers">MaxSpareServers</a></code>, <code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code>╕ª ░┼└╟ ╝│┴ñ╟╥ ╟╩┐Σ░í ╛°┤┘. └╧├╩┐í
  338.       └┌╜─└╗ 4░│ └╠╗≤ ╗²╝║╟╧╕Θ <code class="directive"><a href="../mod/core.html#errorlog">ErrorLog</a></code>┐í ▒Γ╖╧╟╤┤┘. └╠╖▒ ┐└╖∙╣«└╠
  339.       ╕╣└╠ ║╕└╠╕Θ └╠ ╝│┴ñ╡Θ└╗ ┴╢└²╟╧▒µ ╣┘╢⌡┤┘.
  340.       <code class="module"><a href="../mod/mod_status.html">mod_status</a></code> ░ß░·░í ╡╡┐≥└╠ ╡╔ ░═└╠┤┘.</p>
  341.  
  342.     <p>╟┴╖╬╝╝╜║ ╗²╝║░· ░ⁿ╖├╟╧┐⌐ <code class="directive"><a href="../mod/mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></code> ╝│┴ñ└║
  343.     ╟┴╖╬╝╝╜║╕ª ┴╛╖ß╟╤┤┘. ▒Γ║╗░¬└║ └┌╜─┤τ ├│╕«╟╥ ┐Σ├╗╝÷┐í ┴ª╟╤└╠
  344.     ╛°┤┘┤┬ <code>0</code>└╠┤┘. ╟÷└τ ╝│┴ñ└╠ <code>30</code>░·
  345.     ░░└╠ ╕┼┐∞ └█└║ ░¬└╕╖╬ ╝│┴ñ╡╟└╓┤┘╕Θ, ░¬└╗ ╗≤┤τ╚≈ │⌠╚· ╟╩┐Σ░í
  346.     └╓┤┘. SunOS│¬ ┐└╖í╡╚ Solaris ╣÷└ⁿ└╗ ╗τ┐δ╟╤┤┘╕Θ, ╕▐╕≡╕«└»├Γ╢º╣«┐í
  347.     └╠ ░¬└╗ <code>10000</code> ┴ñ╡╡╖╬ ╝│┴ñ╟╧╢≤.</p>
  348.  
  349.     <p>┐¼░ß└»┴÷(keep-alive)╕ª ╗τ┐δ╟╤┤┘╕Θ └┌╜─╡Θ└║ └╠╣╠ ┐¡╕░
  350.     ┐¼░ß┐í╝¡ ├▀░í ┐Σ├╗└╗ ▒Γ┤┘╕«╕τ ╛╞╣½░═╡╡ ╟╧┴÷╛╩▒Γ╢º╣«┐í ░Φ╝╙
  351.     ╣┘╗┌┤┘. <code class="directive"><a href="../mod/core.html#keepalivetimeout">KeepAliveTimeout</a></code>└╟
  352.     ▒Γ║╗░¬ <code>15</code> ├╩┤┬ └╠╖▒ ╟÷╗≤└╗ ├╓╝╥╚¡╟╤┤┘. │╫╞«┐≈
  353.     ┤δ┐¬╞°░· ╝¡╣÷ └┌┐° ░ú└╟ ▒╒╟ⁿ└╠ ╕┬░╘ ╝│┴ñ╟╤┤┘. <a href="http://www.research.digital.com/wrl/techreports/abstracts/95.4.html">
  354.     ┐¼░ß└»┴÷└╟ ┤δ║╬║╨└╟ └╠┴í└╠ ╗τ╢≤┴÷▒Γ╢º╣«┐í</a> ╛ε╢▓ ░µ┐∞┐í╡╡
  355.     └╠ ░¬└╗ <code>60</code> ├╩ └╠╗≤└╕╖╬ ┐├╕«┴÷ ╕╢╢≤.</p>
  356.  
  357.     
  358.  
  359.   </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  360. <div class="section">
  361. <h2><a name="compiletime" id="compiletime">──╞─└╧╜├ ╝│┴ñ┐í ┤δ╟╪╝¡</a></h2>
  362.  
  363.     
  364.  
  365.     <h3>MPM ╝▒┼├</h3>
  366.  
  367.       
  368.  
  369.       <p>╛╞╞──í 2.x┤┬ <a href="../mpm.html">┤┘┴▀├│╕«╕≡╡Γ</a>
  370.       (MPMs)└╠╢≤┤┬ ▒│├╝╟╥ ╝÷ └╓┤┬ ╡┐▒Γ╚¡ ╕≡╡¿└╗ ┴÷┐°╟╤┤┘. ╛╞╞──í╕ª
  371.       ──╞─└╧╟╥╢º MPM└╗ ╝▒┼├╟╪╛▀ ╟╤┤┘. <code class="module"><a href="../mod/beos.html">beos</a></code>,
  372.       <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>,
  373.       <code class="module"><a href="../mod/mpm_winnt.html">mpm_winnt</a></code>┐═ ░░└╠ ╞»┴ñ ╟├╖í╞√┐í╝¡╕╕ ╗τ┐δ╟╥
  374.       ╝÷ └╓┤┬ MPM╡╡ └╓┤┘. └╧╣▌└√└╬ └»┤╨╜║╖∙ ╜├╜║┼█└║ ┐⌐╖» MPM
  375.       ┴▀┐í ╟╧│¬╕ª ╝▒┼├╟╥ ╝÷ └╓┤┘. └Ñ╝¡╣÷└╟ ╝╙╡╡┐═
  376.       ╚«└σ╝║(scalability)└║ ╛ε╢▓ MPM└╗ ╝▒┼├╟▀│─┐í ┤▐╖╚┤┘:</p>
  377.  
  378.       <ul>
  379.  
  380.         <li><code class="module"><a href="../mod/worker.html">worker</a></code> MPM└║ ┐⌐╖» └┌╜─ ╟┴╖╬╝╝╜║░í
  381.         ░ó░ó ┐⌐╖» ╛▓╖╣╡σ╕ª ╗τ┐δ╟╤┤┘. ░ó ╛▓╖╣╡σ┤┬ ╟╤╣°┐í ╟╤ ┐¼░ß└╗
  382.         ┤π┤τ╟╤┤┘. └╧╣▌└√└╕╖╬ worker┤┬ prefork MPM ║╕┤┘ └√└║
  383.         ╕▐╕≡╕«╕ª ╗τ┐δ╟╧╣╟╖╬ ┼δ╜┼╖«└╠ ╕╣└║ ╝¡╣÷┐í └√└²╟╧┤┘.</li>
  384.  
  385.         <li><code class="module"><a href="../mod/prefork.html">prefork</a></code> MPM└║ ╛▓╖╣╡σ░í ╟╤░│└╬ └┌╜─
  386.         ╟┴╖╬╝╝╜║╕ª ┐⌐╖»░│ ╗τ┐δ╟╤┤┘. ░ó ╟┴╖╬╝╝╜║┤┬ ╟╤╣°┐í ╟╤
  387.         ┐¼░ß└╗ ┤π┤τ╟╤┤┘. ┐⌐╖» ╜├╜║┼█┐í╝¡ prefork└╟ ╝╙╡╡┤┬ worker┐═
  388.         ║±╜┴╟╧┴÷╕╕, ┤⌡ ╕╣└║ ╕▐╕≡╕«╕ª ╗τ┐δ╟╤┤┘. ┤┘└╜░· ░░└║ ╗≤╚▓┐í╝¡
  389.         ╛▓╖╣╡σ╕ª ╗τ┐δ╟╧┴÷ ╛╩┤┬ prefork ╣µ╜─└╠ worker┐í ║±╟╪
  390.         └╠┴í└╗ ░í┴°┤┘: ╛▓╖╣╡σ┐í ╛╚└ⁿ╟╧┴÷ (thread-safe) ╛╩└║
  391.         ┴ª╗∩└┌░í ╕╕╡τ ╕≡╡Γ└╗ ╗τ┐δ╟╥ ╝÷ └╓░φ, ╛▓╖╣╡σ ╡≡╣÷▒δ ┴÷┐°└╠
  392.         ║≤╛α╟╤ ╟├╖í╞√┐í╝¡ ╜▒░╘ ╡≡╣÷▒δ╟╥ ╝÷ └╓┤┘.</li>
  393.  
  394.       </ul>
  395.  
  396.       <p>└╠ MPM╡Θ░· ┤┘╕Ñ MPM┐í ┤δ╟╪ ┤⌡ └┌╝╝╟╤ ┴ñ║╕┤┬ MPM <a href="../mpm.html">╣«╝¡</a>╕ª ┬ⁿ░φ╟╧▒µ ╣┘╢⌡┤┘.</p>
  397.  
  398.     
  399.  
  400.     <h3><a name="modules" id="modules">╕≡╡Γ</a></h3>
  401.  
  402.         
  403.  
  404.         <p>╕▐╕≡╕« ╗τ┐δ╖«└╠ ╝║┤╔┐í╝¡ ░í└σ ┴▀┐Σ╟╤ ┐Σ└╬└╠▒Γ╢º╣«┐í
  405.         ╜╟┴ª╖╬ ╗τ┐δ╟╧┴÷ ╛╩┤┬ ╕≡╡Γ└╗ ┴ª░┼╟╪║╕└┌. ╕≡╡Γ└╗ <a href="../dso.html">DSO</a>╖╬ ──╞─└╧╟▀┤┘╕Θ ░ú┤▄╚≈ ▒╫
  406.         ╕≡╡Γ┐í ┤δ╟╤ <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code> ┴÷╜├╛ε╕ª ┴╓╝«├│╕«╟╧╕Θ
  407.         ╡╚┤┘. ▒╫╖í╝¡ ╕≡╡Γ└╗ ┴ª░┼╟╧░φ ╜╟╟α╟╧┐⌐ ╗τ└╠╞«░í ╕≡╡Γ╛°└╠╡╡
  408.         ┴ñ╗≤└√└╕╖╬ ╡┐└█╟╧┤┬┴÷ ╗∞╞∞║╝ ╝÷ └╓┤┘.</p>
  409.  
  410.         <p>╣▌┤δ╖╬ ╕≡╡Γ└╠ ╛╞╞──í ╜╟╟α╞─└╧┐í ┴ñ└√└╕╖╬ ╕╡┼⌐╡╟└╓┤┘╕Θ
  411.         ┐°╟╧┴÷ ╛╩┤┬ ╕≡╡Γ└╗ ┴ª░┼╟╧▒Γ└º╟╪ ╛╞╞──í╕ª └τ──╞─└╧╟╪╛▀
  412.         ╟╤┤┘.</p>
  413.  
  414.         <p>┐⌐▒Γ╝¡ ┤τ┐¼╚≈ ╛ε╢▓ ╕≡╡Γ└╗ ╗τ┐δ╟╧░φ ╗τ┐δ╟╧┴÷ ╕╗┴÷
  415.         └╟╣«└╠ ╗²▒Σ┤┘. ┴ñ┤Σ└║ └Ñ╗τ└╠╞«╕╢┤┘ ┤┘╕ú┤┘. ▒╫╖»│¬ ╛╞╕╢╡╡
  416.         <em>├╓╝╥╟╤</em> <code class="module"><a href="../mod/mod_mime.html">mod_mime</a></code>,
  417.         <code class="module"><a href="../mod/mod_dir.html">mod_dir</a></code>, <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code>
  418.         ╕≡╡Γ└║ ╗τ┐δ╟╥ ░═└╠┤┘. ╣░╖╨ └Ñ╗τ└╠╞«┐í ╖╬▒╫╞─└╧└╠ ╟╩┐Σ╛°┤┘╕Θ
  419.         <code>mod_log_config</code>┤┬ ╛°╛ε╡╡ ╡╚┤┘. ▒╫╖»│¬ ├▀├╡╟╧┴÷
  420.         ╛╩┤┬┤┘.</p>
  421.  
  422.     
  423.  
  424.     <h3>Atomic ╕φ╖╔</h3>
  425.  
  426.       
  427.  
  428.       <p><code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> ░░└║ ╕≡╡Γ░· ├╓▒┘ ░│╣▀┴▀└╬
  429.       worker MPM└║ APR└╟ atomic API╕ª ╗τ┐δ╟╤┤┘. └╠ API┤┬ ░µ╖«▒▐
  430.       ╛▓╖╣╡σ ╡┐▒Γ╚¡╕ª └º╟╥ atomic ╕φ╖╔└╗ ┴ª░°╟╤┤┘.</p>
  431.  
  432.       <p>▒Γ║╗└√└╕╖╬ APR└║ ░ó ┐ε┐╡├╝┴ª/CPU ╟├╖í╞√┐í╝¡ ░í└σ ╚┐└▓└√└╬
  433.       ╣µ╣²└╗ ╗τ┐δ╟╧┐⌐ └╠ ╕φ╖╔└╗ ▒╕╟÷╟╤┤┘. ┐╣╕ª ╡Θ╛ε, ┐⌐╖» ├╓╜┼
  434.       CPU┐í┤┬ ╟╧╡σ┐■╛ε╖╬ atomic compare-and-swap (CAS) ┐¼╗Ω└╗
  435.       ╟╧┤┬ ╕φ╖╔╛ε░í └╓┤┘. ▒╫╖»│¬ ╛ε╢▓ ╟├╖í╞√┐í╝¡ APR└║ └╠╖▒
  436.       ╕φ╖╔╛ε░í ╛°┤┬ ┐└╖í╡╚ CPU┐═ ╚ú╚»╝║└╗ └º╟╪ ┤⌡ ┤└╕░ mutex▒Γ╣▌
  437.       ▒╕╟÷└╗ ▒Γ║╗└√└╕╖╬ ╗τ┐δ╟╤┤┘. └╠╖▒ ╟├╖í╞√┐í╝¡ ╛╞╞──í╕ª
  438.       ──╞─└╧╟╥╢º ╛╞╞──í╕ª ├╓╜┼ CPU┐í╝¡╕╕ ╜╟╟α╟╥ ░Φ╚╣└╠╢≤╕Θ,
  439.       ╛╞╞──í╕ª ▒╕╝║╟╥╢º <code>--enable-nonportable-atomics</code>
  440.       ┐╔╝╟└╗ ╗τ┐δ╟╧┐⌐ ┤⌡ ║ⁿ╕Ñ atomic ▒╕╟÷└╗ ╝▒┼├╟╥ ╝÷ └╓┤┘:</p>
  441.  
  442.       <div class="example"><p><code>
  443.         ./buildconf<br />
  444.         ./configure --with-mpm=worker --enable-nonportable-atomics=yes
  445.       </code></p></div>
  446.  
  447.       <p><code>--enable-nonportable-atomics</code> ┐╔╝╟└║ ┤┘└╜░·
  448.       ░░└║ ╟├╖í╞√┐í ┐╡╟Γ└╠ └╓┤┘:</p>
  449.  
  450.       <ul>
  451.  
  452.         <li>SPARC┐í╝¡ Solaris<br />
  453.             ▒Γ║╗└√└╕╖╬ APR└║ Solaris/SPARC┐í╝¡ mutex▒Γ╣▌ atomic└╗
  454.             ╗τ┐δ╟╤┤┘. ▒╫╖»│¬ ▒╕╝║╟╥╢º
  455.             <code>--enable-nonportable-atomics</code>╕ª ╗τ┐δ╟╧╕Θ
  456.             APR└║ ║ⁿ╕Ñ ╟╧╡σ┐■╛ε compare-and-swap└╗ └º╟╤ SPARC
  457.             v8plus ╕φ╖╔╛ε╕ª ╗τ┐δ╟╤┤┘. └╠ ┐╔╝╟└╗ ╗τ┐δ╟╧╕Θ atomic
  458.             ╕φ╖╔└╠ ┤⌡ ╚┐└▓└√└╠┴÷╕╕ (CPU╕ª ┤· ╗τ┐δ╟╧░φ ┤⌡ │⌠└║
  459.             ╡┐▒Γ╚¡░í ░í┤╔╟╧┤┘), ──╞─└╧╟╤ ╜╟╟α╞─└╧└║ UltraSPARC
  460.             ─¿┐í╝¡╕╕ ╜╟╟α╟╥ ╝÷ └╓┤┘.
  461.         </li>
  462.  
  463.         <li>Linux on x86<br />
  464.             ▒Γ║╗└√└╕╖╬ APR└║ ╕«┤¬╜║┐í╝¡ mutex▒Γ╣▌ atomic└╗
  465.             ╗τ┐δ╟╤┤┘. ▒╫╖»│¬ ▒╕╝║╟╥╢º
  466.             <code>--enable-nonportable-atomics</code>╕ª ╗τ┐δ╟╧╕Θ
  467.             APR└║ ║ⁿ╕Ñ ╟╧╡σ┐■╛ε compare-and-swap└╗ └º╟╤ 486
  468.             ╕φ╖╔╛ε╕ª ╗τ┐δ╟╤┤┘. ┤⌡ ╚┐└▓└√└╬ atomic ╕φ╖╔└╠ ░í┤╔╟╧┴÷╕╕,
  469.             ──╞─└╧╟╤ ╜╟╟α╞─└╧└║ 486 └╠╗≤ ─¿┐í╝¡╕╕ (386└║ ╛╚╡╚┤┘)
  470.             ╜╟╟α╟╥ ╝÷ └╓┤┘.
  471.         </li>
  472.  
  473.       </ul>
  474.  
  475.     
  476.  
  477.     <h3>mod_status┐═ ExtendedStatus On</h3>
  478.  
  479.       
  480.  
  481.       <p>╛╞╞──í╕ª ──╞─└╧╟╥╢º <code class="module"><a href="../mod/mod_status.html">mod_status</a></code>╕ª ╞≈╟╘╟╧░φ
  482.       ╜╟╟α╟╥╢º <code>ExtendedStatus On</code>└╗ ╝│┴ñ╟╧╕Θ ╛╞╞──í┤┬
  483.       ┐Σ├╗└╗ ╣▐└╗╢º╕╢┤┘ <code>gettimeofday(2)</code>(╚ñ└║ ┐ε┐╡├╝┴ª┐í
  484.       ╡√╢≤ <code>times(2)</code>)╕ª ╡╬╣° ╚ú├Γ╟╧░φ (1.3 └╠└ⁿ┐í┤┬)
  485.       <code>time(2)</code>╡╡ ├▀░í╖╬ ┐⌐╖»╣° ╚ú├Γ╟╤┤┘. ╗≤┼┬ ║╕░φ╝¡┐í
  486.       ╡┐└█╜├░ú└╠ ╟╩┐Σ╟╧▒Γ ╢º╣«└╠┤┘. ├╓╗≤└╟ ╝║┤╔└╗ ╛≥└╕╖┴╕Θ
  487.       (▒Γ║╗░¬└╬) <code>ExtendedStatus off</code>╕ª ╝│┴ñ╟╤┤┘.</p>
  488.  
  489.     
  490.  
  491.     <h3>accept ┴≈╖─╚¡ - ┐⌐╖» ╝╥─╧</h3>
  492.  
  493.       
  494.  
  495.     <div class="warning"><h3>┴╓└╟:</h3>
  496.       <p> ╛╞╖í ╣«╝¡┤┬ ╛╞╞──í └Ñ╝¡╣÷ 2.0 ╣÷└ⁿ┐í╝¡ ║»░µ╡╚ │╗┐δ└╗
  497.       ┤π░φ └╓┴÷ ╛╩┤┘. ╛╞┴≈╡╡ └»╚┐╟╤ ┴ñ║╕░í └╓┴÷╕╕, ┴╓└╟╟╪╝¡
  498.       ╗τ┐δ╟╧▒µ ╣┘╢⌡┤┘.</p>
  499.     </div>
  500.  
  501.       <p>└»┤╨╜║ ╝╥─╧ API└╟ ┤▄┴í└╗ ╝│╕φ╟╤┤┘. └Ñ╝¡╣÷░í ┐⌐╖» ╞≈╞«
  502.       ╚ñ└║ ┐⌐╖» ┴╓╝╥╕ª ▒Γ┤┘╕«▒Γ└º╟╪ ┐⌐╖» <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code>└╗ ╗τ┐δ╟╤┤┘░φ ░í┴ñ╟╧└┌.
  503.       ┐¼░ß└╠ ░í┤╔╟╤┴÷ ░ó ╝╥─╧└╗ ░╦╗τ╟╧▒Γ└º╟╪ ╛╞╞──í┤┬
  504.       <code>select(2)</code>╕ª ╗τ┐δ╟╤┤┘. <code>select(2)</code>┤┬
  505.       ╝╥─╧┐í ▒Γ┤┘╕«░φ └╓┤┬ ┐¼░ß└╠ <em>╛°┤┬┴÷</em> ╚ñ└║ <em>├╓╝╥╟╤
  506.       ╟╤░│</em> └╓┤┬┴÷ ╛╦╖┴┴╪┤┘. ╛╞╞──í┐í┤┬ ┐⌐╖» └┌╜─└╠ └╓░φ,
  507.       ╜¼░φ └╓┤┬ ╕≡╡τ └┌╜─└║ ╡┐╜├┐í ╗⌡╖╬┐ε ┐¼░ß└╗ ░╦╗τ╟╤┤┘. ┐°╖í
  508.       ▒╕╟÷└║ ┤┘└╜░· ║±╜┴╟╧┤┘ (└╠ ┐╣┤┬ ─┌╡σ┐í╝¡ ░í┴«┐└┴÷ ╛╩╛╥┤┘.
  509.       ┤▄┴÷ ╝│╕φ╟╧▒Γ└º╟╤ ┐δ╡╡╖╬ ╕╕╡Θ╛·┤┘.):</p>
  510.  
  511.       <div class="example"><p><code>
  512.         for (;;) {<br />
  513.         <span class="indent">
  514.           for (;;) {<br />
  515.           <span class="indent">
  516.             fd_set accept_fds;<br />
  517.             <br />
  518.             FD_ZERO (&accept_fds);<br />
  519.             for (i = first_socket; i <= last_socket; ++i) {<br />
  520.             <span class="indent">
  521.               FD_SET (i, &accept_fds);<br />
  522.             </span>
  523.             }<br />
  524.             rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL);<br />
  525.             if (rc < 1) continue;<br />
  526.             new_connection = -1;<br />
  527.             for (i = first_socket; i <= last_socket; ++i) {<br />
  528.             <span class="indent">
  529.               if (FD_ISSET (i, &accept_fds)) {<br />
  530.               <span class="indent">
  531.                 new_connection = accept (i, NULL, NULL);<br />
  532.                 if (new_connection != -1) break;<br />
  533.               </span>
  534.               }<br />
  535.             </span>
  536.             }<br />
  537.             if (new_connection != -1) break;<br />
  538.           </span>
  539.           }<br />
  540.           process the new_connection;<br />
  541.         </span>
  542.         }
  543.       </code></p></div>
  544.  
  545.       <p>▒╫╖»│¬ └º└╟ ┤▄╝°╟╤ ▒╕╟÷┐í┤┬ ╜╔░ó╟╤ ░φ░Ñ(starvation)
  546.       ╣«┴ª░í └╓┤┘. ┐⌐╖» └┌╜─└╠ ╡┐╜├┐í └╠ ╣▌║╣╣«└╗ ╜╟╟α╟╧╕Θ,
  547.       ┐Σ├╗└╗ ▒Γ┤┘╕«╕τ ╕≡╡╬ <code>select</code>┐í╝¡ ╕╪├ß┤┘. └╠╢º
  548.       ╛ε╢▓ ╝╥─╧┐í ┐Σ├╗└╠ ╟╧│¬╢≤╡╡ ╡Θ╛ε┐└╕Θ ╕≡╡τ └┌╜─└╠ ▒·╛ε│¡┤┘
  549.       (▒·╛ε│¬┤┬ └┌╜─└╟ ░│╝÷┤┬ ┐ε┐╡├╝┴ª┐═ ┼╕└╠╣╓┐í ╡√╢≤ ┤┘╕ú┤┘).
  550.       └╠╡Θ└║ ╕≡╡╬ ┐¼░ß└╗ <code>accept</code>╟╧▒µ ╜├╡╡╟╤┤┘. ▒╫╖»│¬
  551.       (╛╞┴≈╡╡ ╟╤ ┐¼░ß╕╕ ┤δ▒Γ┴▀└╠╢≤╕Θ) ╟╤ └┌╜─╕╕ ╝║░°╟╧░φ, │¬╕╙┴÷┤┬
  552.       <code>accept</code>┐í╝¡ <em>╕╪├ß┤┘.</em> ▒╫╖»╕Θ └╠ └┌╜─╡Θ└║
  553.       ╟╤ ╝╥─╧└╟ ┐Σ├╗╕╕└╗ ╝¡║±╜║╟╧╡╡╖╧ ╣¡┐⌐╝¡, ▒╫ ╝╥─╧└╕╖╬ ╗⌡╖╬┐ε
  554.       ┐Σ├╗└╠ ├µ║╨╚≈ ╡Θ╛ε┐═╝¡ ╕≡╡τ └┌╜─└╗ ▒·┐∩╢º▒ε┴÷ ┴ñ┴÷╟╪└╓┤┘.
  555.       └╠╖▒ ░φ░Ñ ╣«┴ª┤┬ <a href="http://bugs.apache.org/index/full/467">PR#467</a>┐í
  556.       ├│└╜ ║╕░φ╡╟╛·┤┘. ├╓╝╥╟╤ ╡╬░í┴÷ ╟╪░ß├Ñ└╠ └╓┤┘.</p>
  557.  
  558.       <p>╟╤░í┴÷┤┬ ╝╥─╧└╗ ┤δ▒Γ╟╧┴÷ ╛╩╡╡╖╧ (non-blocking) ╕╕╡σ┤┬
  559.       ╣µ╣²└╠┤┘. └╠ ░µ┐∞ └┌╜─└╠ <code>accept</code>╕ª ╟╪╡╡ ╕╪├▀┴÷
  560.       ╛╩░φ, ┴∩╜├ ┴°╟α╟╥ ╝÷ └╓┤┘. ▒╫╖»│¬ CPU ╜├░ú└╗ │╢║±╟╤┤┘.
  561.       <code>select</code>┐í╝¡ ╜¼┤┬ └┌╜─└╠ 10░│ └╓░φ, ╗⌡╖╬ ┐¼░ß└╠
  562.       ╟╤░│ ╡Θ╛ε┐╘┤┘░φ ░í┴ñ╟╧└┌. ▒╫╖»╕Θ └╠ └┌╜─┴▀ 9░│┤┬ ▒·╛ε│¬╝¡
  563.       ┐¼░ß└╗ <code>accept</code>╟╧▒µ ╜├╡╡╟╧░φ ╜╟╞╨╟╧╕Θ ╛╞╣½
  564.       └╧╡╡ ╟╧┴÷ ╛╩░φ ┤┘╜├ <code>select</code>╕ª ╣▌║╣╟╤┤┘. ┤┘╜├
  565.       <code>select</code>╖╬ ╡╣╛╞┐├ ╢º▒ε┴÷ ╛ε╢▓ └┌╜─╡╡ ┤┘╕Ñ ╝╥─╧┐í
  566.       ╡Θ╛ε┐┬ ┐Σ├╗└╗ ╝¡║±╜║╟╧┴÷ ╛╩┤┬┤┘. (┤┘┴▀╟┴╖╬╝╝╝¡ ──╟╗┼═┐í╝¡)
  567.       ╜¼┤┬ └┌╜─ ░│╝÷╕╕┼¡ CPU ░│╝÷░í └╓┤┬ ╡σ╣« ░µ┐∞░í ╛╞┤╧╢≤╕Θ
  568.       └╠ ╟╪░ß├Ñ└║ ║░╖╬ ┴┴╛╞║╕└╠┴÷ ╛╩┤┬┤┘.</p>
  569.  
  570.       <p>┤┘╕Ñ ╣µ╣²└║ ╛╞╞──í░í ╗τ┐δ╟╧┤┬ ╣µ╣²└╕╖╬ │╗║╬ ╣▌║╣╣«┐í
  571.       ╟╤ └┌╜─╕╕└╗ ╡Θ┐⌐║╕│╜┤┘. ╣▌║╣╣«└║ ┤┘└╜░· ░░┤┘ (┬≈└╠╕ª
  572.       ░¡┴╢╟▀└╜):</p>
  573.  
  574.       <div class="example"><p><code>
  575.         for (;;) {<br />
  576.         <span class="indent">
  577.           <strong>accept_mutex_on ();</strong><br />
  578.           for (;;) {<br />
  579.           <span class="indent">
  580.             fd_set accept_fds;<br />
  581.             <br />
  582.             FD_ZERO (&accept_fds);<br />
  583.             for (i = first_socket; i <= last_socket; ++i) {<br />
  584.             <span class="indent">
  585.               FD_SET (i, &accept_fds);<br />
  586.             </span>
  587.             }<br />
  588.             rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL);<br />
  589.             if (rc < 1) continue;<br />
  590.             new_connection = -1;<br />
  591.             for (i = first_socket; i <= last_socket; ++i) {<br />
  592.             <span class="indent">
  593.               if (FD_ISSET (i, &accept_fds)) {<br />
  594.               <span class="indent">
  595.                 new_connection = accept (i, NULL, NULL);<br />
  596.                 if (new_connection != -1) break;<br />
  597.               </span>
  598.               }<br />
  599.             </span>
  600.             }<br />
  601.             if (new_connection != -1) break;<br />
  602.           </span>
  603.           }<br />
  604.           <strong>accept_mutex_off ();</strong><br />
  605.           process the new_connection;<br />
  606.         </span>
  607.         }
  608.       </code></p></div>
  609.  
  610.       <p><code>accept_mutex_on</code>░· <code>accept_mutex_off</code>
  611.       <a id="serialize" name="serialize">╟╘╝÷</a>┤┬ mutex ╝╝╕╢╞≈╛ε╕ª
  612.       ▒╕╟÷╟╤┤┘. ╟╤╣°┐í ┐└┴≈ ╟╤ └┌╜─╕╕└╠ mutex╕ª ░í┴· ╝÷ └╓┤┘.
  613.       mutex╕ª ▒╕╟÷╟╧┤┬ ╣µ╣²└║ ┐⌐╖»░í┴÷└╠┤┘. ▒╕╟÷ ╣µ╣²└║ (1.3
  614.       └╠└ⁿ) <code>src/conf.h</code>│¬ (1.3░· ▒╫ └╠╚─)
  615.       <code>src/include/ap_config.h</code>┐í ┴ñ└╟╡╟└╓┤┘. ╛ε╢▓
  616.       ╛╞┼░┼╪├─┤┬ └ß▒▌(locking) ╣µ╣²└╗ ╝▒┼├╟╧┴÷ ╛╩▒Γ╢º╣«┐í, └╠╖▒
  617.       ╛╞┼░┼╪├─┐í╝¡ ┐⌐╖» <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code> ┴÷╜├╛ε╕ª ╗τ┐δ╟╧╕Θ
  618.       └º╟Φ╟╧┤┘.</p>
  619.  
  620.       <p>╜╟╟α╜├ <code class="directive"><a href="../mod/mpm_common.html#acceptmutex">AcceptMutex</a></code> ┴÷╜├╛ε╕ª ╗τ┐δ╟╧┐⌐
  621.       mutex ▒╕╟÷└╗ ║»░µ╟╥ ╝÷ └╓┤┘.</p>
  622.  
  623.       <dl>
  624.         <dt><code>AcceptMutex flock</code></dt>
  625.  
  626.         <dd>
  627.           <p>└╠ ╣µ╣²└║ └ß▒▌╞─└╧└╗ └ß▒╫▒Γ└º╟╪ <code>flock(2)</code>
  628.           ╜├╜║┼█╚ú├Γ└╗ ╗τ┐δ╟╤┤┘ (└ß▒▌╞─└╧ └º─í┤┬ <code class="directive"><a href="../mod/mpm_common.html#lockfile">LockFile</a></code> ┴÷╜├╛ε╖╬ ┴÷┴ñ).</p>
  629.         </dd>
  630.  
  631.         <dt><code>AcceptMutex fcntl</code></dt>
  632.  
  633.         <dd>
  634.           <p>└╠ ╣µ╣²└║ └ß▒▌╞─└╧└╗ └ß▒╫▒Γ└º╟╪ <code>fcntl(2)</code>
  635.           ╜├╜║┼█╚ú├Γ└╗ ╗τ┐δ╟╤┤┘ (└ß▒▌╞─└╧ └º─í┤┬ <code class="directive"><a href="../mod/mpm_common.html#lockfile">LockFile</a></code> ┴÷╜├╛ε╖╬ ┴÷┴ñ).</p>
  636.         </dd>
  637.  
  638.         <dt><code>AcceptMutex sysvsem</code></dt>
  639.  
  640.         <dd>
  641.           <p>(1.3░· ▒╫ └╠╚─) └╠ ╣µ╣²└╗ SysV╜─ ╝╝╕╢╞≈╛ε╕ª ╗τ┐δ╟╧┐⌐
  642.           mutex╕ª ▒╕╟÷╟╤┤┘. ║╥╟α╚≈╡╡ SysV╜─ ╝╝╕╢╞≈╛ε┤┬ │¬╗█
  643.           ║╬└█┐δ└╠ └╓┤┘. ╟╧│¬┤┬ ╛╞╞──í░í ╝╝╕╢╞≈╛ε╕ª ┴ñ╕«╟╧┴÷
  644.           ╛╩░φ ┴╫└╗ ╝÷ └╓┤┬ ┴í└╠┤┘ (<code>ipcs(8)</code> manpage
  645.           ┬ⁿ░φ). ┤┘╕Ñ ╟╧│¬┤┬ └Ñ╝¡╣÷┐═ ╡┐└╧╟╤ uid╖╬ ╜╟╟α╟╧┤┬
  646.           CGI░í (<em>┴∩,</em> <code>suexec</code>│¬
  647.           <code>cgiwrapper</code>╕ª ╗τ┐δ╟╧┴÷╛╩┤┬ ╟╤ ╕≡╡τ CGI)
  648.           ╝╝╕╢╞≈╛ε API╕ª ╗τ┐δ╟╧┐⌐ ╝¡║±╜║░┼║╬░°░▌└╗ ╟╥ ╝÷ └╓┤┬
  649.           ┴í└╠┤┘. └╠╖▒ └╠└»╢º╣«┐í IRIX╕ª ┴ª┐▄╟╤ ╛╞┼░┼╪├─┐í╝¡
  650.           └╠ ╣µ╣²└╗ ╗τ┐δ╟╧┴÷ ╛╩┤┬┤┘ (┤δ║╬║╨└╟ IRIX ──╟╗┼═┐í╝¡
  651.           ╛╒└╟ ╡╬ ╣µ╣²└║ ┴÷│¬─í░╘ ╣÷░╠┤┘).</p>
  652.         </dd>
  653.  
  654.         <dt><code>AcceptMutex pthread</code></dt>
  655.  
  656.         <dd>
  657.           <p>(1.3░· ▒╫ └╠╚─) └╠ ╣µ╣²└║ POSIX mutex╕ª ╗τ┐δ╟╧▒Γ╢º╣«┐í
  658.           POSIX ╛▓╖╣╡σ ▒╘╛α└╗ ┐╧└ⁿ╚≈ ▒╕╟÷╟╤ ╛╞┼░┼╪├─╢≤╕Θ ╕≡╡╬
  659.           ╗τ┐δ░í┤╔╟╧┴÷╕╕, (2.5 └╠╚─) Solaris┐í╝¡╕╕ ▒╫░═╡╡ ╞»┴ñ
  660.           ▒╕╝║┐í╝¡╕╕ ╡┐└█╟╧┤┬ ╡φ╟╧┤┘. └╠ ╣µ╣²└╗ ╜├╡╡╟╪║╗┤┘╕Θ
  661.           ╝¡╣÷░í ╕╪├τ╝¡ └└┤Σ└╗ ╛╚╟╧┤┬┴÷ ╗∞╞∞║┴╛▀ ╟╤┤┘. ┴ñ└√
  662.           │╗┐δ╕╕ ╝¡║±╜║╟╧┤┬ ╝¡╣÷┤┬ └▀ ╡┐└█╟╧┤┬ ░═ ░░┤┘.</p>
  663.         </dd>
  664.  
  665.         <dt><code>AcceptMutex posixsem</code></dt>
  666.  
  667.         <dd>
  668.           <p>(2.0░· ▒╫ └╠╚─) └╠ ╣µ╣²└║ POSIX ╝╝╕╢╞≈╛ε╕ª ╗τ┐δ╟╤┤┘.
  669.           mutex╕ª ░í┴° ╟┴╖╬╝╝╜║└╟ ╛▓╖╣╡σ░í ┴╫┤┬┤┘╕Θ(segfault)
  670.           ╝╝╕╢╞≈╛ε ╝╥└»▒╟└╠ ╚╕║╣╡╟┴÷ ╛╩╛╞╝¡ └Ñ╝¡╣÷░í ╕╪├ß┤┘.</p>
  671.         </dd>
  672.  
  673.       </dl>
  674.  
  675.       <p>╜├╜║┼█┐í └º ╕±╖╧┐í ╛°┤┬ ┴≈╖─╚¡(serialization) ╣µ╣²└╠
  676.       └╓┤┘╕Θ ▒╫ ╣µ╣²└╗ ╗τ┐δ╟╧┤┬ ─┌╡σ╕ª APR┐í ├▀░í╟╥ ░í─í░í └╓┤┘.</p>
  677.  
  678.       <p>░φ╖┴┤┬ ╟╪║├┴÷╕╕ ▒╕╟÷╟╧┴÷╛╩└║ ┤┘╕Ñ ╣µ╣²└║ ║╬║╨└√└╕╖╬
  679.       ╣▌║╣╣«└╗ ┴≈╖─╚¡╟╧┤┬ ╣µ╣²└╠┤┘. ┴∩, ╟┴╖╬╝╝╝¡╕ª ╕ε░│╕╕ ╡Θ┐⌐║╕│╗┤┬
  680.       ░═└╠┤┘. └╠ ╣µ╣²└║ ┐⌐╖» └┌╜─└╗ ╡┐╜├┐í ╜╟╟α╟╥ ╝÷ └╓╛ε╝¡
  681.       ┴≈╖─╚¡╢º╣«┐í └ⁿ├╝ ┤δ┐¬╞°└╗ ╚░┐δ╟╧┴÷ ╕°╟╧┤┬ ┤┘┴▀╟┴╖╬╝╝╝¡
  682.       ──╟╗┼═┐í╝¡╕╕ ░ⁿ╜╔└╗ ░í┴«║╝ ╝÷ └╓┤┘. ╛╒└╕╖╬ ╗∞╞∞║╝ ║╬║╨└╠┴÷╕╕,
  683.       ╕┼┐∞ ║┤╖─╚¡╡╚ └Ñ╝¡╣÷░í ╚τ╟╧┴÷ ╛╩╛╞╝¡ ┐∞╝▒╝°└º░í │╖┤┘.</p>
  684.  
  685.       <p>├╓╗≤└╟ ╝║┤╔└╗ ╛≥▒Γ└º╟╪╝¡┤┬ ┐⌐╖» <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code> ╣«└╗ ╗τ┐δ╟╧┴÷ ╛╩┤┬
  686.       ░═└╠ └╠╗≤└√└╠┤┘. ▒╫╖»│¬ ░Φ╝╙ ╝│╕φ╟╤┤┘.</p>
  687.  
  688.     
  689.  
  690.     <h3>accept ┴≈╖─╚¡ - ╝╥─╧ ╟╤░│</h3>
  691.  
  692.       
  693.  
  694.       <p>╛╒└╟ ╝│╕φ└║ ┤┘┴▀╝╥─╧ ╝¡╣÷┐í┤┬ ┴┴┴÷╕╕, ╝╥─╧└╠ ╟╤░│└╬
  695.       ╝¡╣÷┤┬ ╛ε╢▓░í? ┐¼░ß└╠ ╡╡┬°╟╥╢º▒ε┴÷ ╕≡╡τ └┌╜─└╠
  696.       <code>accept(2)</code>┐í╝¡ ╕╪├τ└╓▒Γ╢º╣«┐í └╠╖╨╗≤ ░░└║
  697.       ╣«┴ª░í ╣▀╗²╟╧┴÷ ╛╩░φ, ░φ░Ñ ╣«┴ª╡╡ ╛°┤┘. ▒╫╖»│¬ ╜╟┴ª╖╬┤┬
  698.       ╛╒┐í╝¡ ╕╗╟╤ ┤δ▒Γ╟╧┴÷ ╛╩┤┬ (non-blocking) ╣µ╣²┐í╝¡ ╣▀╗²╟╧┤┬
  699.       "░°╚╕└ⁿ(spinning)" ╟÷╗≤└╗ ░¿├▀░φ └╓┤┘. ┤δ║╬║╨└╟ TCP ╜║┼├└║
  700.       ┐¼░ß└╠ ╡╡┬°╟╧╕Θ ─┐│╬└╠ <code>accept</code>┐í╝¡ ╕╪├τ└╓┤┬
  701.       ╕≡╡τ └┌╜─└╗ ▒·┐∞╡╡╖╧ ▒╕╟÷╡╟└╓┤┘. ╟┴╖╬╝╝╜║┴▀ ╟╤░│░í ┐¼░ß└╗
  702.       ╛≥░φ ╗τ┐δ└┌┐╡┐¬└╕╖╬ ╡╣╛╞░í░φ, │¬╕╙┴÷┤┬ ─┐│╬┐í╝¡ ░°╚╕└ⁿ╟╧┐⌐
  703.       ┐¼░ß└╠ ╛°└╜└╗ ╣▀░▀╟╧╕Θ ┤┘╜├ └ß└╗ └▄┤┘. ╗τ┐δ└┌┐╡┐¬ ─┌╡σ┐í╝¡┤┬
  704.       └╠╖▒ ░°╚╕└ⁿ└╗ ╛╦ ╝÷ ╛°┴÷╕╕, ║╨╕φ╚≈ ┴╕└τ╟╤┤┘. ▒╫╖í╝¡ ┤┘┴▀╝╥─╧└╟
  705.       ┤δ▒Γ╟╧┴÷ ╛╩┤┬ ╣µ╣²░· ╡┐└╧╟╧░╘ ║╬╟╧╕ª │⌠└╠┤┬ ║╥╟╩┐Σ╟╤ ╟α╡┐└╠
  706.       └╧╛ε│¡┤┘.</p>
  707.  
  708.       <p>▒╫╖í╝¡ ┐∞╕«┤┬ ┐⌐╖» ╛╞┼░┼╪├─┐í╝¡ ╝╥─╧└╠ ╟╤░│└╬ ░µ┐∞┐í╡╡
  709.       ┴≈╖─╚¡╟╧╕Θ ┤⌡ "└▀" ╡┐└█╟╘└╗ ╣▀░▀╟▀┤┘. ▒╫╖í╝¡ ░┼└╟ ┤δ║╬║╨└╟
  710.       ░µ┐∞ ▒Γ║╗└√└╕╖╬ ┴≈╖─╚¡╕ª ╗τ┐δ╟╤┤┘. ╕«┤¬╜║┐í╝¡ (─┐│╬ 2.0.30,
  711.       128Mb ╕▐╕≡╕«┐í ╡α╛≤ Pentium pro) ╜╟╟Φ╟╤ ░ß░· ╝╥─╧ ╟╤░│╕ª
  712.       ┴≈╖─╚¡╟╧╕Θ ╟╧┴÷ ╛╩└║ ░µ┐∞┐í ║±╟╪ ├╩┤τ ┐Σ├╗└╠ 3% ╣╠╕╕
  713.       ┴┘╛ε╡Θ╛·┤┘. ▒╫╖»│¬ ┴≈╖─╚¡╕ª ╟╧┴÷ ╛╩└║ ░µ┐∞ ┐Σ├╗┤τ 100ms
  714.       ┴÷┐¼└╠ ╣▀╗²╟▀┤┘. └╠ ┴÷┐¼└║ ╛╞╕╢╡╡ LAN┐í╝¡ ╣▀╗²╟╧┤┬ ▒Σ
  715.       ┐¼░ß╝▒╢º╣«└╧ ░═└╠┤┘. ╝╥─╧└╠ ╟╤░│└╬ ░µ┐∞ ┴≈╖─╚¡╕ª ╗τ┐δ╟╧┴÷
  716.       ╛╩└╕╖┴╕Θ <code>SINGLE_LISTEN_UNSERIALIZED_ACCEPT</code>╕ª
  717.       ┴ñ└╟╟╤┤┘.</p>
  718.  
  719.     
  720.  
  721.     <h3>Close ┴÷┐¼(lingering)</h3>
  722.  
  723.       
  724.  
  725.       <p><a href="http://www.ics.uci.edu/pub/ietf/http/draft-ietf-http-connection-00.txt">
  726.       draft-ietf-http-connection-00.txt</a> 8└²┐í╝¡ ╝│╕φ╟╧╡φ└╠
  727.       <strong>╛╚┴ñ└√└╬</strong> └Ñ╝¡╣÷░í ╡╟╖┴╕Θ, ┼δ╜┼└╟ ╛τ ╣µ╟Γ└╗
  728.       ╡╢╕│└√└╕╖╬ ┤▌└╗ ╝÷ └╓╛ε╛▀ ╟╤┤┘ (TCP ┐¼░ß└║ ╜╓╣µ╟Γ└╠░φ,
  729.       ╣µ╟Γ└║ ╝¡╖╬ ╡╢╕│└√└╠┤┘). └╠┴í└╗ ┤┘╕Ñ ╝¡╣÷┐í╝¡┤┬ └┌┴╓
  730.       ░ú░·╟╧┴÷╕╕, ╛╞╞──í┤┬ 1.2║╬┼═ ┴ñ╚«╚≈ ▒╕╟÷╟╪┐╘┤┘.</p>
  731.  
  732.       <p>└╠ ▒Γ┤╔└╗ ║╬┴╓└╟╟╧░╘ ╛╞╞──í┐í ├▀░í╟▀└╗╢º ┐⌐╖» └»┤╨╜║
  733.       ╣÷└ⁿ┐í╝¡ ╕╣└║ ╣«┴ª░í ╣▀╗²╟▀┤┘. TCP ▒╘╛α└║
  734.       <code>FIN_WAIT_2</code>┐í ┼╕└╙╛╞┐⌠└╠ └╓┤┘░φ ┴ñ╟╧┴÷ ╛╩╛╥┴÷╕╕,
  735.       ▒▌┴÷╟╧┴÷╡╡ ╛╩╛╥┤┘. ┼╕└╙╛╞┐⌠└╠ ╛°┤┬ ╜├╜║┼█┐í╝¡ ╛╞╞──í 1.2┤┬
  736.       ╕╣└║ ╝╥─╧└╗ ┐╡┐°╚≈ <code>FIN_WAIT_2</code> ╗≤┼┬╖╬ ╕╕╡Θ╛·┤┘.
  737.       ╕╣└║ ░µ┐∞ └╠ ╣«┴ª┤┬ ┴ª└█╗τ░í ┴ª░°╟╧┤┬ ├╓╜┼ TCP/IP ╞╨─í╕ª
  738.       └√┐δ╟╧┐⌐ ╟╪░ß╟╥ ╝÷ └╓┤┘. ▒╫╖»│¬ ┴ª└█╗τ░í ╞╨─í╕ª ╣▀╟Ñ╟╧┴÷
  739.       ╛╩┤┬ ░µ┐∞░í (<em>┴∩,</em> SunOS4 -- ╝╥╜║ ╢≤└╠╝▒╜║░í └╓┤┬
  740.       ╗τ╢≈└║ ┴≈┴ó ╞╨─í╟╥ ╝÷ └╓┴÷╕╕) └╓▒Γ╢º╣«┐í └╠ ▒Γ┤╔└╗ ╗τ┐δ╟╧┴÷
  741.       ╛╩▒Γ╖╬ ░ß┴ñ╟▀┤┘.</p>
  742.  
  743.       <p>╣µ╣²└║ ╡╬░í┴÷┤┘. ╟╧│¬┤┬ ╝╥─╧ ┐╔╝╟ <code>SO_LINGER</code>╕ª
  744.       ╗τ┐δ╟╧┤┬ ╣µ╣²└╠┤┘. ▒╫╖»│¬ ║╥╟α╚≈╡╡ ┤δ║╬║╨└╟ TCP/IP ╜║┼├└║
  745.       └╠ ┐╔╝╟└╗ ┐├╣┘╖╬ ▒╕╟÷╟╧┴÷ ╛╩╛╥┤┘. ┐├╣┘╖╬ ▒╕╟÷╟╤ ╜║┼├┐í╝¡
  746.       ┴╢┬≈╡╡ (<em>┴∩,</em> ╕«┤¬╜║ 2.0.31) └╠ ╣µ╣²└║ ┤┘└╜ ╣µ╣²║╕┤┘
  747.       ┤⌡ cpu╕ª └Γ╛╞╕╘┤┬┤┘.</p>
  748.  
  749.       <p>╛╞╞──í┤┬ ║╕┼δ (<code>http_main.c</code>┐í └╓┤┬)
  750.       <code>lingering_close</code>╢≤┤┬ ╟╘╝÷╕ª ╗τ┐δ╟╤┤┘. └╠ ╟╘╝÷┤┬
  751.       ┤δ├µ ┤┘└╜░· ░░┤┘:</p>
  752.  
  753.       <div class="example"><p><code>
  754.         void lingering_close (int s)<br />
  755.         {<br />
  756.         <span class="indent">
  757.           char junk_buffer[2048];<br />
  758.           <br />
  759.           /* shutdown the sending side */<br />
  760.           shutdown (s, 1);<br />
  761.           <br />
  762.           signal (SIGALRM, lingering_death);<br />
  763.           alarm (30);<br />
  764.           <br />
  765.           for (;;) {<br />
  766.           <span class="indent">
  767.             select (s for reading, 2 second timeout);<br />
  768.             if (error) break;<br />
  769.             if (s is ready for reading) {<br />
  770.             <span class="indent">
  771.               if (read (s, junk_buffer, sizeof (junk_buffer)) <= 0) {<br />
  772.               <span class="indent">
  773.                 break;<br />
  774.               </span>
  775.               }<br />
  776.               /* just toss away whatever is here */<br />
  777.             </span>
  778.             }<br />
  779.           </span>
  780.           }<br />
  781.           <br />
  782.           close (s);<br />
  783.         </span>
  784.         }
  785.       </code></p></div>
  786.  
  787.       <p>└╠ ─┌╡σ┤┬ ┐¼░ß└╗ ┤▌└╗╢º ┤⌡ CPU╕ª ╗τ┐δ╟╧┴÷╕╕, ╛╚┴ñ└√└╬
  788.       ▒╕╟÷└╗ └º╟╪ ╟╩┐Σ╟╧┤┘. HTTP/1.1└╠ ┤⌡ │╬╕« ╞█┴÷░φ ╕≡╡τ ┐¼░ß└╗
  789.       └»┴÷╟╤┤┘╕Θ(persistent), ┐¼░ß└╗ ╣▐┤┬ ║±┐δ└║ ┐⌐╖» ┐Σ├╗└╗
  790.       ├│╕«╟╧╕Θ╝¡ ╗≤╝Γ╡╔ ░═└╠┤┘. └º╟Φ╟╧░╘╡╡
  791.       <code>NO_LINGCLOSE</code>╕ª ┴ñ└╟╟╧┐⌐ └╠ ▒Γ┤╔└╗ ╗τ┐δ╟╧┴÷
  792.       ╛╩└╗ ╝÷ └╓┴÷╕╕, └²┤δ╖╬ ▒╟╟╧┴÷ ╛╩┤┬┤┘. ╞»╚≈ HTTP/1.1
  793.       ╞─└╠╟┴╢≤└╬ <span class="transnote">(<em>┐¬┴╓;</em> ┐¼░ß└»┴÷ ╗≤┼┬┐í╝¡ └└┤Σ└╗ ▒Γ┤┘╕«┴÷
  794.       ╛╩░φ ┐⌐╖» ┐Σ├╗└╗ ║╕│╗┤┬ ▒Γ╝·)</span> ┐¼░ß└»┴÷┐í┤┬
  795.       <code>lingering_close</code>░í ╟╩╝÷└√└╠┤┘ (▒╫╕«░φ <a href="http://www.w3.org/Protocols/HTTP/Performance/Pipeline.html">
  796.       ╞─└╠╟┴╢≤└╬ ┐¼░ß└╠ ┤⌡ ║ⁿ╕ú▒Γ╢º╣«┐í</a> ╗τ┐δ╟╧▒µ ╣┘╢÷ ░═└╠┤┘).</p>
  797.  
  798.     
  799.  
  800.     <h3>Scoreboard ╞─└╧</h3>
  801.  
  802.       
  803.  
  804.       <p>╛╞╞──í└╟ ║╬╕≡┐═ └┌╜─└║ scoreboard╢≤┤┬ ░═└╗ ┼δ╟╪ ╝¡╖╬
  805.       ┼δ╜┼╟╤┤┘. └╠╗≤└√└╕╖╬┤┬ scoreboard╕ª ░°└»╕▐╕≡╕«╖╬ ▒╕╟÷╟╪╛▀
  806.       ╟╤┤┘. ┐∞╕« ░│╣▀└┌░í ╟╪┤τ ┐ε┐╡├╝┴ª┐í ┴ó▒┘╟╥ ╝÷ └╓░┼│¬ ╗≤╝╝╟╤
  807.       ╞≈╞├ ░ß░·╕ª ╣▐└║ ░µ┐∞ ║╕┼δ ░°└»╕▐╕≡╕«╕ª ╗τ┐δ╟╧┐⌐ ▒╕╟÷╟╤┤┘.
  808.       │¬╕╙┴÷┤┬ ╡≡╜║┼⌐┐í └╓┤┬ ╞─└╧└╗ ╗τ┐δ╟╧┐⌐ ▒╕╟÷╟╤┤┘. ╡≡╜║┼⌐┐í
  809.       └╓┤┬ ╞─└╧└║ ┤└╕«░φ ╜┼╖┌╡╡░í ╢│╛ε┴°┤┘ (▒Γ┤╔╡╡ ┤⌡ └√┤┘).
  810.       <code>src/main/conf.h</code> ╞─└╧┐í╝¡ ╗τ┐δ╟╧┤┬ ╛╞┼░┼╪├─╕ª
  811.       ├ú╛╞╝¡ <code>USE_MMAP_SCOREBOARD</code> ╚ñ└║
  812.       <code>USE_SHMGET_SCOREBOARD</code>└╬┴÷ ╚«└╬╟╤┤┘. ╡╤┴▀
  813.       ╟╧│¬╕ª (░ó░ó ╟╘▓▓ ╗τ┐δ╟╥ <code>HAVE_MMAP</code>└╠│¬
  814.       <code>HAVE_SHMGET</code>╡╡ ░░└╠) ┴ñ└╟╟╧╕Θ ░°└»╕▐╕≡╕« ─┌╡σ╕ª
  815.       ╗τ┐δ╟╤┤┘. ╜├╜║┼█└╠ ┤┘╕Ñ ┴╛╖∙└╟ ░°└»╕▐╕≡╕«╕ª ╗τ┐δ╟╤┤┘╕Θ
  816.       <code>src/main/http_main.c</code> ╞─└╧└╗ ╝÷┴ñ╟╧┐⌐ ╛╞╞──í┐í╝¡
  817.       ░°└»╕▐╕≡╕«╕ª ╗τ┐δ╟╥ ╝÷ └╓╡╡╖╧ ╚┼(hook)└╗ ├▀░í╟╧╢≤. (╢╟╟╤
  818.       ╞╨─í╕ª ┐∞╕«┐í░╘ ║╕│╗┴╓▒µ ╣┘╢⌡┤┘.)</p>
  819.  
  820.       <div class="note">┐¬╗τ└√ ╝│╕φ: ╛╞╞──í└╟ ╕«┤¬╜║ ╣÷└ⁿ└║ ╛╞╞──í 1.2 ╣÷└ⁿ║╬┼═
  821.       ░°└»╕▐╕≡╕«╕ª ╗τ┐δ╟╧▒Γ ╜├└█╟▀┤┘. ╕«┤¬╜║┐í╝¡ ├╩▒Γ ╛╞╞──í
  822.       ╣÷└ⁿ└╠ ┤└╕«░φ ╜┼╖┌╡╡░í ╢│╛ε┴│▒Γ ╢º╣«└╠┤┘.</div>
  823.  
  824.     
  825.  
  826.     <h3>DYNAMIC_MODULE_LIMIT</h3>
  827.  
  828.       
  829.  
  830.       <p>╕≡╡Γ└╗ ╡┐└√└╕╖╬ └╨╛ε╡Θ└╠┴÷ ╛╩┤┬┤┘╕Θ (░í┤╔╟╤ ┴╢▒▌└╠╢≤╡╡
  831.       ╝║┤╔└╗ │⌠└╠▒Γ└º╟╪ └╠ ▒█└╗ └╨┤┬┤┘╕Θ ╛╞╕╢╡╡ ╕≡╡Γ└╗ ╡┐└√└╕╖╬
  832.       └╨╛ε╡Θ└╠┴÷ ╛╩└╗ ░═└╠┤┘), ╝¡╣÷╕ª ──╞─└╧╟╥╢º
  833.       <code>-DDYNAMIC_MODULE_LIMIT=0</code>└╗ ├▀░í╟╤┤┘. ▒╫╖»╕Θ
  834.       ╕≡╡Γ└╗ ╡┐└√└╕╖╬ └╨╛ε╡Θ└╠▒Γ└º╟╪ ╟╥┤τ╟╧┤┬ ╕▐╕≡╕«╕ª └²╛α╟╤┤┘.</p>
  835.  
  836.     
  837.  
  838.   </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  839. <div class="section">
  840. <h2><a name="trace" id="trace">║╬╖╧: ╜├╜║┼█╚ú├Γ ▒Γ╖╧└╗ └┌╝╝╚≈ ║╨╝«╟╧▒Γ</a></h2>
  841.  
  842.     
  843.  
  844.     <p>┤┘└╜└║ Solaris 8┐í╝¡ worker MPM└╗ ╗τ┐δ╟╤ ╛╞╞──í 2.0.38└╟
  845.     ╜├╜║┼█╚ú├Γ ▒Γ╖╧(trace)└╠┤┘. ╛╞╖í ╕φ╖╔╛ε╕ª ╗τ┐δ╟╧┐⌐ ▒Γ╖╧└╗
  846.     ╛≥╛·┤┘:</p>
  847.  
  848.     <div class="example"><p><code>
  849.       truss -l -p <var>httpd_child_pid</var>.
  850.     </code></p></div>
  851.  
  852.     <p><code>-l</code> ┐╔╝╟└╗ ╗τ┐δ╟╧╕Θ truss┤┬ ╜├╜║┼█╚ú├Γ└╗
  853.     ╟╧┤┬ LWP (lightweight process, ░µ╖«▒▐ ╟┴╖╬╝╝╜║--Solaris└╟
  854.     ─┐│╬╝÷┴╪ ╛▓╖╣╡σ) ID╕ª ░░└╠ ▒Γ╖╧╟╤┤┘.</p>
  855.  
  856.     <p>┤┘╕Ñ ╜├╜║┼█┐í┤┬ <code>strace</code>, <code>ktrace</code>,
  857.     <code>par</code> ░░└║ ╜├╜║┼█╚ú├Γ ├▀└√ ╡╡▒╕░í └╓┤┘. ░ß░·┤┬
  858.     ║±╜┴╟╧┤┘.</p>
  859.  
  860.     <p>┼¼╢≤└╠╛≡╞«┤┬ └Ñ╝¡╣÷┐í░╘ ┼⌐▒Γ░í 10KB└╬ ┴ñ└√ ╞─└╧└╗ ┐Σ├╗╟╤┤┘.
  861.     ┴ñ└√└╬ ╞─└╧└╗ ┐Σ├╗╟╧┴÷ ╛╩░┼│¬ │╗┐δ╟∙╗≤╟╧┤┬ ┐Σ├╗└╗ ╟╤ ░µ┐∞
  862.     ▒Γ╖╧└╠ ╕┼┐∞ ┤┘╕ú┤┘ (╢º╖╬┤┬ ╕┼┐∞ ╛╦╛╞║╕▒Γ ╚√╡Θ┤┘).</p>
  863.  
  864.     <div class="example"><pre>/67:    accept(3, 0x00200BEC, 0x00200C0C, 1) (sleeping...)
  865. /67:    accept(3, 0x00200BEC, 0x00200C0C, 1)            = 9</pre></div>
  866.  
  867.     <p>└º┐í╝¡ ┐¼░ß┤δ▒Γ(listener) ╛▓╖╣╡σ░í LWP #67┐í╝¡ ╜╟╟α╡╩└╗
  868.     ╛╦ ╝÷ └╓┤┘.</p>
  869.  
  870.     <div class="note"><code>accept(2)</code> ┴≈╖─╚¡╕ª ╗τ┐δ╟╧┴÷ ╛╩└╜└╗ ┴╓╕±╟╧╢≤.
  871.     ┐⌐╖» ╞≈╞«╕ª ▒Γ┤┘╕«┴÷╛╩┤┬ ░µ┐∞ └╠ ╟├╖í╞√└╟ worker MPM└║
  872.     ▒Γ║╗└√└╕╖╬ ┴≈╖─╚¡╟╧┴÷ ╛╩└║ accept╕ª ╗τ┐δ╟╤┤┘.</div>
  873.  
  874.     <div class="example"><pre>/65:    lwp_park(0x00000000, 0)                         = 0
  875. /67:    lwp_unpark(65, 1)                               = 0</pre></div>
  876.  
  877.     <p>┐¼░ß└║ ╣▐╛╞╡Θ└╠░φ(accept) ┐¼░ß┤δ▒Γ ╛▓╖╣╡σ┤┬
  878.     worker ╛▓╖╣╡σ╕ª ▒·┐÷╝¡ ┐Σ├╗└╗ ├│╕«╟╧░╘ ╟╤┤┘. ╛╞╖í ▒Γ╖╧┐í╝¡
  879.     ┐Σ├╗└╗ ├│╕«╟╧┤┬ worker ╛▓╖╣╡σ░í LWP #65└╙└╗ ╛╦ ╝÷ └╓┤┘.</p>
  880.  
  881.     <div class="example"><pre>/65:    getsockname(9, 0x00200BA4, 0x00200BC4, 1)       = 0</pre></div>
  882.  
  883.     <p>░í╗≤╚ú╜║╞«╕ª ▒╕╟÷╟╧▒Γ└º╟╪ ╛╞╞──í┤┬ ┐¼░ß└╗ ╣▐╛╞╡Θ└╬
  884.     ┴÷┐¬(local) ╝╥─╧ ┴╓╝╥╕ª ╛╦╛╞╛▀ ╟╤┤┘. (░í╗≤╚ú╜║╞«╕ª ╗τ┐δ╟╧┴÷
  885.     ╛╩░┼│¬ <code class="directive"><a href="../mod/mpm_common.html#listen">Listen</a></code>
  886.     ┴÷╜├╛ε┐í ┐═└╧╡σ─½╡σ ┴╓╝╥╕ª ╗τ┐δ╟╧┴÷ ╛╩└║ ░µ┐∞ ╡ε) ╕╣└║ ░µ┐∞
  887.     └╠ ╚ú├Γ└╗ ╛°╛┘ ╝÷ └╓┤┘. ▒╫╖»│¬ ╛╞┴≈ └╠╖▒ ├╓└√╚¡ └█╛≈└╠
  888.     ╛╚╡╟└╓┤┘. </p>
  889.  
  890.     <div class="example"><pre>/65:    brk(0x002170E8)                                 = 0
  891. /65:    brk(0x002190E8)                                 = 0</pre></div>
  892.  
  893.     <p><code>brk(2)</code> ╚ú├Γ└║ ╚ⁿ(heap)┐í╝¡ ╕▐╕≡╕«╕ª ╟╥┤τ╟╤┤┘.
  894.     └Ñ╝¡╣÷┤┬ ┤δ║╬║╨└╟ ┐Σ├╗ ├│╕«╜├ └┌├╝ ╕▐╕≡╕«
  895.     ╟╥┤τ└┌(<code>apr_pool</code>░· <code>apr_bucket_alloc</code>)╕ª
  896.     ╗τ┐δ╟╧▒Γ╢º╣«┐í ╜├╜║┼█╚ú├Γ ▒Γ╖╧┐í╝¡ └╠ ╜├╜║┼█╚ú├Γ└╗ ║╕▒Γ░í
  897.     ╡σ╣░┤┘. └╠ ▒Γ╖╧┐í╝¡ └Ñ╝¡╣÷┤┬ ╜├└█╟╧└┌╕╢└┌ └┌├╝ ╕▐╕≡╕« ╟╥┤τ└┌░í
  898.     ╗τ┐δ╟╥ ╕▐╕≡╕«║φ╖╧└╗ ╛≥▒Γ└º╟╪ <code>malloc(3)</code>└╗ ╚ú├Γ╟╤┤┘.</p>
  899.  
  900.     <div class="example"><pre>/65:    fcntl(9, F_GETFL, 0x00000000)                   = 2
  901. /65:    fstat64(9, 0xFAF7B818)                          = 0
  902. /65:    getsockopt(9, 65535, 8192, 0xFAF7B918, 0xFAF7B910, 2190656) = 0
  903. /65:    fstat64(9, 0xFAF7B818)                          = 0
  904. /65:    getsockopt(9, 65535, 8192, 0xFAF7B918, 0xFAF7B914, 2190656) = 0
  905. /65:    setsockopt(9, 65535, 8192, 0xFAF7B918, 4, 2190656) = 0
  906. /65:    fcntl(9, F_SETFL, 0x00000082)                   = 0</pre></div>
  907.  
  908.     <p>┤┘└╜ worker ╛▓╖╣╡σ┤┬ ┼¼╢≤└╠╛≡╞«└╟ ┐¼░ß(╞─└╧▒Γ╝·└┌ 9)└╗
  909.     ┤δ▒Γ╛╚╟╘(non-blocking) ╗≤┼┬╖╬ ╣┘▓█┤┘. <code>setsockopt(2)</code>┐═
  910.     <code>getsockopt(2)</code> ╚ú├Γ└║ Solaris└╟ libc░í ╝╥─╧┐í
  911.     ┤δ╟╤ <code>fcntl(2)</code>└╗ ╛ε╢╗░╘ ├│╕«╟╧┤┬┴÷ ║╕┐⌐┴╪┤┘.</p>
  912.  
  913.     <div class="example"><pre>/65:    read(9, " G E T   / 1 0 k . h t m".., 8000)     = 97</pre></div>
  914.  
  915.     <p>worker ╛▓╖╣╡σ┤┬ ┼¼╢≤└╠╛≡╞«╖╬ ║╬┼═ ┐Σ├╗└╗ └╨┤┬┤┘.</p>
  916.  
  917.     <div class="example"><pre>/65:    stat("/var/httpd/apache/httpd-8999/htdocs/10k.html", 0xFAF7B978) = 0
  918. /65:    open("/var/httpd/apache/httpd-8999/htdocs/10k.html", O_RDONLY) = 10</pre></div>
  919.  
  920.     <p>└Ñ╝¡╣÷ ╝│┴ñ└║ <code>Options FollowSymLinks</code>┐═
  921.     <code>AllowOverride None</code>└╠┤┘. ▒╫╖í╝¡ ┐Σ├╗╟╤ ╞─└╧░µ╖╬└╟
  922.     ░ó ╡≡╖║┼Σ╕«┐í ┤δ╟╪ <code>lstat(2)</code>╟╧░┼│¬
  923.     <code>.htaccess</code> ╞─└╧└╗ ░╦╗τ╟╥ ╟╩┐Σ░í ╛°┤┘. ╞─└╧└╗
  924.     ░╦╗τ╟╧▒Γ└º╟╪, 1) ╞─└╧└╠ └╓┤┬┴÷, 2) ╡≡╖║┼Σ╕«░í ╛╞┤╤ └╧╣▌╞─└╧└╬┴÷,
  925.     <code>stat(2)</code> ╚ú├Γ╕╕ ╟╧╕Θ ╡╚┤┘.</p>
  926.  
  927.     <div class="example"><pre>/65:    sendfilev(0, 9, 0x00200F90, 2, 0xFAF7B53C)      = 10269</pre></div>
  928.  
  929.     <p>└╠ ░µ┐∞ └Ñ╝¡╣÷┤┬ ╟╤╣°└╟ <code>sendfilev(2)</code> ╜├╜║┼█╚ú├Γ╖╬
  930.     HTTP └└┤Σ╟∞┤⌡┐═ ┐Σ├╗╟╤ ╞─└╧└╗ └ⁿ╝█╟╥ ╝÷ └╓┤┘. Sendfile ┴÷┐°┐⌐║╬┤┬
  931.     ┐ε┐╡├╝┴ª╕╢┤┘ ┤┘╕ú┤┘. ┤┘╕Ñ ╜├╜║┼█└╠╢≤╕Θ <code>sendfile(2)</code>└╗
  932.     ╚ú├Γ╟╧▒Γ └ⁿ┐í ╟∞┤⌡╕ª ║╕│╗▒Γ└º╟╪ <code>write(2)</code>│¬
  933.     <code>writev(2)</code> ╚ú├Γ└╗ ╟╤┤┘.</p>
  934.  
  935.     <div class="example"><pre>/65:    write(4, " 1 2 7 . 0 . 0 . 1   -  ".., 78)      = 78</pre></div>
  936.  
  937.     <p><code>write(2)</code> ╚ú├Γ└║ ┴ó▒┘╖╬▒╫(access log)┐í ┐Σ├╗└╗
  938.     ▒Γ╖╧╟╤┤┘. └╠ ▒Γ╖╧┐í <code>time(2)</code> ╚ú├Γ└╠ ╛°└╜└╗ ┴╓╕±╟╧╢≤.
  939.     ╛╞╞──í 1.3░· ┤▐╕« ╛╞╞──í 2.0└║ ╜├░ú└╗ ╛╦▒Γ└º╟╪
  940.     <code>gettimeofday(3)</code>╕ª ╗τ┐δ╟╤┤┘.
  941.     <code>gettimeofday</code>╕ª ├╓└√╚¡╟╤ ╕«┤¬╜║┐═ Solaris ░░└║
  942.     ╕ε╕ε ┐ε┐╡├╝┴ª┐í╝¡┤┬ └╧╣▌└√└╬ ╜├╜║┼█╚ú├Γ ║╬┤π└╠ ╛°┤┘.</p>
  943.  
  944.     <div class="example"><pre>/65:    shutdown(9, 1, 1)                               = 0
  945. /65:    poll(0xFAF7B980, 1, 2000)                       = 1
  946. /65:    read(9, 0xFAF7BC20, 512)                        = 0
  947. /65:    close(9)                                        = 0</pre></div>
  948.  
  949.     <p>worker ╛▓╖╣╡σ┤┬ ┐¼░ß└╗ ┴÷┐¼┤▌▒Γ(lingering close)╟╤┤┘.</p>
  950.  
  951.     <div class="example"><pre>/65:    close(10)                                       = 0
  952. /65:    lwp_park(0x00000000, 0)         (sleeping...)</pre></div>
  953.  
  954.     <p>╕╢┴÷╕╖└╕╖╬ worker ╛▓╖╣╡σ┤┬ ╣µ▒▌ └ⁿ╝█╟╤ ╞─└╧└╗ ┤▌░φ,
  955.     ┐¼░ß┤δ▒Γ(listener) ╛▓╖╣╡σ░í ┤┘╕Ñ ┐¼░ß└╗ ╟╥┤τ╟╥ ╢º▒ε┴÷
  956.     ┴ñ┴÷╟╤┤┘.</p>
  957.  
  958.     <div class="example"><pre>/67:    accept(3, 0x001FEB74, 0x001FEB94, 1) (sleeping...)</pre></div>
  959.  
  960.     <p>▒╫╡┐╛╚ ┐¼░ß┤δ▒Γ ╛▓╖╣╡σ┤┬ ┐¼░ß└╗ (╕≡╡τ worker░í └█╛≈┴▀└╠╕Θ
  961.     ┐¼░ß┤δ▒Γ ╛▓╖╣╡σ╕ª ╕╪├▀┤┬ worker MPM└╟ ╚σ╕º┴ª╛ε ▒Γ┤╔┐í ╡√╢≤)
  962.     worker ╛▓╖╣╡σ┐í ╟╥┤τ╟╧└┌╕╢└┌ ┤┘╕Ñ ┐¼░ß└╗ ╣▐╛╞╡Θ└╧ ╝÷ └╓┤┘.
  963.     └╠ ▒Γ╖╧┐í┤┬ │¬┐└┴÷ ╛╩┴÷╕╕, worker ╛▓╖╣╡σ░í ╣µ▒▌ ╣▐└║ ┐¼░ß└╗
  964.     ├│╕«╟╧┤┬ ╡┐╛╚ ┤┘└╜ <code>accept(2)</code>░í (┐Σ├╗└╠ ╕┼┐∞
  965.     ╕╣└║ ░µ┐∞ ╟╫╗≤) └╧╛ε│» ╝÷ └╓┤┘.</p>
  966.  
  967.   </div></div>
  968. <div class="bottomlang">
  969. <p><span>░í┤╔╟╤ ╛≡╛ε: </span><a href="../en/misc/perf-tuning.html" hreflang="en" rel="alternate" title="English"> en </a> |
  970. <a href="../ko/misc/perf-tuning.html" title="Korean"> ko </a></p>
  971. </div><div id="footer">
  972. <p class="apache">Copyright 1999-2004 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>
  973. <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>
  974. </body></html>