前言
上一期講到YCSB在RISC-V服務器上對MySQL進行性能測試(RISC-V公測平臺發布 · 使用YCSB測試SG2042上的MySQL性能),在這一期文章中,我們繼續深入討論RISC-V+數據庫的應用。本期就繼續利用HS-2平臺來測試數據庫軟件在RISC-V服務器上的兼容性。
參與此次實驗的數據庫如下:
Redis
MongoDB5
PostgreSQL
TiDB
MySQL/MariaDB
實驗機配置如下:
處理器:SG2042(64核心)
內存:32GB
操作系統:Ubuntu 22.10 (GNU/Linux 6.1.31 riscv64)
一、MySQL/MariaDB
在上一期中,為了測試YCSB(Yahoo! Cloud Serving Benchmark)性能測試軟件,順便測試了MySQL在RISC-V服務器上的兼容性。
MySQL數據庫服務是一個完全托管的數據庫服務,可使用世界上最受歡迎的開源數據庫來部署云原生應用程序。它是百分百由MySQL原廠開發,管理和提供支持。
直接使用包管理器安裝MySQL:
sudo apt-get install mysql-server
當然除了包管理器安裝,也嘗試了編譯安裝MySQL,結果提示編譯失敗,因此,MySQL不能直接通過編譯安裝MySQL,而需要在編譯之前打上相關補丁,然后再編譯。
同時也測試了MariaDB在RISC-V服務器上的兼容性,MariaDB是一個通用的開源關系數據庫管理系統。它是世界上最受歡迎的數據庫服務器之一, MariaDB在GPLv2開源許可下發布,并保證保持開源。
先嘗試直接通過包管理器安裝:
sudo apt-get install mariadb-server
在通過包管理器安裝并正常運行后,接下來就嘗試通過編譯安裝MariaDB。
先下載MariaDB的源碼包并解壓:
wget
https://dlm.mariadb.com/3239838/MariaDB/mariadb-11.0.2/source/mariadb-11.0.2.tar.gz
進入MariaDB源碼文件夾:
tar -xzvf mariadb-11.0.2.tar.gz
執行cmake并編譯:
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb -DMYSQL_DATADIR=/home/mariadb
-DSYSCONFDIR=/etc -DWITHOUT_TOKUDB=1 -DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STPRAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWIYH_READLINE=1 -DWIYH_SSL=system -DVITH_ZLIB=system -DWITH_LOBWRAP=0
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
make -j64
sudo make install -j1
RISC-V公測平臺發布 · 數據庫在RISC-V服務器上的適配評估
前言
上一期講到YCSB在RISC-V服務器上對MySQL進行性能測試(RISC-V公測平臺發布 · 使用YCSB測試SG2042上的MySQL性能),在這一期文章中,我們繼續深入討論RISC-V+數據庫的應用。本期就繼續利用HS-2平臺來測試數據庫軟件在RISC-V服務器上的兼容性。
參與此次實驗的數據庫如下:
Redis
MongoDB5
PostgreSQL
TiDB
MySQL/MariaDB
實驗機配置如下:
處理器:SG2042(64核心)
內存:32GB
操作系統:Ubuntu 22.10 (GNU/Linux 6.1.31 riscv64)
一、MySQL/MariaDB
在上一期中,為了測試YCSB(Yahoo! Cloud Serving Benchmark)性能測試軟件,順便測試了MySQL在RISC-V服務器上的兼容性。
MySQL數據庫服務是一個完全托管的數據庫服務,可使用世界上最受歡迎的開源數據庫來部署云原生應用程序。它是百分百由MySQL原廠開發,管理和提供支持。
直接使用包管理器安裝MySQL:
sudo apt-get install mysql-server
當然除了包管理器安裝,也嘗試了編譯安裝MySQL,結果提示編譯失敗,因此,MySQL不能直接通過編譯安裝MySQL,而需要在編譯之前打上相關補丁,然后再編譯。
同時也測試了MariaDB在RISC-V服務器上的兼容性,MariaDB是一個通用的開源關系數據庫管理系統。它是世界上最受歡迎的數據庫服務器之一, MariaDB在GPLv2開源許可下發布,并保證保持開源。
先嘗試直接通過包管理器安裝:
sudo apt-get install mariadb-server
在通過包管理器安裝并正常運行后,接下來就嘗試通過編譯安裝MariaDB。
先下載MariaDB的源碼包并解壓:
wget
https://dlm.mariadb.com/3239838/MariaDB/mariadb-11.0.2/source/mariadb-11.0.2.tar.gz
進入MariaDB源碼文件夾:
tar -xzvf mariadb-11.0.2.tar.gz
執行cmake并編譯:
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb -DMYSQL_DATADIR=/home/mariadb
-DSYSCONFDIR=/etc -DWITHOUT_TOKUDB=1 -DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STPRAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWIYH_READLINE=1 -DWIYH_SSL=system -DVITH_ZLIB=system -DWITH_LOBWRAP=0
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
make -j64
sudo make install -j1
打開配置文件并編輯:
vim /home/mariadb/my.cnf
RISC-V公測平臺發布 · 數據庫在RISC-V服務器上的適配評估
原創2023-08-21 16:45·Treesa
前言
上一期講到YCSB在RISC-V服務器上對MySQL進行性能測試(RISC-V公測平臺發布 · 使用YCSB測試SG2042上的MySQL性能),在這一期文章中,我們繼續深入討論RISC-V+數據庫的應用。本期就繼續利用HS-2平臺來測試數據庫軟件在RISC-V服務器上的兼容性。
參與此次實驗的數據庫如下:
Redis
MongoDB5
PostgreSQL
TiDB
MySQL/MariaDB
實驗機配置如下:
處理器:SG2042(64核心)
內存:32GB
操作系統:Ubuntu 22.10 (GNU/Linux 6.1.31 riscv64)
一、MySQL/MariaDB
在上一期中,為了測試YCSB(Yahoo! Cloud Serving Benchmark)性能測試軟件,順便測試了MySQL在RISC-V服務器上的兼容性。
MySQL數據庫服務是一個完全托管的數據庫服務,可使用世界上最受歡迎的開源數據庫來部署云原生應用程序。它是百分百由MySQL原廠開發,管理和提供支持。
直接使用包管理器安裝MySQL:
sudo apt-get install mysql-server
當然除了包管理器安裝,也嘗試了編譯安裝MySQL,結果提示編譯失敗,因此,MySQL不能直接通過編譯安裝MySQL,而需要在編譯之前打上相關補丁,然后再編譯。
同時也測試了MariaDB在RISC-V服務器上的兼容性,MariaDB是一個通用的開源關系數據庫管理系統。它是世界上最受歡迎的數據庫服務器之一, MariaDB在GPLv2開源許可下發布,并保證保持開源。
先嘗試直接通過包管理器安裝:
sudo apt-get install mariadb-server
在通過包管理器安裝并正常運行后,接下來就嘗試通過編譯安裝MariaDB。
先下載MariaDB的源碼包并解壓:
wget
https://dlm.mariadb.com/3239838/MariaDB/mariadb-11.0.2/source/mariadb-11.0.2.tar.gz
進入MariaDB源碼文件夾:
tar -xzvf mariadb-11.0.2.tar.gz
執行cmake并編譯:
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb -DMYSQL_DATADIR=/home/mariadb
-DSYSCONFDIR=/etc -DWITHOUT_TOKUDB=1 -DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STPRAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWIYH_READLINE=1 -DWIYH_SSL=system -DVITH_ZLIB=system -DWITH_LOBWRAP=0
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
make -j64
sudo make install -j1
打開配置文件并編輯:
vim /home/mariadb/my.cnf
啟動服務器并測試是否能連接數據庫服務器:
sudo /usr/local/mariadb/bin/mysqld_safe --user=mysql --skip-grant-tables
/usr/local/mariadb/bin/mariadb
連接成功!
二、Redis
接下來就是Redis了,Redis全稱為REmote DIctionary Server(Redis), 由 Salvatore Sanfilippo編寫。是一個開源的、使用 ANSI C 語言編寫、遵守 BSD 協議、支持網絡、可基于內存、分布式、可選持久性的鍵值對(Key-Value)的存儲數據庫,并提供多種語言的 API。
Redis 通常被稱為數據結構服務器,因為值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等類型。
通過APT安裝Redis:
sudo apt install redis-server
然后啟動Redis服務:
sudo servcie redis-server start
進入redis-cli:
redis-cli
如果能進入Redis Shell那就說明安裝成功。
編譯安裝:
wget
https://github.com/redis/redis/archive/refs/tags/7.0.12.tar.gz
解壓:
tar -xzvf 7.0.12.tar.gz
進入Redis文件夾:
cd redis-7.0.12/
編譯:
make BUILD_TLS=yes USE_SYSTEMD=yes -j64
測試一下(可選):
make test
安裝:
sudo make install
啟動服務器:
redis-server
redis-server &(后臺運行)
運行redis-benchmark壓力測試(10萬次請求,20個客戶端),以CSV文件形式輸出。
redis-benchmark -n 100000 -c 20 --csv
結果如下:
因此Redis通過APT安裝和編譯安裝兩種方式均可以。
三、MongoDB
接下來就是MongoDB,MongoDB 是一個基于分布式文件存儲的數據庫。由 C++ 語言編寫。旨在為 WEB 應用提供可擴展的高性能數據存儲解決方案。MongoDB 是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。
通過APT安裝MongoDB:
sudo apt install mongodb
結果提示不支持通過apt安裝,因此我們選擇源碼編譯安裝。
下載源碼包:
wget
https://fastdl.mongodb.org/src/mongodb-src-r6.0.8.tar.gz
解壓縮:
tar -xzvf mongodb-src-r6.0.8.tar.gz
進入mongodb源碼文件夾:
cd mongodb-src-r6.0.8/
編譯:
python3 buildscripts/scons.py install-mongod -j64
結果編譯失敗:
在安裝相關的包以后,依舊無法編譯。
四、PostgreSQL
然后就是PostgreSQL,PostgreSQL 是一個免費的對象-關系數據庫服務器(ORDBMS),在靈活的BSD許可證下發行。PostgreSQL 開發者把它念作 post-gress-Q-L。PostgreSQL 的 Slogan 是 "世界上最先進的開源關系型數據庫"。
通過APT安裝:
apt-get install postgresql postgresql-client
測試一下:
sudo -i -u postgres
psql
編譯安裝:
下載源代碼:
wget
https://ftp.postgresql.org/pub/source/v15.3/postgresql-15.3.tar.gz
解壓:
tar -xzvf postgresql-15.3.tar.gz
新建pg文件夾:
mkdir pg
進入:
cd postgresql-15.3/
配置:
./configure --prefix=/home/perfxlab01/pg
編譯并安裝:
make world -j64
make install-world -j64
進入~/pg/
初始化數據庫:
./bin/initdb -D ./data/
啟動數據庫:
bin/pg_ctl -D ./data/ -l logfile start
成功啟動數據庫后,接下來就是測試數據庫性能了。PostgreSQL和Redis一樣也自帶了壓力測試程序。
新建用于壓力測試的數據庫:
bin/psql -U postgres -h localhost
(進入psql shell)
CREATE DATABASE test;
(退出psql shell)
初始化用于壓力測試的數據庫:
bin/pgbench -i test
開始壓力測試:
bin/pgbench -c 100 -T 300 -j 64 test
壓力測試結果如下:
pgbench (15.3)
transaction type:
scaling factor: 1
query mode: simple
number of clients: 100
number of threads: 64
maximum number of tries: 1
duration: 300 s
number of transactions actually processed: 93122
number of failed transactions: 0 (0.000%)
latency average = 322.405 ms
initial connection time = 156.199 ms
tps = 310.168586 (without initial connection time)
statement latencies in milliseconds and failures:
0.005 0 set aid random(1, 100000 * :scale)
0.002 0 set bid random(1, 1 * :scale)
0.002 0 set tid random(1, 10 * :scale)
0.002 0 set delta random(-5000, 5000)
0.201 0 BEGIN;
1.144 0 UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;
0.429 0 SELECT abalance FROM pgbench_accounts WHERE aid = :aid;
290.788 0 UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;
26.624 0 UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;
0.432 0 INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);
2.556 0 END;
五、TiDB
接下來就是TiDB了,TiDB 是 PingCAP 公司自主設計、研發的開源分布式關系型數據庫。該數據庫使用Go語言編寫。
下載最新版的TiDB源碼包以后解壓并進入源碼文件夾,然后編譯:
tar -xzvf tidb-7.1.1.tar.gz
cd tidb-7.1.1/
make
結果編譯失敗:
同時也嘗試了通過腳本安裝,結果提示不支持該架構。
總結:
通過此次實驗,得出了以下結果。
數據庫 |
APT安裝/腳本安裝 |
編譯安裝 |
Redis |
√ |
√ |
MongoDB |
× |
× |
PostgreSQL |
√ |
√ |
TiDB |
× |
× |
MySQL |
√ |
× |
MariaDB |
√ |
√ |
1、上一期我就提到MySQL不支持直接通過編譯安裝,只能通過打Ubuntu提供的補丁才能編譯(詳見MySQL server fails to build on RISC-V 64),而MariaDB通過編譯安裝或包管理器安裝兩種方式均可以。但是通過編譯安裝后后續要作進一步手工配置(教程見參考資料),而通過包管理器安裝系統自動給你配置好,開箱即用,因此建議通過APT(包管理器)安裝MySQL/MariaDB,更加省時方便。
2、目前測試的四款數據庫軟件中,MongoDB只有適用于Ubuntu 22.04 LTS的軟件包,而TiDB無論是腳本安裝還是編譯安裝均不支持riscv64。因此希望這兩個數據庫在RISC-V架構上的支持再加把勁。
3、此次兼容性測試中表現最亮眼的是PostgreSQL和Redis,這兩者編譯下來都挺順利,而且還能正常運行。說明這兩個數據庫對riscv64的兼容性做得是非常好。尤其是PostgreSQL,之前PostgreSQL BuildFarm里有社區成員使用riscv64平臺上的編譯器編譯成功了。因此PostgreSQL能夠在riscv64平臺上成功編譯并運行就是必然的了。
4、Redis和PostgreSQL都自帶了壓力測試工具,Redis的redis-benchmark設置好壓力測試參數,然后只要等測試結果出爐即可,而PostgreSQL的pgbench相比于redis-benchmark,只要在設置壓力測試參數前再加創建測試數據庫和初始化測試數據庫這兩步即可。因此,自帶壓力測試程序這一點,對于這兩個數據庫來說是加分項,因為使用自帶的壓力測試程序可以幫助使用者了解到該服務器在數據庫方面上的性能。
參考資料:
MariaDB 簡介
https://mariadb.org/zh/
Redis 教程
https://www.runoob.com/redis/redis-tutorial.html
MongoDB官網
https://www.mongodb.com/zh-cn
MongoDB開發者社區
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 64
https://bugs.mysql.com/bug.php?id=100356
部署Mariadb數據庫到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通用主板是澎峰科技與合作伙伴共同研發的一款專為開發者設計的標準mATX主板,它預裝了澎峰科技為RISC-V高性能服務器定制開發的軟件包,包括各種標準bencmark、支持V擴展的GCC編譯器、計算庫、中間件以及多種典型服務器應用程序。
HS-2 RISC-V通用主板搭載了一顆國產RISC-V 64核處理器(SG2042)。SG2042是目前已量產的性能最高的RISC-V處理器,主要針對高性能計算領域需求設計,適用于科學計算、工程計算、AI計算、融合計算等大算力應用場景。
- 關于RISC-V公共測試平臺
RISC-V高性能處理器公共測試云平臺 ·快速使用指南,下載鏈接:
https://www.kdocs.cn/l/cmnYcyFIlVRx
- RISC-V公共測試云平臺系列文章
- RISC-V公測平臺發布 ·Stream帶寬完整測試
- RISC-V公測平臺發布 · 我的世界MohistMC
- RISC-V公測平臺發布 · 第一個WEB Server“Hello RISC-V world!”
- RISC-V公測平臺發布 ·如何在SG2042上玩轉k3s
- “RISC-V成長日記” blog發布,第一個運行在RISC-V服務器上的blog?
- RISC-V公測平臺發布:如何在SG2042上玩轉OpenMPI
- RISC-V公測平臺發布:Compiling The Fedora Linux Kernel Natively on RISC-V
- RISC-V公測平臺發布 · Unix Bench完整測試
- RISC-V公測平臺發布 · 使用YCSB測試SG2042上的MySQL性能
- RISC-V公測平臺發布 · 7-zip 測試
- RISC-V公測平臺發布 · CoreMark測試報告
- RISC-V公測平臺發布 · 數據庫在RISC-V服務器上的適配評估(本篇)
審核編輯:湯梓紅
-
服務器
+關注
關注
12文章
9024瀏覽量
85186 -
操作系統
+關注
關注
37文章
6742瀏覽量
123192 -
數據庫
+關注
關注
7文章
3766瀏覽量
64277 -
RISC-V
+關注
關注
44文章
2230瀏覽量
46035
發布評論請先 登錄
相關推薦
評論