MemSQL初體驗 - (3)效能測試

junsansi發表於2012-06-27

3、效能測試

 在執行測試前必須首先說明一下本地的虛擬機器測試環境:
  MEM:2G
  CPU:1 core
  OS:CentOS 6.0
  配置整體較差,其實是不適合做DB環境的效能測試的,尤其CPU/記憶體都不夠強,對於測試MemSQL這種恰恰很依賴CPU的應用其實是很不公平地,可是手頭上暫時未找到裝了CENTOS6以上版本的實體機,因此臨時拿它充數。不過測試前我自己心裡也有預期,這個效能表現不會太好,結果只能說僅供參考,其實是不具備實際意義地。待過段時間有了空閒資源會考慮再做對比測試。

這裡先按照普通流程走一遍,大致看一下對比,先看看查詢MySQL資料庫時的效能:
 

      [root@mysql1 script]# perl testquery-sql 20 4000
      Thu Jun 21 14:14:52 2012   CPU:0  LOAD:2.78       GETS:7373
      Thu Jun 21 14:14:53 2012   CPU:82.00      LOAD:2.78       GETS:3671
      Thu Jun 21 14:14:54 2012   CPU:82.00      LOAD:2.78       GETS:3240
      Thu Jun 21 14:14:55 2012   CPU:80.20      LOAD:2.78       GETS:3696
      Thu Jun 21 14:14:56 2012   CPU:80.20      LOAD:2.78       GETS:3221
      Thu Jun 21 14:14:57 2012   CPU:83.00      LOAD:2.78       GETS:3618
      Thu Jun 21 14:14:58 2012   CPU:83.00      LOAD:4.24       GETS:3187
      Thu Jun 21 14:14:59 2012   CPU:82.00      LOAD:4.24       GETS:3693
      ...............
    ...............

測試通過HandlerSocket外掛訪問MySQL庫時的效能:

      [root@mysql1 script]# perl testquery-hs 20 10000
      Thu Jun 21 14:16:58 2012   CPU:0  LOAD:0.00       GETS:27213
      Thu Jun 21 14:16:59 2012   CPU:53.00      LOAD:0.00       GETS:13318
      Thu Jun 21 14:17:00 2012   CPU:53.00      LOAD:1.28       GETS:12645
      Thu Jun 21 14:17:01 2012   CPU:52.00      LOAD:1.28       GETS:13282
      Thu Jun 21 14:17:02 2012   CPU:52.00      LOAD:1.28       GETS:12674
      Thu Jun 21 14:17:03 2012   CPU:51.00      LOAD:1.28       GETS:12051
      Thu Jun 21 14:17:04 2012   CPU:51.00      LOAD:1.28       GETS:12687
      Thu Jun 21 14:17:05 2012   CPU:52.00      LOAD:1.28       GETS:13336
      ...............
      ...............

最後來看MemSQL的表現:

      [root@mysql1 script]# perl testquery-mem 20 10000  
      Thu Jun 21 14:21:13 2012   CPU:0  LOAD:1.53       GETS:21938
      Thu Jun 21 14:21:14 2012   CPU:70.00      LOAD:1.53       GETS:7212
      Thu Jun 21 14:21:15 2012   CPU:70.00      LOAD:1.53       GETS:6417
      Thu Jun 21 14:21:16 2012   CPU:72.00      LOAD:1.53       GETS:7320
      Thu Jun 21 14:21:17 2012   CPU:72.00      LOAD:1.53       GETS:6477
      Thu Jun 21 14:21:18 2012   CPU:69.00      LOAD:1.53       GETS:7365
      Thu Jun 21 14:21:19 2012   CPU:69.00      LOAD:2.85       GETS:6493
      Thu Jun 21 14:21:20 2012   CPU:71.00      LOAD:2.85       GETS:7389
      ...............
      ...............

從效能對比上來看,比標準的SQL方式查詢MySQL資料庫確實要快一些,但效能提升沒有想象的那麼多,對比HandlerSocket外掛方式訪問,甚至效能還要差很多的。
  但是開頭也說了,虛擬機器環境不太適合做DB的測試,這裡的結果僅供參考。考慮到曾經在標配8核48G的Linux PC上測試HandlerSocket,峰值QPS能到10w,以此對比計劃,估計好一點的機器上,MemSQL的QPS達到數萬應該是沒有問題的。
  不過從上面這個結果對比實際上還是能看出些許差異地,我們注意到,這三個測試中,CPU佔用率方面,傳統SQL方式查詢是最佔CPU資源地,這與它執行時需要做大量SQL解析有直接關係,其次就是MemSQL方式,HandlerSocket的CPU佔用率最低。在系統負載方面,也有相同的結論,所以,我目前傾向於認為,MemSQL的效能應當是不及MySQL服務載入HandlerSocket外掛的表現地。
  不過,由於MemSQL對於MySQL的良好相容性,從MySQL轉換成MemSQL的實施成本很低,幾乎就是運維人員安裝好軟體,同步好資料就行了 ,我想在某些場景還是有其大展拳腳的舞臺地。現在比較令人困惑的是MemSQL究竟會如何定位自己,從目前公開的資訊來看,它還是想走商業化路徑,在當前推出的版本中,開發版本可以免費使用,但是記憶體最多隻能使用10G,試用版本倒無記憶體的限制,但是隻有30天的試用期。做為一個後來者,倒是可以給他些時間,看看未來的表現如何。

==========================================
相關文章:

MemSQL初體驗 - (1)傳說中速度最快的關聯式資料庫軟體

MemSQL初體驗 - (2)初始化測試環境

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-733918/,如需轉載,請註明出處,否則將追究法律責任。

相關文章