1. 程式人生 > >zookeeper節點數與watch的效能測試

zookeeper節點數與watch的效能測試

zookeeper的watch機制用於資料變更時zookeeper的主動通知。watch可以被附加到每一個節點上,那麼如果一個應用有10W個節點,那zookeeper中就可能有10W個watch(甚至更多)。每一次在zookeeper完成改寫節點的操作時就會檢測是否有對應的watch,有的話則會通知到watch。Zookeeper-Watcher機制與非同步呼叫原理

本文將關注以下內容:

  • zookeeper的效能是否會受節點數量的影響
  • zookeeper的效能是否會受watch數量的影響

測試方法

在3臺機器上分別部署一個zookeeper,版本為3.4.3,機器配置:

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)

大部分實驗JVM堆大小使用預設,也就是1/4 RAM

java -XX:+PrintFlagsFinal -version | grep HeapSize

測試結果

節點數對讀寫效能的影響

測試最大10W個節點,度量1秒內運算元(ops):

可見節點數的增加並不會對zookeeper讀寫效能造成影響。

節點資料大小對讀寫效能的影響

這個網上其實已經有公認的結論。本身單個節點資料越大,對網路方面的吞吐就會造成影響,所以其資料越大讀寫效能越低也在預料之中。

寫資料會在zookeeper叢集內進行同步,所以其速度整體會比讀資料更慢。該實驗需要把超時時間進行一定上調,同時我也把JVM最大堆大小調整到8G。

測試結果很明顯,節點資料大小會嚴重影響zookeeper效率。

watch對讀寫效能的影響

zk-smoketest自帶的latency測試有個引數--watch_multiple用來指定watch的數量,但其實僅是指定客戶端的數量,在server端通過echo whcp | nc 127.0.0.1 4181會發現實際每個節點還是隻有一個watch。

在我寫的測試中,則是通過建立多個客戶端來模擬單個節點上的多個watch。這也更符合實際應用。同時對節點的寫也是在另一個獨立的客戶端中,這樣可以避免zookeeper client的實現對測試帶來的干擾。

每一次完整的測試,首先是對每個節點新增節點資料的watch,然後在另一個客戶端中對這些節點進行資料改寫,收集這些改寫操作的耗時,以確定新增的watch對這些寫操作帶來了多大的影響。

圖中,0 watch表示沒有對節點新增watch;1 watch表示有一個客戶端對每個節點進行了watch;3 watch表示有其他3個客戶端對每個節點進行了watch;依次類推。

可見,watch對寫操作還是有較大影響的,畢竟需要進行網路傳輸。同樣,這裡也顯示出整個zookeeper的watch數量同節點數量一樣對整體效能沒有影響。

總體結論

  • 對單個節點的操作並不會因為zookeeper中節點的總數而受到影響
  • 資料大小對zookeeper的效能有較大影響,效能和記憶體都會
  • 單個節點上獨立session的watch數對效能有一定影響

相關推薦

zookeeper點數watch效能測試

zookeeper的watch機制用於資料變更時zookeeper的主動通知。watch可以被附加到每一個節點上,那麼如果一個應用有10W個節點,那zookeeper中就可能有10W個watch(甚至更多)。每一次在zookeeper完成改寫節點的操作時就會檢測是否有對應的watch,有的話則會通知到wa

ArrayListList效能測試

理論:由於ArrayList儲存資料存在裝箱(讀取資料存在拆箱),而泛型List<T>直接對T型別資料進行儲存,不存在裝箱與拆箱拆箱操作,理論上速度應該快一些。 廢話少說,上程式碼。 1 public void Test2() 2 { 3

MySQL組複製技術實現資料庫效能測試工具

測試環境 本文件是在 99Cloud Lab OpenStack 平臺虛機上面測試,僅供參考。 系統: CentOS 7.3 虛機: 2 核 4G 版本: MySQL 5.7 技術架構 MySQL Group Replication(簡稱 MGR)是官方推出的高可用解決方案,原生複製技術,基於外掛

Yii2phalcon效能測試對比

  Phalcon是一款基於C語言編寫高效能的PHP框架,擁有鬆耦合、易擴充套件的特點,並且嚴格遵循PSR規範。   近期接手一個新專案,對效能、擴充套件性要求較高,需要尋找一個合適的框架,經過考察和試驗,確定為phalcon和Yii2二者之一。團隊一直在使用YII框架

效能分析程式碼覆蓋率測試

效能分析 對程式碼優化的前提是需要了解效能瓶頸在什麼地方,程式執行的主要時間是消耗在哪裡,對於比較複雜的程式碼可以藉助一些工具來定位,python 內建了豐富的效能分析工具,如 profile,cProfile 與 hotshot 等。其中 Profiler 是 python 自帶的一組程式,能

效能測試工具操作資料庫(九)-LoadrunnerMongoDB

1、在loadrunner中新建指令碼(本文以LoadRunner11為例),要求選擇協議型別為Java->Java Vuser 2、在Run-time Settings設定JDK路徑,由於LoadRunner11不支援jdk1.8,本次測試是拷貝了一份低版本的JDK1.6,所以路徑選擇固

app效能測試弱網測試

1. 效能測試 Android的app效能測試包括的測試項比如:  1、資源消耗  2、記憶體洩露  3、電量功耗  4、耗時  5、網路流量消耗  6、移動終端相關資源利用率  7、幀率  8、渲染等等.... 測試方法:  1、設計場景

Golang效能測試思考

本文測試Go、Python、PyPy、C的效率,作為學習Go的參考標準。測試用例:進行(2<<25)次簡單加法 測試環境: 系統:Windows7 專業版 CPU:Intel® Core™ i5-4590 CPU @ 3.30GHZ 3.30GHZ

PHP效能測試工具xhprof安裝使用

一、安裝 1 2 3 4 5 6 7 wget https://pecl.php.net/get/xhprof-0.9.4

CentOS 6CentOS 7 詳細對比:常見設定、服務管理、效能測試

 本主題將從3個角度進行對比     2. 服務管理(Sysvinit vs Upstart vs Systemd)     3. 效能測試(cpu/mem/io/oltp) 環境說明 硬體 伺服器: Dell PowerEdge R620

Java直接記憶體非直接記憶體效能測試

什麼是直接記憶體與非直接記憶體 根據官方文件的描述: A byte buffer is either direct or non-direct. Given a direct byte buffer, the Java virtual machine will make

效能測試六:jmeter進階之Cookieheader管理器

    一、http cookie管理器 可以在瀏覽器中抓取到cookie資訊,然後通過http cookie管理器為http請求新增cookie資訊 新增cookie管理器後,Jmeter可以自動處理cookie 登入頁面: http://localhost:8080/Perf

WebService服務端客戶端得簡單應用,效能測試

用途: 比如需要從其他系統獲取資訊,但是不能暴露自己得實現方式的時候。 比較常用得有: 1.HttpClient 2.WebService (推薦使用WebService) 一.簡單介紹 服務端:  暴露出一個URL地址即可,列入     可以發現訪問進去就是一

Python Django 效能測試優化指南

唐納德·克努特(Donald Knuth)曾經說過:“不成熟的優化方案是萬惡之源。”然而,任何一個承受高負載的成熟專案都不可避免地需要進行優化。在本文中,我想談談優化Web專案程式碼的五種常用方法。雖然本文是以Django為例,但其他框架和語言的優化原則也是類似的。通過使用這些

效能測試十:jmeter進階之webServicesocket

 一、webService 1、新增http post請求2、新增header:Conent-type:text/xml Post請求的body中填寫<soapenv:Envelope  xmlns:soapenv="http://schemas.xmlsoap.org/soap

Tomcat的BIO、NIO、APR模式對比效能測試結果

11.11活動當天,伺服器負載過大,導致部分頁面出現了不可訪問的狀態、那後來主管就要求調優了,下面是tomcat bio、nio、apr模式以及後來自己測試的一些效能結果。原理方面的資料都是從網上找的,並且把多個地方的整理到了一起,覺得很有意義。(後面對tomcat預設頁面測

多雲時代,海外微軟Azure雲國內阿里雲專線打通效能測試

作者簡介:沙濤,微軟上海資深雲端計算專家,六年多系統架構運維工作經歷,七年多資料平臺,大資料運維經歷,四年多雲計算經歷,擅長資料與分析領域和雲端計算領域。 在雲端計算的大時代,大型客戶都有業務全球拓展的需求,考慮到成本,時間因素,一般都是選擇雲端計算,現在雲端計算提供商有很多,客戶在採取多雲方案

API測試相容---效能檢測工具

效能檢測工具-------      國外:             YSlow:23條效能軍規,打分制,提供瀏覽器外掛            

效能測試的目的型別

1.效能測試的目的 (1)評估系統的能力:測試中得到的負荷和響應時間資料可以被用於驗證所計劃的模型的能力,並幫助作出決策;(2)尋找系統瓶頸,進行系統調優;(4)檢測軟體中的問題;(5)驗證穩定性、可靠性; 2.效能測試的型別 在講述效能測試型別前,先簡單分析效能測試的壓力