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

            loop_in_codes

            低調(diào)做技術(shù)__歡迎移步我的獨(dú)立博客 codemaro.com 微博 kevinlynx

            zookeeper節(jié)點(diǎn)數(shù)與watch的性能測(cè)試

            zookeeper中節(jié)點(diǎn)數(shù)量理論上僅受限于內(nèi)存,但一個(gè)節(jié)點(diǎn)下的子節(jié)點(diǎn)數(shù)量受限于request/response 1M數(shù)據(jù) (size of data / number of znodes)

            zookeeper的watch機(jī)制用于數(shù)據(jù)變更時(shí)zookeeper的主動(dòng)通知。watch可以被附加到每一個(gè)節(jié)點(diǎn)上,那么如果一個(gè)應(yīng)用有10W個(gè)節(jié)點(diǎn),那zookeeper中就可能有10W個(gè)watch(甚至更多)。每一次在zookeeper完成改寫(xiě)節(jié)點(diǎn)的操作時(shí)就會(huì)檢測(cè)是否有對(duì)應(yīng)的watch,有的話則會(huì)通知到watch。Zookeeper-Watcher機(jī)制與異步調(diào)用原理

            本文將關(guān)注以下內(nèi)容:

            • zookeeper的性能是否會(huì)受節(jié)點(diǎn)數(shù)量的影響
            • zookeeper的性能是否會(huì)受watch數(shù)量的影響

            測(cè)試方法

            在3臺(tái)機(jī)器上分別部署一個(gè)zookeeper,版本為3.4.3,機(jī)器配置:

            Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz
            
            16G
            
            java version "1.6.0_32"
            Java(TM) SE Runtime Environment (build 1.6.0_32-b05)
            OpenJDK (Taobao) 64-Bit Server VM (build 20.0-b12-internal, mixed mode)
            

            大部分實(shí)驗(yàn)JVM堆大小使用默認(rèn),也就是1/4 RAM

            java -XX:+PrintFlagsFinal -version | grep HeapSize
            

            測(cè)試客戶端使用zk-smoketest,針對(duì)watch的測(cè)試則是我自己寫(xiě)的。基于zk-smoketest我寫(xiě)了些腳本可以自動(dòng)跑數(shù)據(jù)并提取結(jié)果,相關(guān)腳本可以在這里找到:https://github.com/kevinlynx/zk-benchmark

            測(cè)試結(jié)果

            節(jié)點(diǎn)數(shù)對(duì)讀寫(xiě)性能的影響

            測(cè)試最大10W個(gè)節(jié)點(diǎn),度量1秒內(nèi)操作數(shù)(ops):

            可見(jiàn)節(jié)點(diǎn)數(shù)的增加并不會(huì)對(duì)zookeeper讀寫(xiě)性能造成影響。

            節(jié)點(diǎn)數(shù)據(jù)大小對(duì)讀寫(xiě)性能的影響

            這個(gè)網(wǎng)上其實(shí)已經(jīng)有公認(rèn)的結(jié)論。本身單個(gè)節(jié)點(diǎn)數(shù)據(jù)越大,對(duì)網(wǎng)絡(luò)方面的吞吐就會(huì)造成影響,所以其數(shù)據(jù)越大讀寫(xiě)性能越低也在預(yù)料之中。

            寫(xiě)數(shù)據(jù)會(huì)在zookeeper集群內(nèi)進(jìn)行同步,所以其速度整體會(huì)比讀數(shù)據(jù)更慢。該實(shí)驗(yàn)需要把超時(shí)時(shí)間進(jìn)行一定上調(diào),同時(shí)我也把JVM最大堆大小調(diào)整到8G。

            測(cè)試結(jié)果很明顯,節(jié)點(diǎn)數(shù)據(jù)大小會(huì)嚴(yán)重影響zookeeper效率。

            watch對(duì)讀寫(xiě)性能的影響

            zk-smoketest自帶的latency測(cè)試有個(gè)參數(shù)--watch_multiple用來(lái)指定watch的數(shù)量,但其實(shí)僅是指定客戶端的數(shù)量,在server端通過(guò)echo whcp | nc 127.0.0.1 4181會(huì)發(fā)現(xiàn)實(shí)際每個(gè)節(jié)點(diǎn)還是只有一個(gè)watch。

            在我寫(xiě)的測(cè)試中,則是通過(guò)創(chuàng)建多個(gè)客戶端來(lái)模擬單個(gè)節(jié)點(diǎn)上的多個(gè)watch。這也更符合實(shí)際應(yīng)用。同時(shí)對(duì)節(jié)點(diǎn)的寫(xiě)也是在另一個(gè)獨(dú)立的客戶端中,這樣可以避免zookeeper client的實(shí)現(xiàn)對(duì)測(cè)試帶來(lái)的干擾。

            每一次完整的測(cè)試,首先是對(duì)每個(gè)節(jié)點(diǎn)添加節(jié)點(diǎn)數(shù)據(jù)的watch,然后在另一個(gè)客戶端中對(duì)這些節(jié)點(diǎn)進(jìn)行數(shù)據(jù)改寫(xiě),收集這些改寫(xiě)操作的耗時(shí),以確定添加的watch對(duì)這些寫(xiě)操作帶來(lái)了多大的影響。

            圖中,0 watch表示沒(méi)有對(duì)節(jié)點(diǎn)添加watch;1 watch表示有一個(gè)客戶端對(duì)每個(gè)節(jié)點(diǎn)進(jìn)行了watch;3 watch表示有其他3個(gè)客戶端對(duì)每個(gè)節(jié)點(diǎn)進(jìn)行了watch;依次類推。

            可見(jiàn),watch對(duì)寫(xiě)操作還是有較大影響的,畢竟需要進(jìn)行網(wǎng)絡(luò)傳輸。同樣,這里也顯示出整個(gè)zookeeper的watch數(shù)量同節(jié)點(diǎn)數(shù)量一樣對(duì)整體性能沒(méi)有影響。

            總體結(jié)論

            • 對(duì)單個(gè)節(jié)點(diǎn)的操作并不會(huì)因?yàn)閦ookeeper中節(jié)點(diǎn)的總數(shù)而受到影響
            • 數(shù)據(jù)大小對(duì)zookeeper的性能有較大影響,性能和內(nèi)存都會(huì)
            • 單個(gè)節(jié)點(diǎn)上獨(dú)立session的watch數(shù)對(duì)性能有一定影響

            posted on 2014-09-21 20:56 Kevin Lynx 閱讀(4932) 評(píng)論(0)  編輯 收藏 引用 所屬分類: network

            亚洲精品美女久久久久99| 色婷婷综合久久久久中文| 久久国产精品-国产精品| 麻豆精品久久久一区二区| 一级做a爱片久久毛片| 久久亚洲精品无码观看不卡| 久久福利资源国产精品999| 亚洲午夜久久久久久噜噜噜| 久久亚洲私人国产精品vA| 久久久精品午夜免费不卡| 国产成人综合久久精品红| 国产成人久久精品区一区二区| 精品久久久久久久久久中文字幕| 久久久久亚洲av成人网人人软件 | 久久婷婷是五月综合色狠狠| 久久精品亚洲日本波多野结衣| 女人香蕉久久**毛片精品| 日韩精品久久无码中文字幕| 久久夜色精品国产www| 久久亚洲高清观看| 国产成人精品久久| 亚洲国产精品狼友中文久久久 | 日韩欧美亚洲综合久久影院Ds | 国产69精品久久久久9999APGF| 91精品无码久久久久久五月天| 99久久国产宗和精品1上映| 久久亚洲2019中文字幕| 国产精品美女久久久网AV| 国产精品免费看久久久| 久久综合亚洲鲁鲁五月天| 久久免费视频6| 久久国产成人亚洲精品影院| 国产精品久久久久天天影视| 精品蜜臀久久久久99网站| 三上悠亚久久精品| 久久99精品久久久久久久久久| 亚洲AV日韩精品久久久久| 久久精品亚洲日本波多野结衣| 国产午夜免费高清久久影院| 久久久老熟女一区二区三区| 久久精品国产99久久久|