RISC-V パブリック ベータ プラットフォームがリリース · YCSB を使用して SG2042 で MySQL パフォーマンスをテスト

実験の紹介:

YCSB (正式名: Yahoo! Cloud Serving Benchmark)、このパフォーマンス テスト ツールは Java 言語で書かれています (これについては、以前の MC 記事でも言及されています。まだ見ていない場合は、以前の MC の問題を確認してください)。主にクラウドまたはサーバー側のデータベース パフォーマンス テスト ツールで、Cassandra、MongoDB、HBase、Redis などの一般的な NoSQL データベース製品をカバーします。

MySQL Database Service は、世界で最も人気のあるオープンソース データベースを使用してクラウドネイティブ アプリケーションを展開するためのフルマネージド データベース サービスです。これは 100% MySQL によって開発、管理、サポートされています。

もちろん、この実験で使用されたプラットフォームは依然として Hengshan-2 (HS-2) RISC-V ユニバーサル マザーボードです. このマザーボードは、開発者向けに特別に設計された標準 mATX マザーボードです. マザーボードは最大 128GB のメモリをサポートしています. PC 経由-like 豊富なインターフェイスと強力な互換性により、開発者はデスクトップレベルの RISC-V 開発体験を得ることができます。

HS-2マザーボードは、国内サーバーグレードのRISC-V 64コアプロセッサ(SG2042)を搭載しています。SG2042 は、現在量産されている最高性能の RISC-V プロセッサであり、主に高性能コンピューティングのニーズに合わせて設計されており、科学コンピューティング、エンジニアリング コンピューティング、AI コンピューティング、フュージョン コンピューティングなどの大規模なコンピューティング能力アプリケーション シナリオに適しています。 。

実験材料:

MySQL/MySQL ソースコード

SG2042 サーバー (HS-2) 1 台

TPCC ソースコード

YCSB ソースコード

JDK (このチュートリアルでは、システムに付属の JDK 11 を使用します)

実験手順:

MySQL をインストールします。

方法 1: apt 経由で直接インストールする

sudo apt install mysql-server

方法 2: コンパイルしてインストールする (この方法はブロックされています)

ソースコードをダウンロードする

ウィゲット

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 にはブーストが必要であり、ブーストを直接ダウンロードすると時間がかかるため、ブーストを手動でダウンロードすることを選択します。

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 ビルド フォルダーに戻ります。

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 シェルを終了します

次に、YCSB テストを実行します。

GetYCSB

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=[你的密码]

次に、必要なデータベースドライバーをダウンロードします

ウィゲット

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

(上記の 2 つの手順は時間がかかりますが、コーヒーを淹れたり、映画を観たりして待っても構いません)

Python エラーが表示される場合は、YCSB が Python 2 コードを使用しているためです。誰かが Python 3 サポートをメイン リポジトリとマージしようとしましたが、マージされていません (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 中国語公式 Web サイト:

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

YCSB の jdbc ドキュメント

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

ycsb を Python3 に移植し、Python2 互換にもします #1421(Github)

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

MySQL サーバーが RISC-V 64 上で構築できない

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

本文の終わり


  • HS-2について

HS-2 RISC-V ユニバーサル マザーボードは、Pengfeng Technology とそのパートナーが共同開発した開発者向けに設計された標準 mATX マザーボードで、Pengfeng Technology が RISC-V 高性能サーバー用にカスタマイズおよび開発したソフトウェア パッケージがプリインストールされています。さまざまな標準ベンチマーク、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パブリックベータプラットフォームリリース・ストリーム帯域幅完全テスト

  2.  RISC-Vパブリックベータプラットフォームがリリース · Minecraft MohistMC

  3.  RISC-Vパブリックベータプラットフォームリリース・初のWEBサーバー「Hello RISC-V world!」

  4.  RISC-Vパブリックベータプラットフォームがリリース·SG2042でk3sをプレイする方法

  5. 「RISC-V成長日記」ブログ公開、RISC-Vサーバー上で稼働する初のブログ?

  6. RISC-V パブリック ベータ プラットフォームがリリースされました: SG2042 で OpenMPI をプレイする方法

  7. RISC-V パブリック ベータ プラットフォームがリリースされました: Fedora Linux カーネルを RISC-V 上でネイティブにコンパイルする

  8.  RISC-Vパブリックベータプラットフォームリリース・Unixベンチ完全テスト

  9. RISC-V パブリック ベータ プラットフォームがリリース · YCSB を使用して SG2042 で MySQL パフォーマンスをテストする (この記事)

おすすめ

転載: blog.csdn.net/weixin_45571628/article/details/132215927