數(shù)據(jù)庫(kù)的運(yùn)維過(guò)程中,您是否有這樣的煩惱:
1、數(shù)據(jù)庫(kù)性能表現(xiàn)差,不知如何優(yōu)化?
2、多寫入場(chǎng)景、讀多寫少場(chǎng)景如何針對(duì)性優(yōu)化提升處理效率?
3、主備同步延遲極高,不知如何緩解?
4、在秒殺、大數(shù)據(jù)量等場(chǎng)景下,數(shù)據(jù)庫(kù)要如何扛住壓力?
RDS for MySQL 由亞洲唯一WebScaleSQL團(tuán)隊(duì)維護(hù)內(nèi)核源碼,結(jié)合阿里巴巴多年MySQL數(shù)據(jù)庫(kù)調(diào)優(yōu)經(jīng)驗(yàn),從數(shù)據(jù)庫(kù)源碼層及數(shù)據(jù)庫(kù)參數(shù)進(jìn)行了性能優(yōu)化,在相近規(guī)格配置下,RDS for MySQL性能值能達(dá)到自建數(shù)據(jù)庫(kù)性能的?3倍?以上。
RDS for MySQL針對(duì)通用的場(chǎng)景,在內(nèi)核做了一系列的優(yōu)化:
1、 改進(jìn)了InnoDB redo組提交功能,多線程并發(fā)寫入的情況下能有10%以上的速度提升。
2、 優(yōu)化鎖,對(duì)一些會(huì)引起串行化的大鎖進(jìn)行了拆分,能夠有效避免長(zhǎng)時(shí)間的讀鎖等待,提升數(shù)據(jù)讀取效率。
3、 log buffer拆分,使用多組log buffer交替工作,將buffer寫入file的過(guò)程異步化,提升數(shù)據(jù)寫入速度。
4、 優(yōu)化了只讀事務(wù)的執(zhí)行過(guò)程,應(yīng)對(duì)讀多寫少的使用場(chǎng)景,能有100%的吞吐能力提升。
5、 主備同步效率優(yōu)化,主備實(shí)例間采用改進(jìn)后的同步復(fù)制機(jī)制,提升20%以上的數(shù)據(jù)同步效率
6、 另外還針對(duì)特定的行業(yè)場(chǎng)景,進(jìn)行了深度定制:比如電商行業(yè)進(jìn)行了秒殺場(chǎng)景的優(yōu)化,應(yīng)對(duì)高并發(fā)數(shù)據(jù)更新;金融行業(yè)提供了Double Binlog保護(hù),大數(shù)據(jù)量的場(chǎng)景提供了TokuDB引擎壓縮和IO優(yōu)化。
RDS 參數(shù)調(diào)優(yōu):
RDS for MySQL 汲取阿里巴巴多年數(shù)據(jù)庫(kù)參數(shù)調(diào)優(yōu)經(jīng)驗(yàn),針對(duì)每個(gè)實(shí)例規(guī)格進(jìn)行了最優(yōu)化的參數(shù)配置,并根據(jù)云計(jì)算自身環(huán)境特性,進(jìn)行了相應(yīng)的參數(shù)修改,使之可以達(dá)到最佳的適配效果。
RDS for MySQL VS ECS自建數(shù)據(jù)性能對(duì)比測(cè)試:
使用Tpcc-mysql進(jìn)行數(shù)據(jù)庫(kù)吞吐量測(cè)試,相應(yīng)的配置信息如下:
ECS自建MySQL配置信息:
數(shù)據(jù)庫(kù) | MySQL5.6 |
內(nèi)存 | 8G |
磁盤 | 300G |
RDS配置信息:
數(shù)據(jù)庫(kù) | MySQL5.6 |
內(nèi)存 | 6G |
磁盤 | 300G |
測(cè)試一:將ECS自建MySQL參數(shù)調(diào)整與RDS for MySQL 的默認(rèn)參數(shù)配置一致,分別以10倉(cāng)庫(kù)數(shù)和50倉(cāng)庫(kù)數(shù)對(duì)ECS自建MySQL與RDS基于TPC-C標(biāo)準(zhǔn)的吞吐量數(shù)據(jù)進(jìn)行對(duì)比,ECS自建MySQL的吞吐量只相當(dāng)于RDS for MySQL的16%—30%,詳細(xì)數(shù)據(jù)如下:
測(cè)試二:ECS自建MySQL與RDS for MySQL均采用默認(rèn)安裝參數(shù)調(diào)整,分別以10倉(cāng)庫(kù)數(shù)和50倉(cāng)庫(kù)數(shù)對(duì)ECS自建MySQL與RDS基于TPC-C標(biāo)準(zhǔn)的吞吐量數(shù)據(jù)進(jìn)行對(duì)比,ECS自建MySQL的吞吐量只相當(dāng)于RDS for MySQL的9%—30%。拋開內(nèi)核優(yōu)勢(shì),RDS for MySQL 本身的參數(shù)調(diào)優(yōu)就能帶來(lái)5%-10%的性能增長(zhǎng)。
測(cè)試結(jié)論
基于RDS for MySQL源碼層及參數(shù)的調(diào)優(yōu),RDS for MySQL 性能值能達(dá)到ECS自建數(shù)據(jù)庫(kù)的3倍以上,隨著線程數(shù)及數(shù)據(jù)量的增大,性能差距越明顯,在高線程情況下,這個(gè)比例甚至可以達(dá)到10倍。