• <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>

            陳碩的Blog

            用muduo實現memcached協(xié)議的例子

            最近花了兩天時間用 muduo 部分實現了 memcached 服務器協(xié)議,代碼位于 examples/memcached/server,能通過 memcached 的大部分測試用例(incr/decr 還沒有實現)。

            這不是 memcached 的替代品(它沒有實現LRU和超時功能,也沒有實現二進制協(xié)議,更沒有自己管理內存),而是一個網絡編程的示例(代碼只有 1000 行,比 memcached 小很多),展示 muduo 風格的事件驅動編程,以及將來性能優(yōu)化的試驗品(換句話說,現在這個版本完全沒有在性能上做出任何努力)。讀過 memcached 代碼的人可以對比這兩種編程風格的區(qū)別,memcached 的 read/write 操作穿插于正常邏輯處理,而 muduo 的網絡數據讀寫是由庫完成,應用程序只關心消息收發(fā),目前二者的基本 get/set 操作的性能相當。

            現在 muduo 的 inspector 內置了 gperftools 的遠程 profiling 功能,memcached-debug 展示了其用法。

            為什么不必優(yōu)化 set 操作(含 set/add/update/append/prepend/cas 等)的性能?

            1. 比例。既然是 memcache,那么 get:set 的比例很高,10:1 甚至更高,因此優(yōu)化的重心應該是 get 而非 set。

            假設 memcached 能處理 100k QPS,再假設這些操作都是 set(其實應該不到 10% 是 set),再假設所有的 set 都是串行執(zhí)行的(沒有并發(fā)),那么每次 set 的 CPU 時間不應該超過 10 us(含服務器本地的網絡代碼運行時間,但不含網絡延遲)。而實際上一次 set 的 CPU 時間最多是 2~3 us (用 memcached-footprint 程序測得),根本不值得優(yōu)化。

            2. 網絡帶寬。假設一次 set 操作的 key + value 的長度是 1k bytes,TCP 的有效載荷帶寬按110MB/s估算,那么1kB數據在千兆網上的慣性延遲是 9us(傳輸延遲是幾十上百微秒,與此無關),也就是說服務器的網卡收到這 1kB 數據需要花 9us 時間(從第一個字節(jié)到達到服務器到收完最后一個字節(jié)),那么在 set 耗時 2~3 us 的情況下再去優(yōu)化它是做無用功。

            3. 產生“需要更新的數據”的成本遠大于 memcached set 的開銷。memcached 需要更新,往往是將已寫入數據庫的新數據放到 memcached 中,那么寫數據庫的開銷遠遠大于 memcached set 的開銷,優(yōu)化 set 對提升系統(tǒng)整體性能沒意義。

            posted on 2013-08-18 12:59 陳碩 閱讀(3474) 評論(0)  編輯 收藏 引用 所屬分類: muduo

            <2013年11月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            1234567

            導航

            統(tǒng)計

            常用鏈接

            隨筆分類

            隨筆檔案

            相冊

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            91精品观看91久久久久久| 国产精品久久久久乳精品爆| 久久久久亚洲AV无码专区网站| 伊人热人久久中文字幕| 亚洲综合精品香蕉久久网97 | 伊人热热久久原色播放www| 午夜福利91久久福利| 久久精品免费全国观看国产| 久久久无码一区二区三区| 国产福利电影一区二区三区,免费久久久久久久精 | 成人精品一区二区久久久| 国产精品无码久久久久| 久久综合九色综合欧美就去吻| 一本久久a久久精品vr综合| 国产91久久综合| 囯产极品美女高潮无套久久久| 99久久国产综合精品网成人影院 | 久久99亚洲综合精品首页| 久久国产免费直播| 国产成人AV综合久久| 亚洲中文字幕久久精品无码喷水| 99国内精品久久久久久久| 久久久久波多野结衣高潮| 久久99精品久久久久久9蜜桃| 色综合久久综合中文综合网| 精品国产乱码久久久久久浪潮| 久久国产色AV免费看| 99蜜桃臀久久久欧美精品网站 | 久久久久久国产精品无码下载 | 色综合久久最新中文字幕| 97久久国产露脸精品国产| 亚洲精品乱码久久久久久蜜桃 | 久久久久久亚洲精品不卡| 久久精品视频免费| 久久不见久久见免费视频7| 久久久久久精品久久久久| 四虎影视久久久免费| 欧美激情精品久久久久久久九九九 | 久久久久国产精品嫩草影院| 久久精品国产亚洲一区二区| 久久最新精品国产|