下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、本文格式為Word版,下載可任意編輯 Linux服務(wù)器網(wǎng)絡(luò)開發(fā)模型x Linux 服務(wù)器網(wǎng)絡(luò)開發(fā)模型 為什么 Nginx 的性能要比 Apache 高得多? 這主要是由于 Nginx 使用了最新的 epoll(Linux 2.6 內(nèi)核)和 kqueue(FreeBSD)網(wǎng)絡(luò) I/O 模型,而 Apache 那么使用的是傳統(tǒng)的 select 模型。曾在一篇博客上看到有這么個(gè)實(shí)例: 假設(shè)你在大學(xué)中讀書,要等待一個(gè)摯友來訪,而這個(gè)摯友只知道你在 A 號(hào)樓,但是不知道你概括住在哪里,于是你們約好了在 A 號(hào)樓門口見面.假設(shè)你使用的阻塞 IO 模型來處理這個(gè)問題,那么你就只能一向守候在 A 號(hào)樓門口等待
2、摯友的到來,在這段時(shí)間里你不能做別的事情,不難知道,這種方式的效率是低下的.現(xiàn)在時(shí)代變化了,開頭使用多路復(fù)用 IO 模型來處理這個(gè)問題.你報(bào)告你的摯友來了 A 號(hào)樓找樓管大媽,讓她報(bào)告你該怎么走.這里的樓管大媽扮演的就是多路復(fù)用 IO 的角色。 解釋 select 和 epoll 模型的工作方式: select 版大媽做的是如下的事情:譬如同學(xué)甲的摯友來了,select 版大媽對(duì)比笨,她帶著摯友挨個(gè)房間舉行查詢誰是同學(xué)甲,你等的摯友來了。假設(shè)每到來一個(gè)摯友樓管大媽都要全樓的查詢同學(xué),那么處理的效率必然就低下了,過不久樓底就有不少的人了。 epoll 版大媽就對(duì)比先進(jìn)了,她記錄了同學(xué)甲的信息,譬
3、如說他的房間號(hào),那么等同學(xué)甲的摯友到來時(shí),只需要報(bào)告該摯友同學(xué)甲在哪個(gè)房間即可,不用自己親自帶著人滿大樓的找人了。epoll 大媽可以不用吹灰之力就可以定位到同學(xué)甲。一看就很明白 epoll 和 select 模型的識(shí)別了吧。 在 Linux 內(nèi)核中,select 所用到的 FD_SET 是有限的,即內(nèi)核中有個(gè)參數(shù)_FD_SETSIZE 定義了每個(gè) FD_SET 的句柄個(gè)數(shù),在內(nèi)核源碼中 /usr/include/linux/posix_types.h 中 #undef _FD_SETSIZE #define _FD_SETSIZE 1024 假設(shè)想要同時(shí)檢測(cè) 1025 個(gè)句柄的可讀狀態(tài)或 可
4、寫狀態(tài) ,select 是不能實(shí)現(xiàn)的。在內(nèi)核中實(shí)現(xiàn) select 是使用輪詢方法,即每次檢測(cè)都會(huì)遍歷全體 FD_SET 中的句柄,鮮明,select 函數(shù)的執(zhí)行時(shí)間與 FD 檢測(cè)的句柄數(shù)越多就會(huì)越費(fèi)時(shí)。 epoll 是多路復(fù)用 是多路復(fù)用 IO(I/O Multiplexing) 中的一種方式,僅用于 linux2.6 以上內(nèi)核。而 epoll 模型它所支持的 FD 上限是最大可以開啟文件的數(shù)目,這個(gè)數(shù)字一般遠(yuǎn)大于 2048,舉個(gè)例子,在 1GB 內(nèi)存的機(jī)器上大約是 10 萬左右,概括請(qǐng)查看:cat /proc/sys/fs/file-max ,這個(gè)數(shù)目和系統(tǒng)內(nèi)存關(guān)系很大。 傳統(tǒng)的 selec
5、t/poll 另一個(gè)致命弱點(diǎn)就是當(dāng)你擁有一個(gè)很大的 socket 集合,不過由于網(wǎng)絡(luò)延時(shí),任一時(shí)間只有片面的 socket 是活躍的,但是 select/poll 每次調(diào)用都會(huì)線性掃描全部的集合,導(dǎo)致效率呈現(xiàn)線性下降。但是 epoll 不存在這個(gè)問題,它只會(huì)對(duì)活躍的 socket 舉行操作這是由于在內(nèi)核實(shí)現(xiàn)中 epoll 是根據(jù)每個(gè) fd 上面的 callback 函數(shù)實(shí)現(xiàn)的。那么,只有活躍的 socket 才會(huì)主動(dòng)的去調(diào)用 callback 函數(shù),其他 idle 狀態(tài) socket 那么不會(huì),在這點(diǎn)上,epoll 實(shí)現(xiàn)了一個(gè)偽AIO,由于這時(shí)候推動(dòng)力在 os 內(nèi)核。在一些 benchmark
6、 中,假設(shè)全體的 socket根本上都是活躍的譬如一個(gè)高速 LAN 環(huán)境,epoll 并不比 select/poll 有什么效率,相反,假設(shè)過多使用 epoll_ctl,效率相比還有稍微的下降。但是一旦使用 idle connections 模擬 WAN 環(huán)境,epoll 的效率就遠(yuǎn)在 select/poll 之上了。 epoll 有兩種工作模式:Edge Triggered (ET)、 、Level Triggered (LT) LT(level triggered)是缺省的工作方式,并且同時(shí)支持 block 和 no-block socket.在這種做法中,內(nèi)核報(bào)告你一個(gè)文件描述符是否就緒了,然后可以對(duì)這個(gè)就緒的 fd舉行 IO 操作。假設(shè)你不作任何操作,內(nèi)核還是會(huì)持續(xù)通知你的,所以,這種模式編程出錯(cuò)誤可能性要小一點(diǎn)。傳統(tǒng)的 select/poll 都是這種模型的代表。 ET (edge-triggered)是高速工作方式,只支持 no-block socket。在這種模式下,當(dāng)描述符從未就緒變?yōu)榫途w時(shí),內(nèi)核通過 epoll 報(bào)告你。然后它會(huì)假設(shè)你知道文件描述符已經(jīng)就緒,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度坡屋面小青瓦施工質(zhì)量監(jiān)督與整改服務(wù)合同
- 二零二五年度新加坡留學(xué)就業(yè)輔導(dǎo)合同4篇
- 2025專業(yè)級(jí)防雷系統(tǒng)設(shè)計(jì)與施工監(jiān)管合同3篇
- 商場(chǎng)自動(dòng)扶梯安裝與維護(hù)服務(wù)合同(2025年度)
- 二零二五版羅絲與楊洋的離婚協(xié)議及財(cái)產(chǎn)分割及子女撫養(yǎng)協(xié)議4篇
- 2025年度家具退貨及維修保養(yǎng)服務(wù)協(xié)議范本
- 2025版GB∕T30057(環(huán)保)固體廢物處理與資源化利用合同3篇
- 二零二五年度歷史文化遺址草坪保護(hù)與旅游合同3篇
- 二零二五年度醫(yī)療信息化系統(tǒng)建設(shè)與維護(hù)合同2篇
- 2025版新型綠色建筑勞務(wù)分包合同范本3篇
- 副總經(jīng)理招聘面試題與參考回答(某大型國企)2024年
- PDCA循環(huán)提高護(hù)士培訓(xùn)率
- 2024-2030年中國智慧水務(wù)行業(yè)應(yīng)用需求分析發(fā)展規(guī)劃研究報(bào)告
- 《獅子王》電影賞析
- 河北省保定市定州市2025屆高二數(shù)學(xué)第一學(xué)期期末監(jiān)測(cè)試題含解析
- 中醫(yī)護(hù)理人文
- 2024-2030年中國路亞用品市場(chǎng)銷售模式與競(jìng)爭(zhēng)前景分析報(bào)告
- 貨物運(yùn)輸安全培訓(xùn)課件
- 前端年終述職報(bào)告
- 2024小說推文行業(yè)白皮書
- 市人民醫(yī)院關(guān)于開展“改善就醫(yī)感受提升患者體驗(yàn)主題活動(dòng)”2023-2025年實(shí)施方案及資料匯編
評(píng)論
0/150
提交評(píng)論