MemSQL初体验 - (3)性能测试
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初体验 - (3)性能测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MemSQL初体验 - (2)初始化测试
- 下一篇: mysql 一个死锁的分析