測試jdbc連接下,mysql和mycat的吞吐性能


  最近一個項目需要數據庫有較大的吞吐量,因為項目要求的訪問量和數據量較大,決定采用一個數據庫中間件來對數據庫進行管理。經過一番查詢,決定使用阿里的一個開源項目-mycat。因為mycat基於mysql,是針對磁盤的讀與寫,故在讀寫速度上理論上會小於等於mysql。為求嚴謹,在這之前我用java編寫程序進行了測試,采用了基本的優化,如連接池測試結果如下:

  engines:innodb,mysql:20線程,單條插入,速度:300-400/s

  engines:innodb,mycat控制3個數據源,100個數據庫,向一張表插入數據,20線程,單條插入,速度:300-400/s

  (數據不穩定的原因是因為都是靠我自己掐時間用計算器算的-。-)

 

  這個速度是不滿足需求的,后來一個同事想起了曾經接觸過的一個基於mysql的數據引擎-----TokuDB。網上關於TokuDB的一條說明讓我怦然心動:“插入性能提升9倍”。=。=誠然我是不信的,我要自己試一下。於是我裝上了tokudb引擎進行了測試(安裝方法在我另一篇文章中)。如下:

  engines:tokudb,mysql:20線程,單條插入,速度:600-900/s

  engines:tokudb,mycat控制1個數據源,50個數據庫,向一張表插入數據,20線程,單條插入,速度:600-900條/s

  從我粗略的測試數據可以看到,tokudb的插入性能提升實際是沒有9倍的,這個9倍我估計是峰值。但是2倍的性能提升還是很不錯的。要達到客戶所說的1200+,至少是看到了希望。

 

  當然,我這個粗略的數據我是不太滿意的,於是我決定用專業的壓力測試軟件----jmeter進行測試。然而,測試的結果讓我大是汗顏。

  jmeter可以到https://archive.apache.org/dist/jmeter/binaries/ 進行下載,zip版本直接解壓即可(如果不行可能需要配置環境變量),點擊bin目錄下的jmeter.bat運行。

  如何進行jdbc的測試呢?步驟如下:

  1.在測試計划頁面點擊瀏覽,加載進入數據庫的驅動包,我使用的mysql,驅動包即mysql-connector-java-5.1.26-bin.jar。

  2.在測試計划處右鍵,新建一個線程組。線程組頁面可以配置線程數,我設置成了20,ramp-up period參數的意思是所有的線程將在多少秒內啟動,設置為1秒,循環次數即線程會循環執行多少次。

  3.在線程組上點擊右鍵,添加-配置原件,選擇JDBC Connection Configuration.配置如下:

         

 

  4.在線程組上點擊右鍵-添加-sampler-JDBC Request.配置如下:

                             

  5.點擊線程組,添加兩個監聽器。“圖形結果” 和 “查看結果樹”。用於監控執行情況。

  6.點擊菜單欄 運行-啟動即可。

  下面公布讓我汗顏的測試結果:

  mycat:

    

    

  mysql:

    

    吞吐量每秒才200條!!!什么鬼!!不過也確實證明了mycat速度上確實是小於等於mysql這一觀點...

    我只能把速度的降低歸結於jmeter這個軟件上....希望有知道原理的大神可以告知一下原因=.=

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM