• 正文
  • 推薦器件
  • 相關推薦
申請入駐 產(chǎn)業(yè)圖譜

RISC-V公測平臺發(fā)布 · 使用YCSB測試SG2042上的MySQL性能

2023/08/11
2323
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

實驗介紹:

YCSB(全稱為Yahoo! Cloud Serving Benchmark),該性能測試工具由Java語言編寫(在之前的MC文章中也提到過這個,如果沒看過的讀者可以去看看之前MC那一期),主要用于云端或者服務器端的數(shù)據(jù)庫性能測試工具,其內(nèi)部涵蓋了常見的NoSQL數(shù)據(jù)庫產(chǎn)品,如Cassandra、MongoDB、HBase、Redis等等。

MySQL數(shù)據(jù)庫服務是一個完全托管的數(shù)據(jù)庫服務,可使用世界上最受歡迎的開源數(shù)據(jù)庫來部署云原生應用程序。它是百分百由MySQL原廠開發(fā),管理和提供支持。

當然,本次實驗所用到的平臺還是衡山-2(HS-2)RISC-V通用主板,該主板是一款專為開發(fā)者設計的標準mATX主板,該主板最高支持128GB內(nèi)存,通過類似PC的豐富的接口和較強的兼容性,賦予開發(fā)者桌面級的RISC-V開發(fā)體驗。

HS-2主板搭載了一顆國產(chǎn)的服務器級RISC-V 64核處理器(SG2042)。SG2042是目前已量產(chǎn)的性能最高的RISC-V處理器,主要針對高性能計算領域需求設計,適用于科學計算、工程計算、AI計算、融合計算等大算力應用場景。

實驗材料:

MySQL/MySQL源代碼

一臺SG2042服務器(HS-2)

TPCC源代碼

YCSB源代碼

JDK(本教程使用系統(tǒng)自帶的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

結(jié)果提示SHM_Buffer.hpp上的代碼報錯,后來發(fā)現(xiàn)當時不支持RISC-V平臺編譯,因此在此建議還是通過包管理器安裝mysql。

注意,如果是之前已經(jīng)卸載并重裝過mysql,如果出現(xiàn)sock無法訪問,請參考:

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

如果提示mysql.cnf出錯,只要執(zhí)行以下命令即可修復。

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

初始化設置:

sudo mysql_secure_installation

發(fā)現(xiàn)沒有權限

進入mysql

sudo mysql

執(zhí)行以下命令:

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。不過系統(tǒng)以已經(jīng)提前提供了JDK11,因此無需另外安裝JDK。

登錄數(shù)據(jù)庫,創(chuàng)建數(shù)據(jù)庫和表:

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內(nèi)容如下:
db.driver=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/ycsb
db.user=root
db.passwd=[你的密碼]

然后下載所需要的數(shù)據(jù)庫驅(qū)動

wget

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

解壓并將驅(qū)動安裝到指定文件夾下:

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/

載入數(shù)據(jù):

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那就說明已經(jīng)成功將鏈接改到python 2了。

然后重新嘗試執(zhí)行載入數(shù)據(jù)并跑分

跑分結(jié)果:

[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

總結(jié):

從跑分結(jié)果來看,SG2042在數(shù)據(jù)庫應用方面還是比較不錯的,但是由于YCSB使用的是Python 2,而Python 2已于2020年1月1日停止支持,因此也希望YCSM盡快遷移到Python 3上。

參考資料:

MySQL中文官網(wǎng):

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

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
PIC32MX795F512LT-80I/PT 1 Microchip Technology Inc 32-BIT, FLASH, 80 MHz, RISC MICROCONTROLLER, PQFP100, 12 X 12 MM, 1 MM HEIGHT, LEAD FREE, PLASTIC, TQFP-100

ECAD模型

下載ECAD模型
$11.46 查看
STM32F756ZGY6TR 1 STMicroelectronics High-performance and DSP with FPU, Arm Cortex-M7 MCU with 1 Mbyte of Flash memory, 216 MHz CPU, Art Accelerator, L1 cache, HW crypto, SDRAM, TFT

ECAD模型

下載ECAD模型
$12.73 查看
AT89C51CC03CA-RLTUM 1 Microchip Technology Inc IC MCU 8BIT 64KB FLASH 44VQFP
$10.78 查看

相關推薦

登錄即可解鎖
  • 海量技術文章
  • 設計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄