apache幾種工作模式對比

2021-06-28 14:31:43 字數 1501 閱讀 7045



apache2主要的優勢就是對多處理器的支援更好,在編譯時同過使用--with-mpm選項來決定apache2的工作模式。如果知道當前的apache2使用什麼工作機制,可以通過httpd -l命令列出apache的所有模組,就可以知道其工作方式:

prefork:如果

httpd -l列出prefork.c,則需要對下面的段進行配置:

startservers 5 #啟動apache時啟動的httpd程序個數。

minspareservers 5 #伺服器保持的最小空閒程序數。

maxspareservers 10 #伺服器保持的最大空閒程序數。

maxclients 150 #最大併發連線數。

maxrequestsperchild 1000 #每個子程序被請求服務多少次後被kill掉。0表示不限制,推薦設定為1000。

在該工作模式下,伺服器啟動後起動5個httpd程序(加父程序共6個,通過ps -ax|grep httpd命令可以看到)。當有使用者連線時,apache會使用乙個空閒程序為該連線服務,同時父程序會fork乙個子程序。直到記憶體中的空閒程序達到maxspareservers。該模式是為了相容一些舊版本的程式。我預設編譯時的選項。

worker:如果httpd -l列出worker.c,則需要對下面的段進行配置:

startservers 2 #啟動apache時啟動的httpd程序個數。

maxclients 150 #最大併發連線數。

minsparethreads 25 #伺服器保持的最小空閒執行緒數。

maxsparethreads 75 #伺服器保持的最大空閒執行緒數。

threadsperchild 25 #每個子程序的產生的執行緒數。

maxrequestsperchild 0 #每個子程序被請求服務多少次後被kill掉。0表示不限制,推薦設定為1000。

該模式是由執行緒來監聽客戶的連線。當有新客戶連線時,由其中的乙個空閒執行緒接受連線。伺服器在啟動時啟動兩個程序,每個程序產生的執行緒數是固定的(threadsperchild決定),因此啟動時有50個執行緒。當50個執行緒不夠用時,伺服器自動fork乙個程序,再產生25個執行緒。

perchild:如果httpd -l列出perchild.c,則需要對下面的段進行配置:

numservers 5 #伺服器啟動時啟動的子程序數

startthreads 5 #每個子程序啟動時啟動的執行緒數

minsparethreads 5 #記憶體中的最小空閒執行緒數

maxsparethreads 10 #最大空閒執行緒數

maxthreadsperchild 2000 #每個執行緒最多被請求多少次後退出。0不受限制。

maxrequestsperchild 10000 #每個子程序服務多少次後被重新fork。0表示不受限制。

該模式下,子程序的數量是固定的,執行緒數不受限制。當客戶端連線到伺服器時,又空閒的執行緒提供服務。 如果空閒執行緒數不夠,子程序自動產生執行緒來為新的連線服務。該模式用於多站點伺服器。

Apache工作模式

手工編譯安裝apache 解包 安裝手工編譯軟體包 yum install gcc gcc c pcre devel pcre zlib devel make y 執行configure make編譯 make make install 安裝完成之後建立一條軟鏈結 編輯主配置檔案 其餘配置與普通ap...

幾種工廠模式對比

簡單工廠模式 定義乙個工廠類,它可以根據引數的不同返回不同類的例項,被建立的例項通常都具有共同的父類。因為在簡單工廠模式中用於建立例項的方法是靜態方法,因此簡單工廠模式又被成為靜態工廠方法模式,它屬於類建立類模式。簡單工廠模式的要點在於 當你需要什麼,只需要傳入乙個正確的引數,就可以獲取你所需要的物...

Apache 工作模式詳解

apache 工作模式詳解 apache 2.x 支援插入式並行處理模組,稱為多路處理模組 mpm 在編譯apache時必須選擇也只能選擇乙個mpm,對類unix系統,有幾個不同的mpm可供選擇,它們會影響到apache的速度和可伸縮性。apache啟動會通過指定ip監聽pid埠 會開通過主程序開啟...