実験の紹介:
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.gz
cd mysql-8.0.34/
mkdir build
cd 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.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=[你的密码]
次に、必要なデータベースドライバーをダウンロードします
ウィゲット
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/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 中国語公式 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 パブリック テスト クラウド プラットフォームに関する一連の記事
-
RISC-V パブリック ベータ プラットフォームがリリースされました: SG2042 で OpenMPI をプレイする方法
-
RISC-V パブリック ベータ プラットフォームがリリースされました: Fedora Linux カーネルを RISC-V 上でネイティブにコンパイルする
-
RISC-V パブリック ベータ プラットフォームがリリース · YCSB を使用して SG2042 で MySQL パフォーマンスをテストする (この記事)