近兩年來,國內(nèi)外諸如AWS、Azure等公有云巨頭都先后推出了自研的數(shù)據(jù)庫服務,青云QingCloud不僅推出了分布式數(shù)據(jù)庫RadonDB,同時還將這一經(jīng)過公有云驗證的數(shù)據(jù)庫產(chǎn)品應用到企業(yè)數(shù)據(jù)中心,通過將分布式技術與數(shù)據(jù)庫相結合,再加上SSD的性能加成,性能好得讓人不敢相信。比如網(wǎng)聯(lián)公司公布去年“雙十一”時,其峰值交易量每秒達到92000筆,如果用RadonDB的話,也許只需數(shù)臺就可以支撐。
溫馨提示:這篇測試長文閱讀大約需要10分鐘。
如何根據(jù)企業(yè)所需構建面向未來的數(shù)據(jù)中心,這是絕大多數(shù)CIO都在思考的問題。
尤其是智能終端時代,數(shù)據(jù)蔓延正使得這一問題更加復雜,比如,手機銀行之于營業(yè)廳固定的業(yè)務窗口,手機App之于固定數(shù)量的銷售渠道,以及源起網(wǎng)絡購物的一次次人造“狂歡節(jié)”……
對于企業(yè)來說,IT負載正變得不可預測,同時生態(tài)內(nèi)外的數(shù)據(jù)流通正日趨復雜與頻繁,數(shù)據(jù)蔓延正對企業(yè)IT的性能、容量以及管理帶來巨大的挑戰(zhàn)。
在IT演進的過程中,云計算已經(jīng)被認為是企業(yè)IT的必經(jīng)之路,這在過去幾年中已經(jīng)得以充分證實,尤其是公有云方面的實踐,一定程度上調(diào)和了企業(yè)IT需求與成本之間的矛盾,這也使得混合云趨勢正日趨明顯。
公有云的成功經(jīng)驗正越來越多地應用在企業(yè)內(nèi)部數(shù)據(jù)中心,以幫助企業(yè)更順利地向云端遷移,最典型莫過于源自互聯(lián)網(wǎng)分布式存儲的SDS(Software Define Storage,軟件定義存儲)已經(jīng)成為企業(yè)存儲市場最主流的趨勢之一。
RadonDB分布式數(shù)據(jù)庫:從公有云驗證到企業(yè)數(shù)據(jù)中心應用
隨著公有云服務在企業(yè)數(shù)據(jù)中心內(nèi)部的應用,不僅幫助用戶解決了現(xiàn)實問題,同時也讓公有云廠商更加了解企業(yè)業(yè)務特點,為后續(xù)推出滿足用戶需求的產(chǎn)品與解決方案提供了條件。典型如數(shù)據(jù)庫產(chǎn)品,近兩年來,國內(nèi)外諸如AWS、Azure等公有云巨頭都先后推出了自研的數(shù)據(jù)庫服務,而青云QingCloud不僅推出了分布式數(shù)據(jù)庫RadonDB,同時還將這一經(jīng)過公有云驗證的數(shù)據(jù)庫產(chǎn)品應用到企業(yè)數(shù)據(jù)中心。
相對于公有云環(huán)境,企業(yè)數(shù)據(jù)中心的業(yè)務更加復雜,對于IT基礎架構的要求也更高。數(shù)據(jù)庫不僅需要部署在數(shù)據(jù)中心內(nèi)部的物理服務器、虛擬機、容器等私有云環(huán)境,并在必要時能夠擴展到公有云之上。
軟件定義存儲與SSD的應用推動分布式數(shù)據(jù)庫進入企業(yè)數(shù)據(jù)中心,實際上存儲與數(shù)據(jù)庫的結合亦更加緊密(如Server SAN的一大場景就是數(shù)據(jù)庫)。SSD的高性能優(yōu)勢在一定程度上有助于提升數(shù)據(jù)庫的性能,簡化數(shù)據(jù)庫架構,讓分布式成為可能,理論上實現(xiàn)容量的無限擴展,并性能亦隨之線性增長。
青云QingCloud新一代分布式數(shù)據(jù)庫RadonDB,基于開源的MySQL技術研發(fā),而MySQL是全球范圍內(nèi)應用最廣泛的數(shù)據(jù)庫,其開源的性質(zhì)能夠杜絕廠商鎖定,開源社區(qū)的蓬勃發(fā)展培養(yǎng)了一大批精通MySQL的人才,為企業(yè)部署、應用、管理MySQL提供了便利。如同x86服務器一樣,其不僅方便使用,也易于管理,有助于降低企業(yè)數(shù)據(jù)中心成本。
但在海量數(shù)據(jù)時代,單機版MySQL數(shù)據(jù)庫已經(jīng)很難滿足企業(yè)應用需求,而部署集群版MySQL則更多出于可靠性目的,雖然也有企業(yè)基于MySQL開發(fā)出分布式部署版本,但更多是面向特定需求,離成熟產(chǎn)品還有一段距離。而RadonDB則率先在公有云中應用改進,然后根據(jù)企業(yè)應用特點進行優(yōu)化,進而形成一個標準商用的產(chǎn)品,以方便企業(yè)用戶使用。
具體來說, RadonDB主要包含兩大模塊的改進和創(chuàng)新:radon和xenon。radon是一個分布式SQL層,主要負責數(shù)據(jù)路由和計算;xenon則是一個MySQL集群高可用組件,用以構建分布式存儲層,具有秒級選主(Master)、選主后的數(shù)據(jù)快速回放、以及實現(xiàn)主從切換后的數(shù)據(jù)零丟失等功能。RadonDB從技術上對分庫分表式概念進行了更進一步的擴展,使其成為具備高可用、滿足Snapshot隔離級別分布式事務的開源分布式數(shù)據(jù)庫,而非僅僅只是一個分庫分表組件。
RadonDB性能測試前 環(huán)境搭建和組件說明
一般來說,數(shù)據(jù)庫與存儲(確切地說是塊存儲)的關系非常緊密,通常數(shù)據(jù)庫的性能與存儲的性能息息相關。而分布式存儲的性能一方面要依賴硬件,同時也與分布式存儲軟件本身的優(yōu)化相關。下圖為RadonDB測試架構:
整個測試環(huán)境由6臺服務器和一臺25GbE交換機組成,主要分為分布式存儲環(huán)境和RadonDB分布式數(shù)據(jù)庫環(huán)境。每臺服務器均配備2顆Intel Xeon E5-2650 v4處理器(12核,2.2GHz)和64GB內(nèi)存。
在存儲方面,為了更好地體現(xiàn)RadonDB分布式數(shù)據(jù)庫的性能,E企研究院使用“全閃”配置的分布式存儲作為RadonDB數(shù)據(jù)庫存儲。分布式存儲以最小三節(jié)點部署,每個節(jié)點配備了4片4TB大容量的Intel DC P4510 SSD。這是Intel第四代U.2接口的NVMeSSD,更好的性能與較大的容量能夠更容易觀察到RadonDB數(shù)據(jù)庫性能的上限。
分布式存儲方案使用新一代25GbE網(wǎng)絡,以提升數(shù)據(jù)內(nèi)部流通的帶寬。根據(jù)以往的測試經(jīng)驗,在全閃配置環(huán)境中,10GbE網(wǎng)絡通常會成為存儲瓶頸,進而影響應用性能發(fā)揮。所以在本次RadonDB測試使用了25GbE網(wǎng)絡,分布式存儲通過iSCSI連接到RadonDB數(shù)據(jù),iSCSI是企業(yè)環(huán)境中標準通用的數(shù)據(jù)傳輸技術,能夠最小化對企業(yè)現(xiàn)有環(huán)境的影響。同時,25GbE能夠更好地支持RDMA技術(Remote Direct Memory Access,遠程直接內(nèi)存訪問),即RoCE或iWARP,在iSCSI連接無法提供應用需要的存儲性能情況下,可以很容易升級到新的數(shù)據(jù)傳輸協(xié)議,比如iSER(iSCSI Extensions for RDMA)或者NVMe over Fabric等。
在數(shù)據(jù)庫方面,RadonDB可最小二節(jié)點部署(滿足最小可用性),通常三節(jié)點起步。在本次測試中使用三節(jié)點部署,并以二節(jié)點數(shù)據(jù)庫性能作為參照,考量RadonDB數(shù)據(jù)庫的可擴展性。利用RadonDB的自動化部署與運維工具Ansible,進行簡單的端口和變量設置,即可實現(xiàn)一鍵安裝,整個部署過程簡潔方便。
E企研究院希望盡可能貼近真實應用環(huán)境,通過測試模型去盡可能真實地模擬實際應用環(huán)境,但實際環(huán)境中通常存在多種不可預估情況,且與特定應用負載息息相關。E企研究院在本次測試中使用Sysbench軟件用以評估RadonDB數(shù)據(jù)庫性能,并根據(jù)大多數(shù)應用運行負載構造測試數(shù)據(jù),盡可能為更多用戶提供參考。
同時為了更進一步探尋RadonDB分布式數(shù)據(jù)庫的極限,因為這與RadonDB數(shù)據(jù)庫的應用場景相關,E企研究院對測試組件進行了一些調(diào)整,將Intel DC P4800X SSD作為RadonDB數(shù)據(jù)庫的數(shù)據(jù)緩存。Intel DC P4800X SSD即Intel公司Optane(傲騰),相比SSD,具有更均衡的讀寫能力,且延遲更低,據(jù)Intel實驗室數(shù)據(jù):相比NAND SSD,Optane用作數(shù)據(jù)庫緩存,數(shù)據(jù)庫有數(shù)倍性能提升。
Intel將Optane用作數(shù)據(jù)庫緩存,有著3倍以上的性能提升,同時數(shù)據(jù)庫平均響應時間降低了三倍左右,以此說明Optane的性能優(yōu)異(來源于Intel)
隨著人工智能、大數(shù)據(jù)分析等應用方式的出現(xiàn),企業(yè)場景化、個性化服務等創(chuàng)新業(yè)務對移動互聯(lián)網(wǎng)的依賴越來越高,手機、互聯(lián)網(wǎng)交易成為主流的交易渠道,促銷、搶購等活動常常導致業(yè)務突發(fā)高點,業(yè)務數(shù)據(jù)量和交易量的暴增對企業(yè)數(shù)據(jù)庫提出了高的要求。
為此,E企研究院的測試圍繞“性能”而展開,一是RadonDB數(shù)據(jù)庫最小配置下的性能,二是從2節(jié)點擴展到3節(jié)點后,RadonDB數(shù)據(jù)庫的性能變化。
RadonDB小試牛刀:分布式技術在數(shù)據(jù)庫領域的驗證
E企研究院使用Sysbench軟件分別在RadonDB和MySQL數(shù)據(jù)庫中構建了16張表,共2億行數(shù)據(jù),約占用80GB存儲空間。在讀、寫性能測試中,一個事務即一條SQL;在混合讀寫中,一個事務中包含4條讀SQL和1條寫SQL。
E企研究院首先測試了RadonDB數(shù)據(jù)庫分別在2節(jié)點與3節(jié)點下的性能,并以單機MySQL(社區(qū)版5.7.22)的性能作為參照組。兩者的軟硬件配置完全一樣,均使用相同容量的SSD作為數(shù)據(jù)存儲。
兩節(jié)點部署的RadonDB數(shù)據(jù)庫性能與單機部署的MySQL數(shù)據(jù)庫性能,在寫場景下大致相當,前者略高。這可以理解,在分布式環(huán)境下,兩節(jié)點部署通常是出于可用性設計,與單機部署的寫性能相差不大。但在讀性能方面,兩節(jié)點部署的RadonDB數(shù)據(jù)庫性能,相比單機部署的MySQL數(shù)據(jù)庫性