<-
Apache > HTTP Server > 文件 > 2.4 版 > 模組

Apache MPM prefork

說明建置一個非執行緒化的預先分支化網路伺服器
狀態MPM
模組識別mpm_prefork_module
原始檔prefork.c

摘要

此多重處理模組(MPM)建置一個非執行緒化的預先分支化網路伺服器。每個伺服器程序都可以回應收到的請求,而母程序則管理伺服器池的大小。此模組適合需要避免執行緒處理來符合相容性需求的網站。它也是隔離每個請求的最佳 MPM,因此單一請求的問題不會影響其他請求。

此 MPM 的自我調適能力極佳,因此很少需要調整其組態指令。最重要的設定是 MaxRequestWorkers 必須夠大,才能處理預期會收到的同時請求數,但又要夠小,才能確保所有程序有足夠實體記憶體使用。

Support Apache!

主題

指令

臭蟲修正清單

另請參閱

top

運作原理

單一控制程序負責啟動子程序,後者會監聽連線並伺候處理連線時而來的連線。Apache HTTP 永遠試圖維持數個 備用 或閒置的伺服器程序,以備用於伺候處理進來的請求。這樣一來,用戶端不必等到新的子程序分岔啟動,才能伺候處理其請求。

StartServersMinSpareServersMaxSpareServersMaxRequestWorkers 這些指令,管理上層程序如何建立子程序來伺候處理請求。整體而言,Apache HTTP 非常自我管理,所以大多數網站不需要調整這些指令,即可使用其預設值。需要同時伺候處理 256 個以上請求的網站,可能需要增加 MaxRequestWorkers,而記憶體有限的網站可能需要減少 MaxRequestWorkers,以避免伺服器速度變得很慢(不交換記憶體至磁碟再交換回來)。效能提示 說明文件提供了更多有關調整程序建立的資訊。

上層程序在 Unix 系統通常以 root 啟動,目的是為了繫結至埠 80,但子程序的啟動則由 Apache HTTP 以權限較低的使用者身分來執行。UserGroup 這些指令用來設定 Apache HTTP 子程序的權限。子程序必須能讀取所有將要伺候處理的內容,但其應有如可能最少的權限。

MaxConnectionsPerChild 控制伺服器回收程序的頻率,作法是終止舊程序並啟動新程序。

此 MPM 使用 mpm-accept 互斥信號,將進來的連線存取序列化,以解決暴風雨效應問題(通常發生於存在多個監聽套接字時)。此互斥信號的實作面向,可以使用 Mutex 指令設定。效能提示 說明文件提供了更多有關此互斥信號的資訊。

top

MaxSpareServers 指令

說明閒置子伺服器程序的最大數量
語法MaxSpareServers 數量
預設MaxSpareServers 10
內容伺服器設定
狀態MPM
模組prefork

指令碼 MaxSpareServers 設定想要的閒置子伺服器程序的最大數量。閒置程序就是沒有處理請求的程序。如果超過 MaxSpareServers 處在閒置狀態,主程序就會終止額外的程序。

只有流量非常大的網站才需要調整這個參數。將這個參數設定為很大的數字幾乎永遠都是個壞點子。如果你嘗試將數值設定為小於或等於 MinSpareServers,Apache HTTP Server 就會自動將它調整為 MinSpareServers + 1

另請參閱

top

MinSpareServers 指令碼

說明閒置子伺服器程序的最小數量
語法MinSpareServers 數值
預設MinSpareServers 5
內容伺服器設定
狀態MPM
模組prefork

指令碼 MinSpareServers 設定想要的閒置子伺服器程序的最小數量。閒置程序就是沒有處理請求的程序。如果閒置的 MinSpareServers 數量少於,主程序就會建立新的子程序:它會產生一個,等候一秒,然後產生兩個,等候一秒,然後產生四個,然後會以等比級數成長,直到每秒產生 32 個子程序為止。只要滿足 MinSpareServers 的設定,它就會停止。

只有流量非常大的網站才需要調整這個參數。將這個參數設定為很大的數字幾乎永遠都是個壞點子。

另請參閱

可用的語言:  德語  |  英語  |  法語  |  日語  |  土耳其語 

top

留言

提醒
這裡不是問答區。放在這裡的留言應該是建議改善文件或伺服器的內容,如果這些留言已經實作或被認為無效/離題,我們的管理員可能會將其移除。有關如何管理 Apache HTTP Server 的問題,應該導向我們的 IRC 頻道 #httpd,位在 Libera.chat,或傳送給我們的 郵寄清單