RISC-V公測平臺發(fā)布 · 數(shù)據(jù)庫在RISC-V服務器上的適配評估
前言
上一期講到YCSB在RISC-V服務器上對MySQL進行性能測試(RISC-V公測平臺發(fā)布 · 使用YCSB測試SG2042上的MySQL性能),在這一期文章中,我們繼續(xù)深入討論RISC-V+數(shù)據(jù)庫的應用。本期就繼續(xù)利用HS-2平臺來測試數(shù)據(jù)庫軟件在RISC-V服務器上的兼容性。
參與此次實驗的數(shù)據(jù)庫如下:
Redis
MongoDB5
PostgreSQL
TiDB
MySQL/MariaDB
實驗機配置如下:
處理器:SG2042(64核心)
內(nèi)存:32GB
操作系統(tǒng):Ubuntu 22.10 (GNU/Linux 6.1.31 risCV64)
一、MySQL/MariaDB
在上一期中,為了測試YCSB(Yahoo! Cloud Serving Benchmark)性能測試軟件,順便測試了MySQL在RISC-V服務器上的兼容性。
MySQL數(shù)據(jù)庫服務是一個完全托管的數(shù)據(jù)庫服務,可使用世界上最受歡迎的開源數(shù)據(jù)庫來部署云原生應用程序。它是百分百由MySQL原廠開發(fā),管理和提供支持。
直接使用包管理器安裝MySQL:
當然除了包管理器安裝,也嘗試了編譯安裝MySQL,結果提示編譯失敗,因此,MySQL不能直接通過編譯安裝MySQL,而需要在編譯之前打上相關補丁,然后再編譯。同時也測試了MariaDB在RISC-V服務器上的兼容性,MariaDB是一個通用的開源關系數(shù)據(jù)庫管理系統(tǒng)。它是世界上最受歡迎的數(shù)據(jù)庫服務器之一, MariaDB在GPLv2開源許可下發(fā)布,并保證保持開源。
先嘗試直接通過包管理器安裝:
在通過包管理器安裝并正常運行后,接下來就嘗試通過編譯安裝MariaDB。
先下載MariaDB的源碼包并解壓:
wget
https://dlm.mariadb.com/3239838/MariaDB/mariadb-11.0.2/source/mariadb-11.0.2.tar.gz
進入MariaDB源碼文件夾:
執(zhí)行cmake并編譯:
打開配置文件并編輯:

啟動服務器并測試是否能連接數(shù)據(jù)庫服務器:

連接成功!
二、Redis
接下來就是Redis了,Redis全稱為REmote DIctionary Server(Redis), 由 Salvatore Sanfilippo編寫。是一個開源的、使用 ANSI C 語言編寫、遵守 BSD 協(xié)議、支持網(wǎng)絡、可基于內(nèi)存、分布式、可選持久性的鍵值對(Key-Value)的存儲數(shù)據(jù)庫,并提供多種語言的 API。Redis 通常被稱為數(shù)據(jù)結構服務器,因為值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等類型。
通過APT安裝Redis:
然后啟動Redis服務:
進入redis-cli:
如果能進入Redis Shell那就說明安裝成功。
編譯安裝:
wget?
https://github.com/redis/redis/archive/refs/tags/7.0.12.tar.gz
解壓:
進入Redis文件夾:
編譯:
測試一下(可選):
安裝:
啟動服務器:
結果如下:

因此Redis通過APT安裝和編譯安裝兩種方式均可以。
三、MongoDB
接下來就是MongoDB,MongoDB?是一個基于分布式文件存儲的數(shù)據(jù)庫。由?C++?語言編寫。旨在為?WEB?應用提供可擴展的高性能數(shù)據(jù)存儲解決方案。MongoDB?是一個介于關系數(shù)據(jù)庫和非關系數(shù)據(jù)庫之間的產(chǎn)品,是非關系數(shù)據(jù)庫當中功能最豐富,最像關系數(shù)據(jù)庫的。
通過APT安裝MongoDB:
結果提示不支持通過apt安裝,因此我們選擇源碼編譯安裝。
下載源碼包:
wget?https://fastdl.mongodb.org/src/mongodb-src-r6.0.8.tar.gz
解壓縮:
進入mongodb源碼文件夾:
編譯:
結果編譯失?。?/p>
在安裝相關的包以后,依舊無法編譯。
四、PostgreSQL
然后就是PostgreSQL,PostgreSQL 是一個免費的對象-關系數(shù)據(jù)庫服務器(ORDBMS),在靈活的BSD許可證下發(fā)行。PostgreSQL 開發(fā)者把它念作 post-gress-Q-L。PostgreSQL 的 Slogan 是 "世界上最先進的開源關系型數(shù)據(jù)庫"。
通過APT安裝:
測試一下:

編譯安裝:
下載源代碼:
wget?
https://ftp.postgresql.org/pub/source/v15.3/postgresql-15.3.tar.gz
解壓:
新建pg文件夾:
進入:
配置:
編譯并安裝:
初始化數(shù)據(jù)庫:
啟動數(shù)據(jù)庫:
成功啟動數(shù)據(jù)庫后,接下來就是測試數(shù)據(jù)庫性能了。PostgreSQL和Redis一樣也自帶了壓力測試程序。
新建用于壓力測試的數(shù)據(jù)庫:
初始化用于壓力測試的數(shù)據(jù)庫:
開始壓力測試:
壓力測試結果如下:
五、TiDB
接下來就是TiDB了,TiDB?是?PingCAP?公司自主設計、研發(fā)的開源分布式關系型數(shù)據(jù)庫。該數(shù)據(jù)庫使用Go語言編寫。
下載最新版的TiDB源碼包以后解壓并進入源碼文件夾,然后編譯:
結果編譯失?。?/p>
同時也嘗試了通過腳本安裝,結果提示不支持該架構。
總結:
通過此次實驗,得出了以下結果。

1、上一期我就提到MySQL不支持直接通過編譯安裝,只能通過打Ubuntu提供的補丁才能編譯(詳見MySQL server fails to build on RISC-V 64),而MariaDB通過編譯安裝或包管理器安裝兩種方式均可以。但是通過編譯安裝后后續(xù)要作進一步手工配置(教程見參考資料),而通過包管理器安裝系統(tǒng)自動給你配置好,開箱即用,因此建議通過APT(包管理器)安裝MySQL/MariaDB,更加省時方便。
2、目前測試的四款數(shù)據(jù)庫軟件中,MongoDB只有適用于Ubuntu 22.04 LTS的軟件包,而TiDB無論是腳本安裝還是編譯安裝均不支持risCV64。因此希望這兩個數(shù)據(jù)庫在RISC-V架構上的支持再加把勁。
3、此次兼容性測試中表現(xiàn)最亮眼的是PostgreSQL和Redis,這兩者編譯下來都挺順利,而且還能正常運行。說明這兩個數(shù)據(jù)庫對risCV64的兼容性做得是非常好。尤其是PostgreSQL,之前PostgreSQL?BuildFarm里有社區(qū)成員使用risCV64平臺上的編譯器編譯成功了。因此PostgreSQL能夠在risCV64平臺上成功編譯并運行就是必然的了。
4、Redis和PostgreSQL都自帶了壓力測試工具,Redis的redis-benchmark設置好壓力測試參數(shù),然后只要等測試結果出爐即可,而PostgreSQL的pgbench相比于redis-benchmark,只要在設置壓力測試參數(shù)前再加創(chuàng)建測試數(shù)據(jù)庫和初始化測試數(shù)據(jù)庫這兩步即可。因此,自帶壓力測試程序這一點,對于這兩個數(shù)據(jù)庫來說是加分項,因為使用自帶的壓力測試程序可以幫助使用者了解到該服務器在數(shù)據(jù)庫方面上的性能。
參考資料:
MariaDB 簡介
https://mariadb.org/zh/
Redis 教程
https://www.runoob.com/redis/redis-tutorial.html
MongoDB官網(wǎng)
https://www.mongodb.com/zh-cn
MongoDB開發(fā)者社區(qū)
https://www.mongodb.com/community/forums/t/when-to-upload-version-on-debian/181125
mongodb-server binary package in Ubuntu Focal risCV64
https://launchpad.net/ubuntu/focal/risCV64/mongodb-server
MySQL server fails to build on RISC-V 64https://bugs.mysql.com/bug.php?id=100356
部署Mariadb數(shù)據(jù)庫到Linux(源碼編譯安裝)https://www.cnblogs.com/DragonStart/p/10823222.html
PostgreSQL BuildFarm Status
https://buildfarm.postgresql.org/cgi-bin/show_status.pl
PostgreSQL BuildFarm Status History
https://buildfarm.postgresql.org/cgi-bin/show_history.pl?nm=boomslang&br=REL_15_STABLE
TiDB
https://docs.pingcap.com/zh/tidb/stable
正文完
About HS-2
HS-2 RISC-V通用主板是澎峰科技與合作伙伴共同研發(fā)的一款專為開發(fā)者設計的標準mATX主板,它預裝了澎峰科技為RISC-V高性能服務器定制開發(fā)的軟件包,包括各種標準bencmark、支持V擴展的GCC編譯器、計算庫、中間件以及多種典型服務器應用程序。
HS-2 RISC-V通用主板搭載了一顆國產(chǎn)RISC-V 64核處理器(SG2042)。SG2042是目前已量產(chǎn)的性能最高的RISC-V處理器,主要針對高性能計算領域需求設計,適用于科學計算、工程計算、AI計算、融合計算等大算力應用場景。

關于RISC-V公共測試平臺

RISC-V高性能處理器公共測試云平臺 ·快速使用指南,下載鏈接:https://www.kdocs.cn/l/cmnYcyFIlVRx
RISC-V公共測試云平臺系列文章
?RISC-V公測平臺發(fā)布 ·Stream帶寬完整測試
?RISC-V公測平臺發(fā)布 · 我的世界MohistMC
?RISC-V公測平臺發(fā)布 · 第一個WEB Server“Hello RISC-V world!”
?RISC-V公測平臺發(fā)布 ·如何在SG2042上玩轉(zhuǎn)k3s
?“RISC-V成長日記” blog發(fā)布,第一個運行在RISC-V服務器上的blog?
RISC-V公測平臺發(fā)布:如何在SG2042上玩轉(zhuǎn)OpenMPI
RISC-V公測平臺發(fā)布:Compiling The Fedora Linux Kernel Natively on RISC-V
?RISC-V公測平臺發(fā)布 · Unix Bench完整測試
RISC-V公測平臺發(fā)布 · 使用YCSB測試SG2042上的MySQL性能
RISC-V公測平臺發(fā)布 · 7-zip 測試
RISC-V公測平臺發(fā)布 · CoreMark測試報告
RISC-V公測平臺發(fā)布 · 數(shù)據(jù)庫在RISC-V服務器上的適配評估(本篇)