MemSQL初体验 - (3)性能测试
3、性能測(cè)試
?在執(zhí)行測(cè)試前必須首先說(shuō)明一下本地的虛擬機(jī)測(cè)試環(huán)境:?
? MEM:2G
? CPU:1 core
? OS:CentOS 6.0
? 配置整體較差,其實(shí)是不適合做DB環(huán)境的性能測(cè)試的,尤其CPU/內(nèi)存都不夠強(qiáng),對(duì)于測(cè)試MemSQL這種恰恰很依賴(lài)CPU的應(yīng)用其實(shí)是很不公平地,可是手頭上暫時(shí)未找到裝了CENTOS6以上版本的實(shí)體機(jī),因此臨時(shí)拿它充數(shù)。不過(guò)測(cè)試前我自己心里也有預(yù)期,這個(gè)性能表現(xiàn)不會(huì)太好,結(jié)果只能說(shuō)僅供參考,其實(shí)是不具備實(shí)際意義地。待過(guò)段時(shí)間有了空閑資源會(huì)考慮再做對(duì)比測(cè)試。
這里先按照普通流程走一遍,大致看一下對(duì)比,先看看查詢(xún)MySQL數(shù)據(jù)庫(kù)時(shí)的性能:?
?
- [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
? ...............
...............
測(cè)試通過(guò)HandlerSocket插件訪問(wèn)MySQL庫(kù)時(shí)的性能:?
- [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
? ...............
? ...............
最后來(lái)看MemSQL的表現(xiàn):?
- [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
? ...............
? ...............
從性能對(duì)比上來(lái)看,比標(biāo)準(zhǔn)的SQL方式查詢(xún)MySQL數(shù)據(jù)庫(kù)確實(shí)要快一些,但性能提升沒(méi)有想象的那么多,對(duì)比HandlerSocket插件方式訪問(wèn),甚至性能還要差很多的。?
? 但是開(kāi)頭也說(shuō)了,虛擬機(jī)環(huán)境不太適合做DB的測(cè)試,這里的結(jié)果僅供參考??紤]到曾經(jīng)在標(biāo)配8核48G的Linux PC上測(cè)試HandlerSocket,峰值QPS能到10w,以此對(duì)比計(jì)劃,估計(jì)好一點(diǎn)的機(jī)器上,MemSQL的QPS達(dá)到數(shù)萬(wàn)應(yīng)該是沒(méi)有問(wèn)題的。?
? 不過(guò)從上面這個(gè)結(jié)果對(duì)比實(shí)際上還是能看出些許差異地,我們注意到,這三個(gè)測(cè)試中,CPU占用率方面,傳統(tǒng)SQL方式查詢(xún)是最占CPU資源地,這與它執(zhí)行時(shí)需要做大量SQL解析有直接關(guān)系,其次就是MemSQL方式,HandlerSocket的CPU占用率最低。在系統(tǒng)負(fù)載方面,也有相同的結(jié)論,所以,我目前傾向于認(rèn)為,MemSQL的性能應(yīng)當(dāng)是不及MySQL服務(wù)加載HandlerSocket插件的表現(xiàn)地。?
? 不過(guò),由于MemSQL對(duì)于MySQL的良好兼容性,從MySQL轉(zhuǎn)換成MemSQL的實(shí)施成本很低,幾乎就是運(yùn)維人員安裝好軟件,同步好數(shù)據(jù)就行了 ,我想在某些場(chǎng)景還是有其大展拳腳的舞臺(tái)地?,F(xiàn)在比較令人困惑的是MemSQL究竟會(huì)如何定位自己,從目前公開(kāi)的信息來(lái)看,它還是想走商業(yè)化路徑,在當(dāng)前推出的版本中,開(kāi)發(fā)版本可以免費(fèi)使用,但是內(nèi)存最多只能使用10G,試用版本倒無(wú)內(nèi)存的限制,但是只有30天的試用期。做為一個(gè)后來(lái)者,倒是可以給他些時(shí)間,看看未來(lái)的表現(xiàn)如何。?
==========================================
總結(jié)
以上是生活随笔為你收集整理的MemSQL初体验 - (3)性能测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: MemSQL初体验 - (2)初始化测试
- 下一篇: 本地连接时,通过localhost不能登