• <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
            国产精品久久久久乳精品爆| 午夜精品久久久久久| 国产亚洲婷婷香蕉久久精品| 久久成人国产精品二三区| 国产精品内射久久久久欢欢| 久久亚洲AV无码精品色午夜麻豆| 久久国产精品99精品国产| 久久久久久A亚洲欧洲AV冫| 久久久亚洲欧洲日产国码二区| 久久99精品久久久久久不卡 | 精品无码久久久久久午夜| 青青热久久综合网伊人| 精品久久人人爽天天玩人人妻| 亚洲一本综合久久| 天天爽天天狠久久久综合麻豆 | 久久久久久久免费视频| 亚洲伊人久久大香线蕉苏妲己| 中文国产成人精品久久不卡| 国内精品久久久久久久久| 成人免费网站久久久| 久久婷婷成人综合色综合| 亚洲婷婷国产精品电影人久久| 久久97精品久久久久久久不卡 | 久久久91人妻无码精品蜜桃HD| 久久久久久国产精品无码超碰| 18禁黄久久久AAA片| 久久av免费天堂小草播放| 日本三级久久网| 精品久久久久久中文字幕| 久久一日本道色综合久久| 久久婷婷色香五月综合激情 | 久久久久国产精品人妻| 人妻中文久久久久| 久久本道久久综合伊人| 国产精品成人99久久久久 | 亚洲中文字幕久久精品无码喷水| 精品久久人人做人人爽综合| 国产精品成人久久久久三级午夜电影| 亚洲欧美日韩精品久久| 精品久久久久久久久久中文字幕 | 久久国产乱子精品免费女|