• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            那誰的技術(shù)博客

            感興趣領(lǐng)域:高性能服務(wù)器編程,存儲,算法,Linux內(nèi)核
            隨筆 - 210, 文章 - 0, 評論 - 1183, 引用 - 0
            數(shù)據(jù)加載中……

            Nginx0.7.61代碼分析(四)--處理超時連接

            之前在分析ligty的時候提到,它的超時處理模型大致如下:
            注冊一個處理alarm信號的回調(diào)函數(shù),然后每秒鐘觸發(fā)一次
            回調(diào)函數(shù)每次被觸發(fā)之后,置某個標志位
            在服務(wù)器的主循環(huán)中,每次循環(huán)都會檢查這個標志位有沒有被置位,如果有,說明一秒鐘已經(jīng)過去,這時輪詢所有當前處理的連接,刪除超時的連接。

            這個模型,最大的問題在于,它的效率與當前連接數(shù)量有很大關(guān)系,數(shù)量大了,輪詢一次的成本很高。

            Nginx里面,處理超時連接的模型比之ligty高效了很多:
            當前所有可能被觸發(fā)的定時器被保存在紅黑樹這種數(shù)據(jù)結(jié)構(gòu)中,通過紅黑樹,你可以很快的得到距離當前最快發(fā)生的定時器事件的時間差。
            將這個時間差作為select/poll/epoll等函數(shù)的參數(shù),也就是,最多等待這么長時間就返回。
            當函數(shù)返回時,得到函數(shù)調(diào)用總共花費了多少時間,根據(jù)這個時間取出紅黑樹的根節(jié)點比較查看是否應(yīng)該觸發(fā)該定時器時間,如果可以則將該定時器從紅黑樹中刪除,然后繼續(xù)查看新的成為樹根的定時器節(jié)點,這個過程一直進行下去直到?jīng)]有定時器滿足被觸發(fā)的條件,也就是還沒有到被觸發(fā)的事件。

            Nginx里面,新接收了一個連接,會保存這個連接上來的時間,并且以這個時間來加入紅黑樹定時器中。

            可以看到,因為引入了紅黑樹這個數(shù)據(jù)結(jié)構(gòu),所有的定時器都可以按照順序來依次取出,這樣不用輪詢所有事件來查看是否超時了;而以距離當前最快發(fā)生的定時器事件時間差作為輪詢的定時,又可以不用使用alarm信號來觸發(fā)定時,一舉兩得。

            這個處理超時事件的模型,與我之前分析過的libevent的模型,大體相同,只不過,在那里紅黑樹被堆代替了。

            posted on 2009-12-10 23:52 那誰 閱讀(6350) 評論(1)  編輯 收藏 引用 所屬分類: 服務(wù)器設(shè)計Nginx

            評論

            # re: Nginx0.7.61代碼分析(四)--處理超時連接  回復  更多評論   

            如果設(shè)置了timer_resolution指令的話,nginx貌似也是通過定時器來處理的。
            不是對否?
            2009-12-30 23:06 | sty
            三级三级久久三级久久 | 91精品国产91久久综合| 国内精品伊人久久久久| 武侠古典久久婷婷狼人伊人| www.久久热.com| 婷婷久久综合九色综合绿巨人| 一本久久a久久精品综合香蕉| 一本久久久久久久| 久久天天躁狠狠躁夜夜网站| 久久综合九色综合网站| 国产精品美女久久久m| 午夜精品久久久久久久| 久久精品国产男包| 久久天天躁狠狠躁夜夜avapp| 国产精品久久久久国产A级| 香蕉久久AⅤ一区二区三区| 久久久久亚洲AV无码永不| 国产成年无码久久久久毛片| 四虎国产精品成人免费久久| 97久久精品无码一区二区天美 | 久久久久久久久久免免费精品 | 久久天天躁狠狠躁夜夜96流白浆 | 美女写真久久影院| 91精品国产91久久久久久青草| 久久免费看黄a级毛片| 伊人久久大香线蕉综合5g| 久久久99精品一区二区| 99久久精品国产一区二区| 国产精品久久99| 国产午夜久久影院| 热99re久久国超精品首页| 久久99精品久久只有精品| 久久久久无码精品国产| 奇米综合四色77777久久| 亚洲av伊人久久综合密臀性色| 久久婷婷人人澡人人爽人人爱| 亚洲精品国精品久久99热| 久久国语露脸国产精品电影| 色诱久久久久综合网ywww| 国产精品99久久99久久久| 精品九九久久国内精品|