您好,登錄后才能下訂單哦!
一、?????? 測試背景
由于眾所周知的世界經貿形勢,擁有全面自主可控的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 | 內存 | 硬盤類型 |
Intel2670 | 2個intel2670 CPU,主頻2.6G,共計16核 | 128G | SSD固態硬盤 |
Intel3014 | 2個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張表)。
數據表名 | LINEITEM | ORDERS | PARTSUPP | |
100G | Oracle(intel3014) | 09:40:59 | 01:31:34 | 00:59:02 |
SPL組表(intel3014) | 01:40:00 | 00:17:48 | 00:10:47 | |
國產數據庫(龍芯) | 01:55:37 | 00:17:41 | 00:10:18 | |
200G | Oracle(intel2670) | 37:47:28 | 07:43:54 | 03:12:30 |
SPL組表(intel2670) | 01:52:57 | 00:25:20 | 00:17:23 |
可以看出, Oracle數據導入的時間非常長。SPL和國產數據庫的導入時間相當,這方面均比Oracle有數倍的性能優勢。
五、?????? 測試結果
測試的三種軟件均支持并行查詢,即用多線程共同協調完成一次查詢任務。然而并行的路數并不是越多越好,因此在每臺測試服務器上需要測出查詢速度最快的并行數。我們用TPCH的第一條查詢任務作測試,在每臺測試服務上的并行查詢結果如下:
TPCH1 測試響應時間表 (秒)
數據量 | 服務器 | 并行數 | 1 | 2 | 4 | 8 | 12 | 16 |
100G | Intel3014 | Oracle | 570 | 356 | 219 | 170 | 131 | 141 |
SPL組表 | 336 | 174 | 91 | 46 | 38 | 40 | ||
龍芯 | 國產數據庫 | 1620 | 961 | 553 | 507 | 579 | 694 | |
SPL組表 | 1521 | 525 | 275 | 284 | ||||
FT1500飛騰 | SPL組表 | 711 | 367 | 198 | 95 | 62 | ||
服務器 | 并行數 | 8 | 16 | 32 | 40 | 48 | 64 | |
FT2000飛騰 | SPL組表 | 37 | 22 | 19 | 21 | 40 | ||
200G | Intel2670 | Oracle | 318 | 316 | 318 | |||
SPL組表 | 63 | 40 | 41 | |||||
FT2000飛騰 | SPL組表 | 36 |
上表中紅色數字對應的并行數,即為各測試服務器上最佳的并行數,于是TPCH后面各查詢測試中就以此并行數來進行測試。
測試結果如下表:
TPCH 共 22 條查詢測試響應時間表 (秒)
TPCH 編號 | 100G數據 | 200G數據 | |||||||
Intel3014 (12并行) | FT1500 (16并行) | FT2000 (40并行) | 龍芯 (8并行) | Intel2670 (16并行) | FT2000 (40并行) | ||||
SPL | Oracle | SPL | SPL | SPL | 國產數據庫 | SPL | Oracle | SPL | |
1 | 38 | 131 | 62 | 19 | 275 | 507 | 40 | 325 | 36 |
2 | 4 | 27 | 8 | 6 | 18 | 247 | 8 | 73 | 13 |
3 | 21 | 222 | 33 | 22 | 97 | 4451 | 23 | 582 | 35 |
4 | 15 | 207 | 27 | 18 | 89 | 1790 | 21 | 454 | 43 |
5 | 34 | 225 | 36 | 24 | 72 | 1761 | 25 | 463 | 45 |
6 | 12 | 135 | 22 | 6 | 60 | 757 | 11 | 352 | 12 |
7 | 25 | 184 | 32 | 20 | 91 | 700 | 22 | 496 | 30 |
8 | 37 | 192 | 46 | 48 | 93 | 1611 | 29 | 485 | 80 |
9 | 68 | 234 | 125 | 65 | 517 | 1066 | 85 | 636 | 135 |
10 | 21 | 215 | 35 | 22 | 99 | 1634 | 34 | 493 | 42 |
11 | 5 | 33 | 12 | 6 | 29 | 165 | 9 | 63 | 11 |
12 | 20 | 184 | 72 | 38 | 173 | 647 | 52 | 464 | 55 |
13 | 57 | 37 | 114 | 85 | 335 | 2209 | 135 | 103 | 135 |
14 | 22 | 157 | 65 | 12 | 142 | 500 | 65 | 368 | 38 |
15 | 18 | 155 | 60 | 26 | 103 | 506 | 61 | 358 | 46 |
16 | 10 | 13 | 19 | 12 | 53 | 105 | 14 | 71 | 22 |
17 | 17 | 165 | 48 | 9 | 100 | 963 | 40 | 349 | 19 |
18 | 16 | 344 | 35 | 13 | 163 | 2382 | 25 | 966 | 26 |
19 | 15 | 154 | 65 | 12 | 137 | 518 | 60 | 345 | 29 |
20 | 15 | 175 | 57 | 11 | 110 | 594 | 55 | 442 | 20 |
21 | 27 | 326 | 222 | 190 | 901 | 3349 | 191 | 790 | 398 |
22 | 19 | 48 | 37 | 27 | 99 | 139 | 30 | 99 | 49 |
合計 | 516 | 3563 | 1232 | 691 | 3756 | 26601 | 1035 | 8777 | 1319 |
?
六、?????? 結論
將測試結果制成統計圖示:
?
?
可以看出如下一些結論:
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的七分之一左右,基本不具備應用于關鍵業務的能力。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。