0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RISC-V公测平台发布 使用YCSB测试SG2042上的MySQL性能

澎峰科技PerfXLab 来源:澎峰科技PerfXLab 作者:澎峰科技PerfXLab 2023-08-10 19:15 次阅读

实验介绍:

YCSB(全称为Yahoo! Cloud Serving Benchmark),该性能测试工具由Java语言编写(在之前的MC文章中也提到过这个,如果没看过的读者可以去看看之前MC那一期),主要用于云端或者服务器端的数据库性能测试工具,其内部涵盖了常见的NoSQL数据库产品,如Cassandra、MongoDB、HBase、Redis等等。

MySQL数据库服务是一个完全托管的数据库服务,可使用世界上最受欢迎的开源数据库来部署云原生应用程序。它是百分百由MySQL原厂开发,管理和提供支持。

当然,本次实验所用到的平台还是衡山-2(HS-2)RISC-V通用主板,该主板是一款专为开发者设计的标准mATX主板,该主板最高支持128GB内存,通过类似PC的丰富的接口和较强的兼容性,赋予开发者桌面级的RISC-V开发体验。

HS-2主板搭载了一颗国产的服务器级RISC-V 64核处理器(SG2042)。SG2042是目前已量产的性能最高的RISC-V处理器,主要针对高性能计算领域需求设计,适用于科学计算、工程计算、AI计算、融合计算等大算力应用场景。

实验材料:

MySQL/MySQL源代码

一台SG2042服务器(HS-2)

TPCC源代码

YCSB源代码

JDK(本教程使用系统自带的JDK 11)

实验过程:

安装MySQL:

方式一:直接通过apt安装

sudo apt install mysql-server

方式二:编译安装(此路不通)

下载源码

wget

https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.34.tar.gz

如果wget太慢,可以先提前下载到电脑上,然后再传到服务器上。

解压并进入


tar -xzvf mysql-8.0.34.tar.gz
cd mysql-8.0.34/
mkdir build
cd build/

由于MySQL需要boost,而且直接下载boost比较慢,因此我们选择手动下载boost

https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_77_0.tar.gz

解压

tar -xzvf boost_1_77_0.tar.gz

回到mysql的build文件夹下:

cd mysql-8.0.34/build/

运行cmake


sudo cmake .. -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_unicode_ci 
-DENABLED_LOCAL_INFILE=ON                                    -DWITH_SSL=system 
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql/server  -DMYSQL_DATADIR=/usr/local/mysql/data 
-DMYSQL_TCP_PORT=3306                                        -DDOWNLOAD_BOOST=0 
-DWITH_BOOST=/home/perfxlab01/boost_1_77_0/

编译并安装

sudo make -j64

结果提示SHM_Buffer.hpp上的代码报错,后来发现当时不支持RISC-V平台编译,因此在此建议还是通过包管理器安装mysql。

注意,如果是之前已经卸载并重装过mysql,如果出现sock无法访问,请参考:

https://stackoverflow.com/questions/70813122/getting-error-mysql-service-failed-because-the-control-process-exited-with-erro

如果提示mysql.cnf出错,只要执行以下命令即可修复。


sudo touch /etc/mysql/mysql.cnf(新建mysql.cnf文件)
sudo dpkg --configure -a(重新配置)

初始化设置:

sudo mysql_secure_installation
wKgZomTUwCaACIfzAACfjZ3-_y8194.png

发现没有权限

进入mysql

sudo mysql

执行以下命令:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '[你想设置的密码]';

然后退出mysql shell

接下来我们运行YCSB测试

获取YCSB

https://hub.yzuu.cf/brianfrankcooper/YCSB/releases/download/0.17.0/ycsb-0.17.0.tar.gz

https://github.com/brianfrankcooper/YCSB/releases/download/0.17.0/ycsb-0.17.0.tar.gz

如果wget下载太慢的话可以先在电脑上使用多线程下载工具下载到电脑上,然后上传到服务器上

传到服务器上后解压:

tar -xzvf ycsb-0.17.0.tar.gz

进入YCSB文件夹

cd ycsb-0.17.0/

由于YCSB使用的Java语言编写,因此我们还需要JDK。不过系统以已经提前提供了JDK11,因此无需另外安装JDK。

登录数据库,创建数据库和表:


create database ycsb;
use ycsb;
CREATE TABLE usertable (
YCSB_KEY VARCHAR(255) PRIMARY KEY,
FIELD0 TEXT, FIELD1 TEXT,
FIELD2 TEXT, FIELD3 TEXT,
FIELD4 TEXT, FIELD5 TEXT,
FIELD6 TEXT, FIELD7 TEXT,
FIELD8 TEXT, FIELD9 TEXT
);
wKgZomTUwGaAK5RTAAATWyGzu7Y975.png

编辑db.properties

cd jdbc-binding/conf/
mv db.properties db.properties.bak
vim db.properties

db.properties内容如下:


db.driver=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/ycsb
db.user=root
db.passwd=[你的密码]

然后下载所需要的数据库驱动

wget

https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-j-8.0.33.tar.gz

解压并将驱动安装到指定文件夹下:


tar -xzvf mysql-connector-j-8.0.33.tar.gz 
cp mysql-connector-j-8.0.33/mysql-connector-j-8.0.33.jar ~/ycsb-0.17.0/jdbc-binding/lib/

载入数据:

bin/ycsb load jdbc -P workloads/workloada -P ./jdbc-binding/conf/db.properties 
-cp ./jdbc-binding/lib/mysql-connector-j-8.0.33.jar

然后就是跑分时间:


bin/ycsb run jdbc -P workloads/workloada -P ./jdbc-binding/conf/db.properties 
-cp ./jdbc-binding/lib/mysql-connector-j-8.0.33.jar

(上面两个步骤时间比较长,可以在等的时候顺便泡杯咖啡或者看一会番等等)

如果提示Python报错,那是因为YCSB使用的是Python 2代码,虽然有人试图将Python3支持与主仓库合并,但是却一直没有被合并进去(0.17.0依旧还是使用Python 2)。

先安装python2


sudo apt install python2

更改链接


sudo rm /usr/bin/python
sudo ln -s /usr/bin/python2 /usr/bin/python

测试一下:


python --version

如果提示Python 2.7.18那就说明已经成功将链接改到python 2了。

然后重新尝试执行载入数据并跑分

跑分结果:


[OVERALL], RunTime(ms), 1180970
[OVERALL], Throughput(ops/sec), 84.67615604122035
[TOTAL_GCS_Copy], Count, 127
[TOTAL_GC_TIME_Copy], Time(ms), 2214
[TOTAL_GC_TIME_%_Copy], Time(%), 0.18747300947526185
[TOTAL_GCS_MarkSweepCompact], Count, 6
[TOTAL_GC_TIME_MarkSweepCompact], Time(ms), 526
[TOTAL_GC_TIME_%_MarkSweepCompact], Time(%), 0.044539658077681905
[TOTAL_GCs], Count, 133
[TOTAL_GC_TIME], Time(ms), 2740
[TOTAL_GC_TIME_%], Time(%), 0.23201266755294375
[READ], Operations, 49947
[READ], AverageLatency(us), 1485119.70881134
[READ], MinLatency(us), 20192
[READ], MaxLatency(us), 66584575
[READ], 95thPercentileLatency(us), 3217407
[READ], 99thPercentileLatency(us), 3725311
[READ], Return=OK, 49947
[CLEANUP], Operations, 100
[CLEANUP], AverageLatency(us), 207285.48
[CLEANUP], MinLatency(us), 4828
[CLEANUP], MaxLatency(us), 6111231
[CLEANUP], 95thPercentileLatency(us), 999935
[CLEANUP], 99thPercentileLatency(us), 1299455
[UPDATE], Operations, 50053
[UPDATE], AverageLatency(us), 609746.7518030887
[UPDATE], MinLatency(us), 22224
[UPDATE], MaxLatency(us), 2666495
[UPDATE], 95thPercentileLatency(us), 1309695
[UPDATE], 99thPercentileLatency(us), 1539071
[UPDATE], Return=OK, 50053

总结:从跑分结果来看,SG2042在数据库应用方面还是比较不错的,但是由于YCSB使用的是Python 2,而Python 2已于2020年1月1日停止支持,因此也希望YCSM尽快迁移到Python 3上。

参考资料

MySQL中文官网:

https://www.mysql.com/cn/

YCSB的jdbc文档

https://github.com/brianfrankcooper/YCSB/tree/master/jdbc

Port ycsb to Python3 and also make it Python2 compatible #1421(Github)

https://github.com/brianfrankcooper/YCSB/pull/1421

MySQL server fails to build on RISC-V 64

https://bugs.mysql.com/bug.php?id=100356

正文完


  • 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计算、融合计算等大算力应用场景。

wKgZomTUwSaACzXRAAZ34cPcisY858.png
  • 关于RISC-V公共测试平台
wKgZomTUwUSAa2dyAA2V8stwnBo166.png

RISC-V高性能处理器公共测试云平台 ·快速使用指南,下载链接:https://www.kdocs.cn/l/cmnYcyFIlVRx

  • RISC-V公共测试云平台系列文章

1. RISC-V公测平台发布 ·Stream带宽完整测试

2. RISC-V公测平台发布 · 我的世界MohistMC

3. RISC-V公测平台发布 · 第一个WEB Server“Hello RISC-V world!”

4. RISC-V公测平台发布 ·如何在SG2042上玩转k3s

5. “RISC-V成长日记” blog发布,第一个运行在RISC-V服务器上的blog?

6. RISC-V公测平台发布:如何在SG2042上玩转OpenMPI

7. RISC-V公测平台发布:Compiling The Fedora Linux Kernel Natively on RISC-V

8. RISC-V公测平台发布 · Unix Bench完整测试

9. RISC-V公测平台发布 · 使用YCSB测试SG2042上的MySQL性能(本篇)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • JAVA
    +关注

    关注

    19

    文章

    2945

    浏览量

    104201
  • MySQL
    +关注

    关注

    1

    文章

    789

    浏览量

    26308
  • RISC-V
    +关注

    关注

    44

    文章

    2156

    浏览量

    45753
  • 澎峰科技
    +关注

    关注

    0

    文章

    45

    浏览量

    3143
收藏 人收藏

    评论

    相关推荐

    加入全球 RISC-V Advocate 行列,共筑 RISC-V 的未来 !

    ,贡献内容,在社交媒体推广RISC-V。加入我们,共同发展RISC-V社区,传播RISC-V的消息!成为RISC-VAdvocate的好处
    的头像 发表于 09-10 08:08 174次阅读
    加入全球 <b class='flag-5'>RISC-V</b> Advocate 行列,共筑 <b class='flag-5'>RISC-V</b> 的未来 !

    中国电信“北海”RISC-V云计算试验平台发布

    首个RISC-V云计算试验平台“北海”。此次发布活动得到了RVEI战略指导委员会主任、中国工程院院士倪光南的鼎力支持与亲自参与,彰显了“北海”平台
    的头像 发表于 08-28 16:06 779次阅读

    2024 RISC-V 中国峰会:华秋电子助力RISC-V生态!

    、生态伙伴、公开课、开发者社区、评测试用等栏目,是为各生态厂商量身定制的硬件开发平台,通过线上社区+一站式供应链服务让硬件开发变得更简单。他表示,RISC-V开放平台已吸引30+厂商入
    发表于 08-26 16:46

    Imagination CPU 系列研讨会 | RISC-V 平台性能分析和调试

    为了让开发者及工程师深入了解Imagination的CPU产品及相关解决方案,Imagination将陆续推出5期线上研讨会,包含:RISC-V平台性能分析和调试;RISC-V安全和
    的头像 发表于 08-10 08:28 178次阅读
    Imagination CPU 系列研讨会 | <b class='flag-5'>RISC-V</b> <b class='flag-5'>平台</b>的<b class='flag-5'>性能</b>分析和调试

    risc-v的发展历史

    Foundation),旨在促进RISC-V架构的发展和推广。该基金会由大量的企业和机构支持,包括英特尔、Nvidia、谷歌、华为、IBM、红帽、西部数据等。 2015年:RISC-V基金会发布了第一个稳定版
    发表于 07-29 17:20

    rIsc-v的缺的是什么?

    RISC-V作为一种开源的指令集架构(ISA),自其诞生以来就受到广泛关注和应用,但它也存在一些不足之处。以下是RISC-V架构目前存在的主要缺点: 1. 性能问题 相对于专用ISA的性能
    发表于 07-29 17:18

    国产RISC-V芯片性能稳定吗?

    想使用国产的RISC-V架构的芯片做无人机投送快递的方案,可行性高吗?国产的RISC-V MCU稳定么?
    发表于 05-20 15:43

    国产RISC-V MCU推荐

    ,可以消除外部电路的缺陷,更好地适应外部环境的变化。因此,ESP32的批量生产不需要昂贵的专用Wi-Fi测试设备。 性能超凡的RISC-V MCU 有些网友推荐先楫的产品,devinfanyang认为
    发表于 04-17 11:00

    什么是RISC-VRISC-V的关键技术

    RISC-V不仅仅是一个流行语;它建立在坚实的技术基础之上,使其有别于其他指令集架构 (ISA)。RISC-V的核心是基于精简指令集计算(RISC)原则,强调效率和性能
    发表于 03-26 09:34 3098次阅读

    什么是RISC-V

    siFive搞RISC-V 赛昉搞RISC-V 香山搞RISC-V 到底什么是RISC-V? 先不问有什么用,RISC-V目前的能力来说,工
    发表于 02-02 10:41

    润开鸿基于高性能RISC-V开源架构DAYU800通过OpenHarmony兼容性测评

    近期,江苏润开鸿数字科技有限公司(以下简称“润开鸿”)基于高性能RISC-V开源架构处理器研发的OpenHarmony标准系统开发平台HH-SCDAYU800通过OpenHarmony 3.2.2
    发表于 12-14 17:33

    256核!赛昉发布全新RISC-V众核子系统IP平台

    (StarLink-500),一款高性能RISC-V多核子系统IP平台。 本次发布,赛昉科技再次扩充自研IP矩阵,引领RISC-V迈入更高
    发表于 11-29 13:37

    赛昉科技发布全新RISC-V众核子系统IP平台

    11月23日,中国RISC-V软硬件生态领导者赛昉科技正式发布自主研发的片一致性互联IP——昉·星链-700(StarLink-700),并推出基于StarLink-700和昉·天枢-90(Dubhe-90)的高
    的头像 发表于 11-27 10:25 478次阅读
    赛昉科技<b class='flag-5'>发布</b>全新<b class='flag-5'>RISC-V</b>众核子系统IP<b class='flag-5'>平台</b>

    256核!赛昉科技发布全新RISC-V众核子系统IP平台

    11月23日,中国RISC-V软硬件生态领导者赛昉科技正式发布自主研发的片一致性互联IP——昉·星链-700(StarLink-700),并推出基于StarLink-700和昉·天枢-90
    的头像 发表于 11-24 08:19 413次阅读
    256核!赛昉科技<b class='flag-5'>发布</b>全新<b class='flag-5'>RISC-V</b>众核子系统IP<b class='flag-5'>平台</b>

    安路科技发布全新FPSoC®器件,芯来RISC-V内核助力高性能融合

    、可扩展SoC平台的优势。 DR1V90内置RISC-V内核为 芯来科技UX900系列RISC-V处理器内核。 RISC-V处理器配合片
    的头像 发表于 11-17 15:50 1012次阅读
    安路科技<b class='flag-5'>发布</b>全新FPSoC®器件,芯来<b class='flag-5'>RISC-V</b>内核助力高<b class='flag-5'>性能</b>融合