<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Apache MPM worker | [說明](#calibre_link-11) | 支持混合的多線程多進程的多路處理模塊 | | --- | --- | | [狀態](#calibre_link-12) | MPM | | [模塊名](#calibre_link-13) | mpm_worker_module | | [源文件](#calibre_link-14) | worker.c | ### 概述 此多路處理模塊(MPM)使網絡服務器支持混合的多線程多進程。由于使用線程來處理請求,所以可以處理海量請求,而系統資源的開銷小于基于進程的MPM。但是,它也使用了多進程,每個進程又有多個線程,以獲得基于進程的MPM的穩定性。 控制這個MPM的最重要的指令是,控制每個子進程允許建立的線程數的`ThreadsPerChild`指令,和控制允許建立的總線程數的`MaxClients`指令。 ## 工作方式 每個進程可以擁有的線程數量是固定的。服務器會根據負載情況增加或減少進程數量。一個單獨的控制進程(父進程)負責子進程的建立。每個子進程可以建立`ThreadsPerChild`數量的服務線程和一個監聽線程,該監聽線程監聽接入請求并將其傳遞給服務線程處理和應答。 Apache總是試圖維持一個&lt;dfn class="calibre27"&gt;備用(spare)&lt;/dfn&gt;或是空閑的服務線程池。這樣,客戶端無須等待新線程或新進程的建立即可得到處理。初始化時建立的進程數量由`StartServers`指令決定。隨后父進程檢測所有子進程中空閑線程的總數,并新建或結束子進程使空閑線程的總數維持在`MinSpareThreads`和`MaxSpareThreads`所指定的范圍內。由于這個過程是自動調整的,幾乎沒有必要修改這些指令的缺省值。可以并行處理的客戶端的最大數量取決于`MaxClients`指令。活動子進程的最大數量取決于`MaxClients`除以`ThreadsPerChild`的值。 有兩個指令設置了活動子進程數量和每個子進程中線程數量的硬限制。要想改變這個硬限制必須完全停止服務器然后再啟動服務器(直接重啟是不行的),`ServerLimit`是活動子進程數量的硬限制,它必須大于或等于`MaxClients`除以`ThreadsPerChild`的值。`ThreadLimit`是所有服務線程總數的硬限制,它必須大于或等于`ThreadsPerChild`指令。這兩個指令必須出現在其他`worker`MPM指令的前面。 在設置的活動子進程數量之外,還可能有額外的子進程處于"正在中止"的狀態但是其中至少有一個服務線程仍然在處理客戶端請求,直到到達`MaxClients`以致結束進程,雖然實際數量會很小。這個行為能夠通過以下禁止特別的子進程中止的方法來避免: * 將`MaxRequestsPerChild`設為"0" * 將`MaxSpareThreads`和`MaxClients`設為相同的值 一個典型的針對`worker`MPM的配置如下: ``` ServerLimit 16 StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 ``` 在Unix中,為了能夠綁定80端口,父進程一般都是以`root`身份啟動,隨后,Apache以較低權限的用戶建立子進程和線程。`User`和`Group`指令用于設置Apache子進程的權限。雖然子進程必須對其提供的內容擁有讀權限,但應該盡可能給予它較少的特權。另外,除非使用了`suexec` ,否則,這些指令設置的權限將被CGI腳本所繼承。 `MaxRequestsPerChild`指令用于控制服務器建立新進程和結束舊進程的頻率。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看