nginx之epoll模型的詳細介紹
首先我們一個問題一個問題講解,由淺入深的去探索epool
1、什麽是IO復用?
IO流請求操作系統內核,有串行處理和並行處理的兩種概念;串行處理,前面一個處理,後面的所有的需要等
待,所以這是必需考慮並行處理的方式來完成整個IO流的請求,實現最大的並發和吞吐;這裏就用到了IO復用技術,
IO復用技術就是讓一個Socket來做復用完成整個IO流的請求,當然實現IO流的請求,其中一種方式就是多線程,但
是多線程會占用大量資源,不便於管理,從而出現IO多路復用
2、什麽是IO多路復用?
IO多路復用是指多個描述符的I/O操作都能在一個線程內並發交替地順序完成,這裏的“復用”指的是復用同一個
線程;對操作系統內核而言多路復用其實是要完成操作系統IO的請求,對於IO文件的請求,我們當一個IO流要進行
對應的文件處理的時候,要獲取一組文件的描述符,當文件描述符還沒就緒時,它就一直在等待,直到描述符一旦
就緒,它就馬上上報系統的一個通知的機制告訴主應用程序,我已經準備就緒了,你可以來操作了這種方式就是IO
復用方式。
3、什麽是epoll?
IO多路復用的實現方式select 、 poll 、 epoll , 都是liunx內核下的常見多路復用模型最早出現的是select模型
4、什麽是select?
多路復用其實就是內核態對IO請求的時候,主動的會發送所需要處理的文件對象就緒時的文件就緒信息給應
用端,應用端在FD沒有就緒之前都是Block,也就是阻塞住對應的Socket請求,也會維護一個FD的列表;當內核
態發送可用的信號,FD就緒以後,應用端采用select這種模式,會一直在遍歷所維護的FD文件描述符的列表,以
等到對應的喚醒對應的進程完成對應的數據拷貝;在整個過程中select采用的是線性遍歷的模式,這種模式效率
低下,
5、Select缺點及epoll優點
Select缺點:
1) 、能夠監視文件描述符的數量存在最大限制
2) 、線性掃描效率低下
epoll優點:
epoll則優化,完善了select模式的缺點,每當FD就緒,采用系統的回調函數直接將FD放入,效率高,無監視文件描述符的數量限制。
nginx之epoll模型的詳細介紹