首页 > 数据库 >RISC-V公测平台发布 · 使用YCSB测试SG2042上的MySQL性能

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

时间:2023-08-11 10:46:37浏览次数:42  
标签:tar YCSB MySQL 公测 us RISC 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.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

发现没有权限

进入mysql

sudo mysql

执行以下命令:

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

 

  • 关于RISC-V公共测试平台

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性能(本篇)

欢迎投稿,发送至[email protected]

标签:tar,YCSB,MySQL,公测,us,RISC,mysql
From: https://www.cnblogs.com/lsxd/p/17622411.html

相关文章

  • RISC-V走向开放服务器规范
    原文:RISC-VMovingTowardOpenServerSpecification作者:AgamShah转载自:https://www.hpcwire.com/2023/07/24/risc-v-moving-toward-open-server-specification/中文翻译:2023年7月24日RISC-VInternational目前正在起草一份可以标准化RISC-V服务器芯片和系统开发的规范,RISC-......
  • RISC-V公测平台发布 · UnixBench完整测试
    简介UnixBench是一个开源的GPLv2许可的工具,它提供了对类Unix系统性能的基本指标。通过运行UnixBench,可以获得有关系统性能的基本指标,用于与其他系统进行比较,也可以作为改进系统性能的参考。但UnixBench并不是一个综合性能评估工具,它只提供了一些基本的性能指标。要全面评估系统......
  • RISC-V云测平台:Compiling The Fedora Linux Kernel Natively on RISC-V
      注释:编译Fedora,HS-264核RISC-V服务器比Ryzen5700x快两倍!---以下是blog正文---#CompilingTheFedoraLinuxKernelNativelyonRISC-V##FedoraRISC-VSupportThereisongoingworktoFedoratosupportRISC-Vhardware.AsofrightnowtheFedoradocume......
  • RISC-V架构的演变
    随着苹果基于ARM的硅和新的RISC-VCPU的推出,对于CPU开发来说,这是一个令人兴奋的时刻,尽管开发人员的旅程目前对后者来说有点坎坷。我最喜欢的理论是,没有发生是孤独的,而只是重复了以前发生过的事情,也许经常发生过。马克·吐温认为,生活有重演的倾向。我们可以在苹果Macintosh的CPU......
  • 64核RISC-V服务器能打了吗?
    最近看到“澎峰科技”的微信公众号,看到他们发布了第一款RISC-V服务器,芯片是算能的SG2042,带64个RISC-V核心(阿里平头哥的C910v核),2.0GHz主频,最大支持128GB内存。这应该算是全球第一款RISC-V服务器吧,找了一些资料。和大家一起品品。处理器采用贴片,不是那种socket。没什么好评论的。......
  • 阿里云宣布 Serverless 应用引擎 SAE2.0 将公测上线,多款产品全新升级
    7月31日,阿里云智能云原生应用平台负责人丁宇宣布,Serverless应用引擎SAE2.0将于8月7日公测上线,开源版将于9月30日发布。本次升级围绕极简体验、标准开放、极致弹性三大优势展开,应用冷启动全面提效,支持缩容到0,应用成本下降 40%以上。此外,阿里云还带来容器服务Serv......
  • QEMU启动RISC-V架构OpenEuler并配置OSC环境
    基于Ubuntu18.04,QEMU8.0.2,OpenEuler22.09安装QEMU安装基础编译工具sudoaptinstallbuild-essentialautoconfautomakeautotools-devpkg-configbccurl\gawkgitbisonflextexinfogperflibtoolpatchutilsmingw-w64libmpc-dev\......
  • “造芯”之 Proprietary闭源 与 Open Source开源(RISC-V) 对比
    一、造芯的RISC-V(OpenSource)与Proprietary历史鉴证,共和的Top-Down与Bottom-Up的民主是统一的,OpenSource开源与Proprietary闭源可完美的共存。“造芯”领域的也会并存:●Bottom-Up的RISC-V(OpenSource开源的)●Top-Down的ARM/RISC/Intel/AMD/NVIDIA…(Proprietary专......
  • RISCV处理器-存储器模型
    之前一直没怎么弄清楚fence以及fence.i指令,现在重新回顾一下。可选的原子性存储器指令扩展"A" FENCEfence指令用于顺序话其他RISCV线程、外部设备或者协处理器看到的设备I/O和存储器访问。在所有predecessor执行到fence前的任何操作前,处于fence指令后的successorset种的任......
  • riscv处理器——除法运算实现
    采用试商法实现除法运算,试商法的计算过程如下:1.每次除法运算至少需要33个时钟周期才能完成,用状态机来实现;2.主要需要判断并执行的指令有4种类:1wireop_div=(op_r==`INST_DIV);//有符号除法,结果为商2wireop_divu=(op_r==`INST_DIVU);//无符号除法,结果为商3wire......