RISC-V公测平台发布 · 使用YCSB测试SG2042上的MySQL性能
实验介绍:
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.gzcd mysql-8.0.34/mkdir buildcd 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

发现没有权限
进入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);

编辑db.properties
cd jdbc-binding/conf/mv db.properties db.properties.bakvim db.properties
db.properties内容如下:
db.driver=com.mysql.cj.jdbc.Driverdb.url=jdbc:mysql://localhost:3306/ycsbdb.user=rootdb.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.gzcp 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/pythonsudo 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计算、融合计算等大算力应用场景。

-
关于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公测平台发布 · 使用YCSB测试SG2042上的MySQL性能
实验介绍: YCSB(全称为Yahoo! Cloud Serving Benchmark),该性能测试工具由Java语言编写(在之前的MC文章中也提到过这个,如果没看过的读者可以去看看之前MC那一期),主要用于云端或者…...
母婴即时零售行业数据可视化分析
对新晋父母来说,很多母婴用品如同一位贴心的助手,为他们的宝宝提供温暖和呵护。从婴儿床垫到可爱的拼图玩具,每一件用品都是为宝宝的成长和发展量身定制。对于繁忙的父母们而言,这些用品不仅帮助照顾孩子,更是为他们减…...
快速解决IDEA中类的图标变成J,不是C的情况
有时候导入新的项目后,会出现如下情况,类的图标变成J,如图: 直接上解决方法: 找到项目的pom.xml,右键,在靠近最下方的位置找到Add as Maven Project,点击即可。 此时,一般类的图标就…...
vue学习笔记
1.官网 v2官网 https://v2.cn.vuejs.org/ v3官网 https://cn.vuejs.org/ 2.vue引入 在线引入 <script src"https://cdn.jsdelivr.net/npm/vue2.7.14/dist/vue.js"></script> 下载引入(下载链接) https://v2.cn.vuejs.org/js/vue.js 3.初始化渲…...
难解的bug
android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground(): ServiceRecord 【Android TimeCat】 解决 context.startforegroundservice() did not then call service.startforeground() | XiChens Blog http://www…...
人文景区有必要做VR云游吗?如何满足游客出行需求?
VR云游在旅游行业中的应用正在快速增长,为游客带来沉浸式体验的同时,也为文旅景区提供了新的营销方式。很多人说VR全景展示是虚假的,比不上真实的景区触感,人文景区真的有必要做VR云游吗?我的答案是很有必要。 如果你认…...
【字节跳动青训营】后端笔记整理-1 | Go语言入门指南:基础语法和常用特性解析
**本人是第六届字节跳动青训营(后端组)的成员。本文由博主本人整理自该营的日常学习实践,首发于稀土掘金:🔗Go语言入门指南:基础语法和常用特性解析 | 青训营 本文主要梳理自第六届字节跳动青训营ÿ…...
3.解构赋值
解构赋值是一种快速为变量赋值的简洁语法,本质上仍然是为变量赋值。 3.1数组解构 数组解构是 将数组的单元值快速批量赋值给一系列变量 的简洁语法 1.基本语法: (1)赋值运算符左侧的[ ]用于批量声明变量,右侧数组的单元值将被赋…...
ChatGPT在智能游戏和游戏AI中的应用如何?
ChatGPT在智能游戏和游戏AI领域具有广泛的应用潜力,可以为游戏体验增添智能和交互性,同时也有助于游戏开发者创造更丰富、更引人入胜的游戏内容。以下将详细探讨ChatGPT在智能游戏和游戏AI中的应用。 ## 1. 游戏角色的智能化 在角色扮演游戏࿰…...
【安卓串口通信】
安卓串口通信需要使用到串口适配器和USB OTG线。首先需要在Android设备上安装串口调试助手或其他支持串口通信的应用程序。然后将串口适配器连接到Android设备,使用USB OTG线连接即可。 接下来,您需要打开串口调试助手或其他应用程序,…...
电气测试相关
项目: 长期过电压 瞬态过电压 瞬态欠压 跳跃启动 卸载 纹波电压 电源电压缓慢下降和上升 电源电压缓慢下降、快速上升 复位行为 短暂中断 启动脉冲 带电气系统控制的电压曲线 引脚中断 连接器中断 反极性 信号线和负载电路短路 启动行为 对分流不…...
ProsperEx 的野望:借势 RWA 浪潮,构建全新的链上衍生品体系
真实资产代币化(RWA)并不是一个新概念了,以 USDT、USDC、DAI 等一系列美元稳定币是行业内最早的 RWA 概念资产,这些资产以美元为价值基础通过不同信用的机制,将其价值映射至链上,并以加密货币的形式体现&am…...
Spring Data JPA 详解
目录 一、概述1.1 JPA简介1.2 Spring Data JPA简介 二、配置及应用2.1 环境配置2.2 依赖添加2.3 实体类创建2.4 Repository接口创建2.5 示例程序运行 三、实体映射3.1 注解3.2 关系映射 四、Repository接口4.1 基本增删改查4.2 自定义查询方法4.3 使用 Sort 和 Pageable 进行排…...
NZ系列工具NZ02:VBA读取PDF使用说明
【分享成果,随喜正能量】时光绽放并蒂莲,更是一份殷殷嘱托,更是一份诚挚祝福,是一份时光馈赠,又是一份时光陪伴。。 我的教程一共九套及VBA汉英手册一部,分为初级、中级、高级三大部分。是对VBA的系统讲解…...
Autocasting和GradScaler
Autocasting和GradScaler是什么 torch.autocast 是一个上下文管理器,它可以将数据类型从 float32 自动转换为 float16。这可以提高性能,因为 float16 比 float32 更小,因此可以更快地处理。torch.cuda.amp.GradScaler 是一个类,它…...
头条移动端项目Day03 —— 自媒体素材管理、自媒体文章管理、自媒体文章发布
❤ 作者主页:欢迎来到我的技术博客😎 ❀ 个人介绍:大家好,本人热衷于Java后端开发,欢迎来交流学习哦!( ̄▽ ̄)~* 🍊 如果文章对您有帮助,记得关注、点赞、收藏、…...
【ARM 嵌入式 编译系列 9-- GCC 编译符号表(Symbol Table)的详细介绍】
文章目录 什么是符号表符号表的作用是什么如何生成符号表符号表中的数据类型有哪些?符号表与map文件什么关系? 上篇文章:ARM 嵌入式 番外篇 编译系列 8 – RT-Thread 编译命令 Scons 详细讲解 什么是符号表 在 ARM GCC 中,符号表…...
Apache Doris 入门教程27:BITMAP精准去重和HLL近似去重
BITMAP 精准去重 背景 Doris原有的Bitmap聚合函数设计比较通用,但对亿级别以上bitmap大基数的交并集计算性能较差。排查后端be的bitmap聚合函数逻辑,发现主要有两个原因。一是当bitmap基数较大时,如bitmap大小超过1g,网络/磁盘…...
bug总结
bug总是意外的出现,对于语法问题导致的bug是容易排查的,对于逻辑的bug和环境的bug往往令人头疼。在这里,将这些收集起来。、 【1-8来自对博客认输了!这些Bug让我目瞪口呆!_电脑放青藏高原共振是真的?_Truda.的博客-C…...
DC电源模块的高转换率
BOSHIDA DC电源模块的高转换率 DC电源模块是将交流电转换为直流电供应设备使用的装置,是现代工业制造和电子产品中不可或缺的组件之一。高转换率是DC电源模块最重要的性能之一,它直接影响着电源的效率、功耗和发热等方面,因此也深受设计师的关…...
Daz to Blender终极转换指南:7个专业技巧解决95%的转换难题
Daz to Blender终极转换指南:7个专业技巧解决95%的转换难题 【免费下载链接】DazToBlender Daz to Blender Bridge 项目地址: https://gitcode.com/gh_mirrors/da/DazToBlender Daz to Blender桥接插件是连接Daz Studio和Blender这两个顶尖3D创作工具的关键桥…...
别再死记硬背了!用Multisim仿真带你直观理解MOSFET放大电路的静态工作点
用Multisim仿真解锁MOSFET放大电路:静态工作点的可视化教学革命 学习模拟电子技术时,许多初学者都会在MOSFET放大电路的静态工作点分析上卡壳。那些抽象的曲线、复杂的公式和难以捉摸的"预夹断"概念,常常让人望而生畏。但今天&…...
[ESP32]:利用MicroPython调用C库实现高效硬件控制
1. 为什么要在MicroPython中调用C库? 很多刚接触ESP32开发的工程师可能会有疑问:既然MicroPython已经足够简单易用,为什么还要费劲调用C库呢?这里有个很形象的比喻——就像你平时吃饭用筷子很方便,但遇到牛排时就需要…...
Qwen3.5-9B:高性能GPU算力下的代码生成效果实测
Qwen3.5-9B:高性能GPU算力下的代码生成效果实测 1. 开篇:当大模型遇上高性能GPU 最近在星图GPU平台上测试了Qwen3.5-9B的代码生成能力,结果确实让人眼前一亮。作为一款专注于代码生成的大模型,Qwen3.5-9B在高性能GPU算力的加持下…...
BetterGI原神智能辅助工具完全指南:从安装到精通
BetterGI原神智能辅助工具完全指南:从安装到精通 【免费下载链接】better-genshin-impact 📦BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一条龙 | 全连音游 - UI Aut…...
LaTeX参考文献中动态控制会议与期刊缩写显示的两种高效方法
1. 为什么需要动态控制会议与期刊缩写 写论文时最头疼的事情之一,就是参考文献格式的反复调整。特别是当导师突然要求"所有会议名称后面要加上缩写",或者期刊投稿时被编辑指出"缩写格式不符合要求"时,很多同学的第一反应…...
FLUX.1-dev像素艺术生成器教程:提示词工程与16-bit风格关键词库
FLUX.1-dev像素艺术生成器教程:提示词工程与16-bit风格关键词库 1. 像素幻梦工坊简介 像素幻梦(Pixel Dream Workshop)是基于FLUX.1-dev扩散模型构建的新一代像素艺术生成工具。它采用明亮的16-bit像素风格界面设计,为创作者提供…...
SITS2026真实战报:如何在3个月内将1280B参数MoE模型部署至边缘-云协同产线,吞吐提升3.8倍?
第一章:SITS2026案例:千亿参数大模型落地实践 2026奇点智能技术大会(https://ml-summit.org) SITS2026是面向金融风控与实时决策场景构建的千亿参数稀疏混合专家(MoE)大模型,已在某国有银行核心反欺诈平台完成全链路…...
Pixel Language Portal 在VSCode中的深度应用:Codex风格编程辅助
Pixel Language Portal 在VSCode中的深度应用:Codex风格编程辅助 1. 智能编程助手的崛起 想象一下这样的场景:当你正在VSCode中编写代码时,刚输入几个字符,编辑器就能预测你接下来要写的内容;当你卡在某个函数实现上…...
自题库-智能题库管理系统V1.0
自题库V1.0,是我个人根据自己的需求编程的一个款软件。原本打算是用别人既有的软件,总觉得存在问题不符合自己的需求,主要情况如下:1、做题界面不友善;2、不能自己新建题库;3、题目不能加载图片,…...
