<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    jinfeng_wang

    G-G-S,D-D-U!

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      400 Posts :: 0 Stories :: 296 Comments :: 0 Trackbacks
    http://blog.csdn.net/proad/archive/2008/04/16/2296925.aspx


    1. 常用服務器模型
    a.迭代服務器:只有一個進程/線程處理請求。一般為單進程,加上select多路復用,非阻塞socket。
    b.迭代/并發混合型服務器:平時迭代處理,對消耗大的請求并發處理。處理請求時設置一個超時,當請求的處理時間超時時,創建一個進程/線程,把處理轉給新的進程/線程處理,主進程/線程繼續處理其他請求。
    c.并發服務器:多個進程/線程并發處理請求。

    2. 以上三類的服務器比較
    迭代服務器:最簡單,性能不高。
    并發服務器:性能較高,但結構相對比較復雜,開發難度中等。
    迭代/并發混合型服務器:性能不錯,但結構通常比單純的并發服務器更復雜。

    3. 多進程的并發服務器
    a. 每個連接fork一個進程:主進程accpet連接,有新連接到來時fork一個進程,然后繼續accept,等待新的連接。數據傳輸由子進程處理,處理完后子進程exit。每個子進程只處理一個連接。
    b. Prefork進程:主進程預先fork一些進程,各個子進程競爭accept,然后處理數據傳輸。一個子進程可以處理一個連接,也可以同時處理多個連接(通過select等)。
    c. Prefork進程:由父進程accept請求,通過流管道轉發fd到子進程,子進程收到fd后,處理數據傳輸,處理結束后通知父進程。父進程處理的事情比較簡單,容易監控子進程。

    以上3種方式性能比較:
    a.每個連接fork一個進程:處理smtp等狀態較多,數據量比較大時比較簡單實用,總體性能不大好。
    b.Prefork進程,各個子進程競爭accept:比較簡單,性能不錯。
    c.Prefork進程,由父進程accept請求,通過流管道轉發fd到子進程:代碼復雜,性能一般不如上一種。

    4. 多線程的并發服務器
    a.每個連接一個線程
    b.Prethread多個線程,各個線程互斥accept
    c.Prethread多個線程,主線程accept并分發連接給子線程

    5. 多進程與多線程的比較
    使用線程的模型:性能比使用進程要高,但代碼比較復雜,對代碼質量要求更高,線程出錯后可能會影響到所有線程,多進程的模式一個進程出錯一般不會影響其他進程。
    多線程模型共享數據比較簡單有效,多進程模型共享數據比較麻煩,效率也不如線程。

    6. 一些流行的網絡服務器采用的模型

    Sendmail: 采用多進程,每個連接fork一個進程.
    每個連接fork一個子進程
    子進程只處理一個連接
    子進程fork一個localmail進程(可以由用戶自己編寫),通過管道把數據轉給localmail處理,把郵件處理業務邏輯獨立出來
    優點:結構簡單,不用維護復雜的狀態機

    Apache1.3:采用多進程, prefork進程
    子進程競爭accept,每次只處理一個連接
    主進程不accept,根據負載情況調整子進程數量
    子進程運行一段時間后,主進程會讓它退出,然后創建一個新的進程,防止內存泄漏等
    主進程通過shared memory監控子進程

    移動QQ: Prefork多個進程,競爭accept,
    典型的一問一答TCP服務器,結構簡單
    每個進程通過select可以同時處理多個連接
    采用這種結構的原因有:
    每秒請求<1000,可以滿足要求
    結構簡單,容易開發、維護

    posted on 2010-04-16 11:36 jinfeng_wang 閱讀(1397) 評論(0)  編輯  收藏 所屬分類: viewLinuxwebsite
    主站蜘蛛池模板: 亚洲精品久久无码| 亚洲成aⅴ人在线观看| 高潮毛片无遮挡高清免费| 精品免费国产一区二区三区| 亚洲综合伊人制服丝袜美腿| 免费精品国产日韩热久久| 亚洲国产精品日韩在线观看| 午夜国产精品免费观看| 亚洲综合色丁香婷婷六月图片| 成年午夜视频免费观看视频| 亚洲爆乳成av人在线视菜奈实| 国产免费小视频在线观看| 日本激情猛烈在线看免费观看| 亚洲七七久久精品中文国产| a级毛片无码免费真人久久| 久久综合日韩亚洲精品色| 在免费jizzjizz在线播| 亚洲综合久久一本伊伊区| 夜夜嘿视频免费看| 污网站在线免费观看| 亚洲中文字幕无码久久2017| 午夜精品一区二区三区免费视频| 亚洲日韩乱码中文无码蜜桃| 国外成人免费高清激情视频| 一级特黄a免费大片| 亚洲天天在线日亚洲洲精| 无码国产精品一区二区免费式直播 | 亚洲日本一区二区三区在线| 污污网站免费观看| 亚洲综合av一区二区三区| 亚洲精品无码专区2| 日本免费大黄在线观看| 亚洲精品无码永久在线观看男男| 亚洲电影日韩精品| 最近免费最新高清中文字幕韩国 | 无码一区二区三区免费视频| 美女被爆羞羞网站免费| 亚洲成AV人片在线观看无| 日韩一区二区a片免费观看| 一级一级毛片免费播放| 亚洲国产综合在线|