性能提升 10 倍,OceanBase 二次 TPC-C 测试结果公布
時(shí)隔半年,螞蟻金服的自研數(shù)據(jù)庫 OceanBase 又去做了 TPC-C 測試。TPC 去年 10 月 2 日和今年 5 月 20 日公布的測試結(jié)果顯示,OceanBase 都是榜單第一。性能方面,去年 OceanBase 的測試結(jié)果是 6088 萬 tpmC,今年則是 7.07 億 tpmC;TPC-C benchmark 價(jià)格也從¥6.25/tpmC 降低到¥3.98/tpmC。不過,一些數(shù)據(jù)庫公司,如 Oracle 并未參與這兩次測試。
測試結(jié)果
OceanBase 是一個(gè)支持海量數(shù)據(jù)的高性能分布式數(shù)據(jù)庫系統(tǒng),由淘寶核心系統(tǒng)研發(fā)部、運(yùn)維、DBA、廣告、應(yīng)用研發(fā)等部門共同完成。2017 年開始對(duì)外商用。
之所以在短時(shí)間內(nèi)做兩次測試,是因?yàn)?OceanBase 團(tuán)隊(duì)認(rèn)為首次測試尚未充分發(fā)揮 OceanBase 分布式架構(gòu)的真正實(shí)力,同時(shí)也希望二次測試可以體現(xiàn)其性價(jià)比優(yōu)勢。兩次 TPC-C 測試采用的都是 OceanBase 2.2 版本的 Oracle 兼容模式,目前螞蟻金服內(nèi)部以及外部商業(yè)銀行均有 Oracle 業(yè)務(wù)已經(jīng)遷移到 OceanBase 的 Oracle 模式。
性能方面。二次測試使用了 1557 臺(tái) 84 核 ECS i2d 服務(wù)器,一期僅有 207 臺(tái)服務(wù)器參與測試。這也證明 OceanBase 軟件的分布式處理能力提升,軟件性能的提升最終使 tmpC 結(jié)果提升十倍以上。
其次,單 CPU 核性能也在提升。基于同樣的 CPU 核,第一次 TPC-C 測試使用了 20764=13,248 個(gè) vCPU(虛擬機(jī) CPU)核,本次則使用了 155784=130,788 個(gè) vCPU 核,CPU 核數(shù)不到第一次的 10 倍,但整體性能達(dá)到了第一次的 11 倍以上,其中還有機(jī)群規(guī)模提升所帶來的更大損耗。
得益于 OceanBase 軟件單核性能的優(yōu)化以及軟件價(jià)格的優(yōu)化,TPC-C benchmark 價(jià)格下降了¥2.27/tpmC。
OceanBase 團(tuán)隊(duì)透露,從測試收益來看,首先它滿足了 OceanBase 自身對(duì)于性能測試的需求,結(jié)果具有公認(rèn)的參考價(jià)值;其次,7 億 tpmC 證明了分布式數(shù)據(jù)庫可以滿足嚴(yán)格要求下的事務(wù)處理,意味著能夠滿足互聯(lián)網(wǎng)、金融、電信、政府等關(guān)鍵領(lǐng)域的核心系統(tǒng)的事務(wù)處理需求。
TPC-C 測試
TPC 是國際事務(wù)處理性能委員會(huì)簡稱,該組織是一個(gè)負(fù)責(zé)制定性能測試基準(zhǔn)的非盈利委員會(huì),其制定的 TPC-C 測試可衡量數(shù)據(jù)庫在線事務(wù)處理能力。
性能和性價(jià)比是 TPC-C 測試的兩個(gè)衡量。性能由 tpmC(transactions per minute,tpm)衡量,C 指 TPC 中的 C 基準(zhǔn)程序,它的定義是每分鐘內(nèi)系統(tǒng)處理的新訂單個(gè)數(shù)。性價(jià)比衡量數(shù)據(jù)庫單位成本,以系統(tǒng)的總價(jià)格/tpmC 數(shù)值得出。
TPC-C 是開放的測試基準(zhǔn),這樣即便是參與測試公司的硬件架構(gòu)和數(shù)據(jù)庫軟件架構(gòu)有所不同,只要符合其規(guī)范,都可以參與測試。同時(shí),TPC-C 測試非常嚴(yán)謹(jǐn),極大程度杜絕作弊:
首先,TPC-C 要求被測數(shù)據(jù)庫必須滿足數(shù)據(jù)庫事務(wù)的 ACID,即原子性、一致性、隔離性和持久性,其中隔離性為可串行化隔離級(jí)別,持久性要求能夠抵御任何單點(diǎn)故障等。這是對(duì) OLTP 數(shù)據(jù)庫的基本要求。
第二,TPC-C 規(guī)定被測數(shù)據(jù)庫的性能(tpmC)與數(shù)據(jù)量成正比,事實(shí)上真實(shí)業(yè)務(wù)場景也是如此。TPC-C 測試的基本數(shù)據(jù)單元是倉庫(warehouse),每個(gè)倉庫的數(shù)據(jù)量通常在 70MB 左右(與具體實(shí)現(xiàn)相關(guān)),TPC-C 要求終端用戶在選擇事務(wù)類型時(shí),需要按照規(guī)定的比例選擇五種事務(wù),終端用戶每個(gè)事務(wù)都有一定的輸入時(shí)間(對(duì)每種事務(wù)分別固定)和一定范圍的隨機(jī)的思考時(shí)間(一個(gè)對(duì)數(shù)函數(shù)),根據(jù)這些要求,每個(gè)倉庫所能獲得的 tpmC 值的理論上限是 12.86(假設(shè)數(shù)據(jù)庫的響應(yīng)時(shí)間為0)。
第三,TPC-C 要求被測數(shù)據(jù)庫能夠以平穩(wěn)的性能長期地運(yùn)行。測試時(shí),去掉啟動(dòng)預(yù)熱(ramp up)和結(jié)束降速(ramp down)時(shí)間后,被測數(shù)據(jù)庫至少要性能平穩(wěn)地(steady state)運(yùn)行 8 小時(shí),其中性能采集時(shí)段(不少于 2 小時(shí))內(nèi)的性能累積波動(dòng)不得超過2%。
第四,TPC-C 要求被測數(shù)據(jù)庫的寫事務(wù)的結(jié)果必須在一定時(shí)間內(nèi)數(shù)據(jù)落盤(指數(shù)據(jù)庫數(shù)據(jù),不是日志,事實(shí)上 redo log 在事務(wù)提交前就落盤了),對(duì)于具備 checkpoint 功能的數(shù)據(jù)庫,checkpoint 的間隔不得超過 30 分鐘,checkpoint 數(shù)據(jù)持久化的時(shí)間不得超過 checkpoint 間隔。
第五,業(yè)務(wù)定向優(yōu)化(profile-directed optimization,PDO)可以提升軟件的性能,TPC-C 也允許使用 PDO,但有一些限制,比如采用 PDO 優(yōu)化的版本需要在客戶使用,數(shù)據(jù)庫廠家需要對(duì) PDO 優(yōu)化的版本提供技術(shù)支持等。為了避免可能出現(xiàn)的異議,OceanBase 沒有使用 PDO。
TPC-C 的測試成本非常高。如 OceanBase 這次的測試,從 FDR 來看,根據(jù)標(biāo)準(zhǔn)要求公開的 3 年總持有成本中硬件成本就有約為 6 億人民幣,包括軟硬件及服務(wù)在內(nèi)的三年總成本為 28 億人民幣。OceanBase 團(tuán)隊(duì)表示,因?yàn)樽庥昧税⒗镌乒性频?ECS 虛擬機(jī),來替代物理服務(wù)器和存儲(chǔ),可以便利擴(kuò)容/縮容,也節(jié)省了成本,“實(shí)際測試中我們只需要在阿里云上購買相應(yīng) ECS 資源很短的時(shí)間,遠(yuǎn)遠(yuǎn)低于之前榜單上其它廠商測試的花費(fèi)”。
然而過高的成本等因素導(dǎo)致一些公司不再參與 TPC-C 測試。Oracle 上次測試還是在 2010 年。當(dāng)時(shí),Oracle 公司的 SPARC T3-4 Supercluster 以 30 249 688 tmpC 創(chuàng)造了 TPC-C 性能測試的新紀(jì)錄。
目標(biāo)是集成 HTAP
OceanBase 團(tuán)隊(duì)正把更多精力投入到外部市場。未來,OceanBase 的產(chǎn)品目標(biāo)之一是在一套引擎里同時(shí)支持 OLAP 和 OLTP,即 HTAP,“在走訪客戶的過程中我們發(fā)現(xiàn),絕大部分業(yè)務(wù)既需要 OLTP 又需要 OLAP”。
HTAP 是混合 OLTP 和 OLAP 業(yè)務(wù)同時(shí)處理的系統(tǒng),Garnter 公司在 2014 年提出。根據(jù)最新定義:混合負(fù)載(HTAP Hybrid Transactional/Analytical Processing)在保留原有在線交易功能的同時(shí),也強(qiáng)調(diào)了數(shù)據(jù)庫原生計(jì)算分析的能力。它被認(rèn)為打破了事務(wù)處理和分析之間的“墻”,支持更多的信息和“實(shí)時(shí)業(yè)務(wù)”的決策。
總結(jié)
以上是生活随笔為你收集整理的性能提升 10 倍,OceanBase 二次 TPC-C 测试结果公布的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 传百度考虑从纳斯达克退市以提高估值,百度
- 下一篇: 只供图是谁画的呢?