昆山智能网站建设,企业信息查询app哪个最好,wordpress密码邮箱,简单的logo设计前言
上一期讲到YCSB在RISC-V服务器上对MySQL进行性能测试#xff08;RISC-V公测平台发布 使用YCSB测试SG2042上的MySQL性能#xff09;#xff0c;在这一期文章中#xff0c;我们继续深入讨论RISC-V数据库的应用。本期就继续利用HS-2平台来测试数据库软件在RISC-V服务器…前言
上一期讲到YCSB在RISC-V服务器上对MySQL进行性能测试RISC-V公测平台发布 · 使用YCSB测试SG2042上的MySQL性能在这一期文章中我们继续深入讨论RISC-V数据库的应用。本期就继续利用HS-2平台来测试数据库软件在RISC-V服务器上的兼容性。
参与此次实验的数据库如下
Redis
MongoDB5
PostgreSQL
TiDB
MySQL/MariaDB
实验机配置如下
处理器SG204264核心
内存32GB
操作系统Ubuntu 22.10 (GNU/Linux 6.1.31 riscv64)
一、MySQL/MariaDB
在上一期中为了测试YCSBYahoo! 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_TOKUDB1 -DWITH_INNOBASE_STORAGE_ENGINE1
-DWITH_ARCHIVE_STPRAGE_ENGINE1 -DWITH_BLACKHOLE_STORAGE_ENGINE1
-DWIYH_READLINE1 -DWIYH_SSLsystem -DVITH_ZLIBsystem -DWITH_LOBWRAP0
-DMYSQL_UNIX_ADDR/tmp/mysql.sock -DDEFAULT_CHARSETutf8
-DDEFAULT_COLLATIONutf8_general_ci
make -j64
sudo make install -j1 打开配置文件并编辑
vim /home/mariadb/my.cnf 启动服务器并测试是否能连接数据库服务器
sudo /usr/local/mariadb/bin/mysqld_safe --usermysql --skip-grant-tables
/usr/local/mariadb/bin/mariadb 连接成功
二、Redis
接下来就是Redis了Redis全称为REmote DIctionary ServerRedis 由 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_TLSyes USE_SYSTEMDyes -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
接下来就是MongoDBMongoDB 是一个基于分布式文件存储的数据库。由 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
然后就是PostgreSQLPostgreSQL 是一个免费的对象-关系数据库服务器(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: builtin: TPC-B (sort of)
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?id100356 部署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?nmboomslangbrREL_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服务器上的适配评估本篇
欢迎投稿发送至riscvinfoperfxlab.com