全國產計算數據庫性能測試報告

一、       測試背景

由於衆所周知的世界經貿形勢,擁有全面自主可控的IT解決方案成爲擺在國家面前的一項重要任務。但是,由於目前國產芯片的性能還相對較弱,大多隻能應用於OA等邊緣業務,要用到關鍵業務中時就必須加大成本以擴大集羣規模,這將進一步推高因爲生態成熟度還不足而導致本身成本就不低的全國產技術方案的應用門檻,抑制了全國產技術的推廣應用範圍。

SPL計算數據庫是一項從理論模型到代碼實現都擁有完全自主產權的新技術,它採用了創新代數體系,允許程序員實現更高性能的低複雜度算法,從而獲得比傳統關係數據庫更好的運算性能。因此,可以通過軟件彌補硬件,使較低性能的國產芯片不需要擴大集羣規模就能夠適應原來必須使用國外芯片的應用場景,並且還有一定程度的性能提升。

二、       測試方法

採用國際上公認的數據庫性能測試工具TPCH,通過與國外數據庫產品的傑出代表Oracle12.1.0及另一國產數據庫(下文中簡稱國產數據庫)進行對比測試。

TPCH是由TPC(Transaction Processing Performance Council)事務處理性能委員會公佈的一套針對數據庫決策支持能力的測試基準,通過模擬數據庫中與業務相關的複雜查詢考察數據庫的綜合處理能力,獲取數據庫操作的響應時間。

TPCH基準模型中定義了一個數據庫模型,容量可以在1GB~10000GB的8個級別中進行選擇。數據庫模型包括CUSTOMER、LINEITEM、NATION、ORDERS、PART、PARTSUPP、REGION和SUPPLIER 8張數據表,涉及22條複雜的SQL查詢語句。

TPCH測試具有廣泛的權威性和被認可度,涉及內容豐富,可以避免片面性,並確保測試結論的說服力。

傳統數據庫都是用SQL語言進行查詢,在SPL數據庫中,需要將TPCH提供的SQL翻譯成SPL腳本來運行。

三、       測試環境

本場測試分別在五臺不同配置的獨立服務器上作運行測試,分別命名爲intel2670、intel3014、龍芯、飛騰FT1500、飛騰FT2000,硬件配置如下表:

名稱CPU內存硬盤類型
Intel26702個intel2670 CPU,主頻2.6G,共計16核128GSSD固態硬盤
Intel30142個intel3014 CPU,主頻1.7G,共計12核64G
龍芯2個CPU,共計8核64G
FT1500飛騰飛騰CPU,共計16核32G
FT2000飛騰飛騰CPU,共計64核256G

國產數據庫只在龍芯上測試,Oracle 只在 intel 上測試,SPL 在五臺服務器上均做了測試。

四、       數據準備

測試數據均採用TPCH提供的數據生成程序產生,產生了100G和200G兩種規模的測試數據,100G數據用在intel3014、龍芯、飛騰FT1500、飛騰FT2000四臺服務器上,200G數據用在intel2670、飛騰FT2000兩臺服務器上。

TPCH產生原始文本文件數據以後,需要導入數據庫表中供數據庫軟件查詢使用。SPL數據庫使用的數據存儲在硬盤組表文件中,也需要由原始文本數據轉換生成。下表是轉換成所需要的測試數據所花的時間(共有8張表,只比較數據量較大的3張表)。

數據表名LINEITEMORDERSPARTSUPP
100GOracle(intel3014)09:40:5901:31:3400:59:02
SPL組表(intel3014)01:40:0000:17:4800:10:47
國產數據庫(龍芯)01:55:3700:17:4100:10:18
200GOracle(intel2670)37:47:2807:43:5403:12:30
SPL組表(intel2670)01:52:5700:25:2000:17:23

可以看出, Oracle數據導入的時間非常長。SPL和國產數據庫的導入時間相當,這方面均比Oracle有數倍的性能優勢。

五、       測試結果

測試的三種軟件均支持並行查詢,即用多線程共同協調完成一次查詢任務。然而並行的路數並不是越多越好,因此在每臺測試服務器上需要測出查詢速度最快的並行數。我們用TPCH的第一條查詢任務作測試,在每臺測試服務上的並行查詢結果如下:

TPCH1 測試響應時間表 (秒)

數據量服務器並行數12481216
100GIntel3014Oracle570356219170131141
SPL組表33617491463840
龍芯國產數據庫1620961553507579694
SPL組表1521
525275284
FT1500飛騰SPL組表71136719895
62
服務器並行數81632404864
FT2000飛騰SPL組表
3722192140
200GIntel2670Oracle318316318


SPL組表634041


FT2000飛騰SPL組表


36

上表中紅色數字對應的並行數,即爲各測試服務器上最佳的並行數,於是TPCH後面各查詢測試中就以此並行數來進行測試。

測試結果如下表:

TPCH 共 22 條查詢測試響應時間表 (秒)

TPCH

編號

100G數據200G數據

Intel3014

(12並行)

FT1500

(16並行)

FT2000

(40並行)

龍芯

(8並行)

Intel2670

(16並行)

FT2000

(40並行)

SPLOracleSPLSPLSPL國產數據庫SPLOracleSPL
13813162192755074032536
2427861824787313
32122233229744512358235
41520727188917902145443
53422536247217612546345
612135226607571135212
7251843220917002249630
83719246489316112948580
96823412565517106685636135
102121535229916343449342
115331262916596311
122018472381736475246455
135737114853352209135103135
142215765121425006536838
151815560261035066135846
161013191253105147122
17171654891009634034919
1816344351316323822596626
191515465121375186034529
201517557111105945544220
21273262221909013349191790398
221948372799139309949
合計51635631232691375626601103587771319

 

六、       結論

將測試結果製成統計圖示:

1564971154160100.png

 

1564971154305100.png

 

可以看出如下一些結論:

1.       在同一臺測試機上使用同一份TPCH測試數據,比較22條查詢所用的總時間,使用了新算法的SPL比Oracle要快5-7 倍,創新理論和算法確實有效。

2.       在飛騰FT1500上比intel3014上的Oracle快了近 3 倍,在飛騰FT2000上比intel2670上的Oracle快了5 倍還多。在飛騰芯片上搭載的SPL數據庫,遠遠超過了Intel上Oracle的運算性能,應用於關鍵業務完全沒有問題。

3.       龍芯相對略弱,但在SPL的支持下,也能和intel3014上的oracle速度基本相當(接近 95%),基本可應用於關鍵業務中了。

4.       龍芯上國產數據庫性能較差,只能達到Intel3014上Oracle的七分之一左右,基本不具備應用於關鍵業務的能力。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章