最近在學(xué)習(xí)數(shù)據(jù)庫相關(guān)知識,經(jīng)常跟一個(gè)在某金融公司做DBA的大學(xué)朋友交流問題落君。聽說他們公司最近在使用云數(shù)據(jù)庫穿香,我立馬來了興趣,以前只聽說過云主機(jī)绎速,沒想到數(shù)據(jù)庫這種產(chǎn)品也可以在云上買皮获。正好最近在學(xué)習(xí)使用sysbench,索性我就買了騰訊云數(shù)據(jù)庫(因?yàn)樗麄兗业目梢园戳扛顿M(fèi)纹冤,用完了就釋放掉哈哈)洒宝,配合自己購買的騰訊云主機(jī)進(jìn)行一個(gè)對比測試。下面就貼出測試過程和結(jié)果萌京,僅供大家參考雁歌。
測試過程
在本次測試中,我使用sysbench對三種配置分別進(jìn)行oltp場景的基準(zhǔn)測試知残。sysbench是一個(gè)模塊化的靠瞎、跨平臺(tái)、多線程基準(zhǔn)測試工具,主要用于評估測試各種不同系統(tǒng)參數(shù)下的數(shù)據(jù)庫負(fù)載情況求妹》ρ危基準(zhǔn)測試可以理解為針對系統(tǒng)的一種壓力測試。但基準(zhǔn)測試不關(guān)心業(yè)務(wù)邏輯制恍,更加簡單丑勤、直接、易于測試吧趣,數(shù)據(jù)可以由工具生成,不要求真實(shí)。這里的Oltp(On-Line Transaction Processing)即面向事務(wù)的處理過程强挫,也是mysql的主要應(yīng)用場景岔霸,在這里我們選用sysbench的讀寫混合腳本進(jìn)行測試。
下面給出本次測試的詳細(xì)配置:
我們使用sysbench創(chuàng)建20張表俯渤,每個(gè)表插入10000000條數(shù)據(jù)呆细。每個(gè)配置的下測試1200秒,每10秒進(jìn)行一次采樣八匠,重復(fù)兩次取平均值作為參考絮爷。
Sysbench指令如下:sysbench --db-driver=mysql --mysql-user=root --mysql-password=xxxx --mysql-db=test_sysbench --table_size=10000000 --tables=20 --threads=100 --events=0 --time=1200 --report-interval=10 /usr/share/sysbench/oltp_read_write.lua run
在測試自建數(shù)據(jù)庫的時(shí)候我們需要安裝MySQL、安裝Sysbench梨树,具體的方法可以參考相關(guān)系統(tǒng)的教程坑夯。需要注意的是,在使用云數(shù)據(jù)庫的時(shí)候抡四,需要一臺(tái)機(jī)器遠(yuǎn)程連接柜蜈,為了排除網(wǎng)絡(luò)波動(dòng)對測試結(jié)果的影響,這里我使用的就是測試用的CVM指巡,將CVM和云數(shù)據(jù)庫放置在同一網(wǎng)絡(luò)區(qū)域下(同一VPS下)淑履,則可以通過內(nèi)網(wǎng)IP建立連接,此時(shí)的網(wǎng)絡(luò)不會(huì)成為測試瓶頸藻雪。此外我們要注意秘噪,在測試的時(shí)候保證CVM的配置大于等于云數(shù)據(jù)庫的配置,可以先講CVM測試完勉耀,提升到8核32G再去測試云數(shù)據(jù)庫指煎。
我們測試的配置主要為4核8G、8核32G三種配置瑰排,分別對比不同配置下MySQL云數(shù)據(jù)庫和同配置CVM上的性能指標(biāo)贯要,主要對比的指標(biāo)有QPS、TPS椭住。
測試結(jié)果
漫長的測試完成之后崇渗,就是結(jié)果揭曉的時(shí)刻了。我們首先來看一下CVM4核8G的測試結(jié)果:
??
從測試結(jié)果可以看出京郑,MySQL5.7的性能還是非常驚艷的宅广,在混合讀寫的場景下,隨著并發(fā)數(shù)的增加些举,QPS保持著上升趨勢跟狱,在200并發(fā)的時(shí)候QPS高達(dá)40000,TPS也保持在2020户魏,隨后隨著并發(fā)數(shù)的增加TPS迅速降低名秀。
我們再來看一下葛躏,同等配置下的騰訊云MySQL是怎樣的表現(xiàn):
臥槽烤礁,20并發(fā)的時(shí)候QPS已經(jīng)到了驚人的55000,在50的時(shí)候更是高達(dá)70000扛门,基本是秒殺啊,我們來直觀的看一下不同并發(fā)下二者的QPS對比纵寝。
可以看到论寨,差距還是很明顯的,在20-100并發(fā)的區(qū)間爽茴,云數(shù)據(jù)庫基本是自建數(shù)據(jù)庫性能的兩倍以上葬凳。但在500并發(fā)的時(shí)候,二者的性能衰減都比較明顯室奏。那么接下來我們提升一下配置火焰,看看8核32G配置下二者的QPS表現(xiàn)對比。
可以看出窍奋,在8核32G性能下荐健,趨勢變化與4核基本相同,但在500并發(fā)下琳袄,云數(shù)據(jù)庫依然保持了60000+的QPS江场,TPS保持在2091,而同配置下的自建Mysql此時(shí)已經(jīng)降到了78窖逗。
測到這里址否,我們可以得出結(jié)論:在并發(fā)數(shù)較低的情況下(并發(fā)數(shù)50以內(nèi)),MySQL的混合讀寫性能保持在較高的線性增長碎紊,在50線程時(shí)佑附,云數(shù)據(jù)庫MySQL的性能達(dá)到峰值,高達(dá)11w的QPS仗考,5480的TPS音同,在50-200并發(fā)數(shù)云MySQL和自建MySQL變化平緩,自建MySQL穩(wěn)定在4w-5w秃嗜,云MySQL維持在10w-11w权均,在并發(fā)數(shù)達(dá)到500時(shí)二者性能下降明顯。
總的來說锅锨,在200以內(nèi)并發(fā)云數(shù)據(jù)庫MySQL性能達(dá)到了同等配置自建數(shù)據(jù)庫的兩倍叽赊,看來騰訊云的研發(fā)小哥哥們還是做了大量的參數(shù)優(yōu)化來提升數(shù)據(jù)庫對硬件配置的性能利用。
在測試中有一個(gè)很驚喜的發(fā)現(xiàn)必搞,使用騰訊云MySQL數(shù)據(jù)庫自帶的性能監(jiān)控指標(biāo)就可以直觀的看歷史監(jiān)控結(jié)果啦必指。
怎么樣,很直觀有沒有恕洲,高大上有沒有塔橡。除了QPS和TPS之外還有其他很多很多參數(shù)指標(biāo)梅割,可以隨意拖動(dòng)時(shí)間,可以任意合并數(shù)據(jù)谱邪,效果如下:
哇炮捧,比起一個(gè)個(gè)記錄測試數(shù)據(jù)再畫圖,使用騰訊云數(shù)據(jù)庫的監(jiān)控真的方便太多了惦银。朋友告訴我除了監(jiān)控,還有備份回檔末誓、監(jiān)控扯俱、快速擴(kuò)容、數(shù)據(jù)傳輸這么多特性喇澡。我好奇的上官網(wǎng)比較了一下我測的這兩種配置的云主機(jī)和云數(shù)據(jù)庫價(jià)格對比:
4核8G云主機(jī): 10M帶寬 488元/月 迅栅、200M帶寬9380元/月
4核8G云數(shù)據(jù)庫:652元/月 默認(rèn)200M帶寬
8核32G云主機(jī):200M帶寬 200G磁盤容量 9550元/月
8核32G 云數(shù)據(jù)庫:200M帶寬 200G磁盤容量 2317元/月
原來云數(shù)據(jù)庫在高出這么多性能,多了一堆特性功能之后晴玖,居然還擁有這么高的性價(jià)比读存,8核32G同等帶寬的情況下云主機(jī)價(jià)格居然是云數(shù)據(jù)庫的4倍。所以推薦需要專業(yè)數(shù)據(jù)庫服務(wù)的同學(xué)呕屎,尤其是對性能和帶寬要求較高的同學(xué)让簿,購買騰訊云數(shù)據(jù)庫可以幫你們省一大筆錢哦。對于跟我一樣窮到吃土也想使用學(xué)習(xí)數(shù)據(jù)庫的同學(xué)秀睛,強(qiáng)烈建議使用按量付費(fèi)尔当。反正每小時(shí)幾塊錢,價(jià)格劃算童叟無欺蹂安。
后期還會(huì)進(jìn)行其他數(shù)據(jù)庫的相關(guān)測評及知識分享椭迎,歡迎大家多多關(guān)注哦。