2 Apache httpd 之一 三種工作模式

2022-03-11 12:02:48 字數 2960 閱讀 6879

httpd的特性:

perfork mpm:多程序模型,每個程序響應乙個請求  (併發模型不能超過1024個)

乙個主程序:負責生成子n個子程序及**子程序,每個子程序處理乙個使用者請求;即便沒有使用者請求,也會預先生成多個空閒程序,隨時等待請求到達;最大不會超過1024個。負責建立套接字,負責接收請求並將其派發給某子程序進行處理;

n個子程序:每個子程序處理乙個請求;

工作模型:會預先生成n個空閒程序,隨時等待用於響應使用者請求。      

prefork的預設配置(httpd2.2

)startservers

8#程序啟動後立即啟動的空閒程序數量

minspareservers

5#最小空閒程序數量

maxspareservers

20#最大空閒程序數量

serverlimit

256#乙個週期內允許最大的程序數量

maxclients

256#最大允許啟動的伺服器子程序數量

maxrequestsperchild

4000

#允許最大請求的數量(超過數量就會關閉該程序,設定為0則永不過期)

worker mpm多執行緒模型(多程序生成,乙個程序生成多個執行緒)每個執行緒處理乙個使用者請求

乙個主程序:負責生成子程序,建立套接字;負責接收請求,並將其派發給某子程序進行處理;

n個子程序:每個子程序負責生成多個執行緒;

每個執行緒:負責響應使用者請求,其併發響應數量為:m*n (m:子程序數量;n:每個子程序所能建立的最大執行緒數量)。

worker的預設配置(httpd2.2

)startservers

3maxclients

300minsparethreads

25maxsparethreads

75threadsperchild

25#每個子程序所能建立的最大執行緒數量

maxrequestsperchild

0#0表示不限制

event  mpm:事件驅動模型(多程序模式),每個程序響應多個請求

乙個主程序 :負責生成子程序,負責建立套接字,負責接收請求並將其派發給某子程序進行處理

n個子程序:基於事件驅動機制直接響應多個請求,其併發響應數量為:m*n (m:子程序數量;n:每個子程序響應的請求數量)。

0附:httpd2.2預設沒有給出event模型的配置內容,但從測試執行的結果來看,配置應該同worker模型接近。

①httpd2.2不支援同時編譯多個mpm模組,只能在編譯時選定要使用哪個,為此rpm包提供了三個應用程式檔案:httpd(prefork), httpd.worker, httpd.event,分別用於實現對不同的mpm機制的支援;預設使用的模組為/usr/sbin/httpd,其為prefork的mpm模組。

如果要更改mpm,直接修改配置檔案/etc/sysconfig/httpd

修改後重啟服務service httpd restart,此時可通過 ps aux | grep httpd 或 htttpd -m | grep mpm檢視是否更換成功。

②httpd2.4支援動態編譯多個mpm模組,如果要更換mpm,修改配置檔案/etc/httpd/conf.modules.d/00-pmp.conf

loadmodule mpm__module modules/mod_mpm_.so

修改後重啟服務systemctl restart httpd.service,此時可通過 ps aux | grep httpd或 htttpd -m | grep mpm檢視是否更換成功。

附:httpd2.4.6沒有直接給出3種mpm的預設配置,但是通過/usr/share/doc/httpd-2.4.6/httpd-mpm.conf

檔案即可。此處我修改了worker mpm,內容如下:

httpd2.4切換成worker模型,需要修改配置檔案/etc/httpd/conf.modules.d/00-mpm.conf,內容如下:

重新啟動httpd服務,發現有7條執行緒;即使是預設的配置也是會多出1條執行緒,沒有找到原因:

併發伺服器響應請求:

單程序i/o模型

多程序i/o模型

復用的i/o模型:多執行緒模型和事件驅動

利用的多程序i/o模型

付之一炬2

人間的路 愈是著急走 愈快望到盡 一盞長明燈 不依了老僧 小僧 長明卻也油盡燈枯。蛹化而為蝶兒 卵孵於成雛兒 無不嘆天之大,方圓九萬里也。俟風來雨瀉 呵之摧之 而唾之天待其薄也!其有堅韌者,不為動 不為悲 不為喜哉?避之怠者 命也斬不斷者 情也。後來,規範依然保持著寫日記,他把所有的文字,放到了乙個...

程式設計師三部曲之一 三流的開發人員

曾有言 一流的作管理,二流的作市場,三流的作研發!也有言 一年管理成富翁,三年市場路路通,十年技術一場空!其意無非是說研發人員低人一等,最開始聽到這些話的時候,多是一種不屑,想當初自己畢業的時候,很多人都認為我的性格和能力更適合去做市場,而我卻恰恰相反,選擇了作研發,在我看來,管理是比較高深的領域,...

Halcon 2D測量之一

通過2d測量可以獲取一些特徵,如 物體的範圍,也就是說組成物體的畫素陣列 物體的方向 物體間或者物體組成部分間的角度 物體的位置 物體的尺寸 也就是說他的寬度高度或者物體間的距離,物體組成部分間的距離 物體的個數 分析measure metal part first example.hdev例程 第...