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①httpd2.2不支援同時編譯多個mpm模組,只能在編譯時選定要使用哪個,為此rpm包提供了三個應用程式檔案:httpd(prefork), httpd.worker, httpd.event,分別用於實現對不同的mpm機制的支援;預設使用的模組為/usr/sbin/httpd,其為prefork的mpm模組。)startservers
3maxclients
300minsparethreads
25maxsparethreads
75threadsperchild
25#每個子程序所能建立的最大執行緒數量
maxrequestsperchild
0#0表示不限制
event mpm:事件驅動模型(多程序模式),每個程序響應多個請求
乙個主程序 :負責生成子程序,負責建立套接字,負責接收請求並將其派發給某子程序進行處理
n個子程序:基於事件驅動機制直接響應多個請求,其併發響應數量為:m*n (m:子程序數量;n:每個子程序響應的請求數量)。
0附:httpd2.2預設沒有給出event模型的配置內容,但從測試執行的結果來看,配置應該同worker模型接近。
如果要更改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例程 第...