一、簡介

     nginx是一款非常受歡迎的軟件,具備高性能、模塊化可定制的良好特性。之前寫了一篇nginx的http模塊分析的文章,主要對http處理模塊進行了分析講解,同時也涉及了nginx模塊化的內(nèi)容。至于nginx高性能的原因,希望能夠在在這篇文章中就自己對于這方面的理解給大家分享一下。

     nginx的event處理模型包含兩個方面:高效的IO處理函數(shù),事件的異步處理(可選的線程池)。

 

二、IO復用函數(shù)

     nginx中包含epoll、poll、select、devpoll、kqueue、iocp等不同的IO處理函數(shù)。下面就常見的epoll、poll、select來做簡單的分析


        select

        poll

        epoll

        fd數(shù)量

        用fd_set類型來存儲fd,每個fd占一位,fd_set在linux系統(tǒng)中默認1024位,所以select最多支持1024個fd(可以通過修改FD_SETSIZE來增加)

        采用pollfd結構體來存儲fd,因此支持的最大fd數(shù)目跟系統(tǒng)內(nèi)存有關(支持存儲多少個)

        采用epoll_event存儲,因此也只與內(nèi)存有關

        通知方式

        網(wǎng)友評論