ScalarDL ベンチマークツール
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてくだ さい。
このチュートリアルでは、ScalarDL のベンチマークツールを実行する方法について説明します。ベンチマークは、一連の標準に対してシステムがどのように動作するかを評価するのに役立ちます。
ワークロードのベンチマーク
- SmallBank
- TPC-C (新規注文および支払いトランザクションのみ)
- YCSB (ワークロード A、C、および F)
前提条件
- 次の Java Development Kit (JDK) のいずれか:
- Oracle JDK LTS バージョン 8
- OpenJDK LTS バージョン 8
- Gradle
- Kelpie
- Kelpie は、システムのベンチマークや検証などのエンドツーエンドのテストを実行するためのフレームワークです。Kelpie Releases から最新バージョンを入手し、アーカイブファイルを解凍します。
現在、ベンチマークツールを実行するときに使用できるのは JDK 8 のみです。
環境をセットアップする
ベンチマークツールには次のものが必要です。
- ベンチマークを実行するクライアント
- 対象の Ledger サーバー
- ターゲット Auditor サーバー (オプション)
上記のコンポーネントをセットアップし、次のスタートガイドに従ってクライアント、Ledger、および Auditor (オプション) のプロパティを設定します。
Client SDK をダウンロードして証明書を手動で登録する必要はありません。このチュートリアルで後ほど説明するように、ベンチマークツールは必要な証明書とコントラクトを自動的に登録します。
ベンチマークツールをセットアップする
次のセクションでは、ベンチマークツールのセットアップ方法について説明します。
ScalarDL ベンチマークリポジトリのクローンを作成します。
ターミナルを開き、次のコマンドを実行して ScalarDL ベンチマークリポジトリのクローンを作成します。
git clone https://github.com/scalar-labs/scalardl-benchmarks
次に、以下のコマンドを実行して、ベンチマークファイルが含まれるディレクトリに移動します。
cd scalardl-benchmarks
クライアント SDK バージョンの変更
ScalarDL と Client SDK の互換性 に基づいて、ScalarDL Java Client SDK のバージョンが対象の ScalarDL Ledger および Auditor でサポートされているバージョンであるかどうかを build.gradle ファイルで確認します。サポートされていない場合は、build.gradle ファイル内の次の部分の <VERSION> を X.Y.Z のようなバージョン (たとえば 3.8.5) に変更します。
dependencies {
implementation group: 'com.google.inject', name: 'guice', version: '5.0.1'
implementation group: 'com.scalar-labs', name: 'kelpie', version: '1.2.3'
implementation group: 'com.scalar-labs', name: 'scalardl-java-client-sdk', version: '<VERSION>'
implementation group: 'io.github.resilience4j', name: 'resilience4j-retry', version: '1.3.1'
}
ツールを構築する
ベンチマークツールを構築するには、次のコマンドを実行します。
./gradlew shadowJar
ベンチマーク設定ファイルを準備する
ベンチマークを実行するには、ベンチマーク設定ファイルを準備する必要があります。設定ファイルには、少なくとも実行するワ ークロードモジュールの場所とクライアント設定が必要です。
以下は、TPC-C ベンチマークを実行するための設定例です。client_config の下の設定は、以前にセットアップしたベンチマーク環境と一致する必要があります。
あるいは、 .toml ファイルで各クライアント設定項目を指定する代わりに、ScalarDL クライアントプロパティファイルを使用することもできます。config_file が指定されている場合 (以下でコメントアウトされています)、client_config の下にある他のすべての設定は無視されます。
[modules]
[modules.preprocessor]
name = "com.scalar.dl.benchmarks.tpcc.TpccLoader"
path = "./build/libs/scalardl-benchmarks-all.jar"
[modules.processor]
name = "com.scalar.dl.benchmarks.tpcc.TpccBench"
path = "./build/libs/scalardl-benchmarks-all.jar"
[modules.postprocessor]
name = "com.scalar.dl.benchmarks.tpcc.TpccReporter"
path = "./build/libs/scalardl-benchmarks-all.jar"
[client_config]
config_file = "/<PATH_TO>/client.properties"
#ledger_host = "localhost"
#auditor_host = "localhost"
#auditor_enabled = "true"
#cert_holder_id = "test_holder"
#certificate = "/<PATH_TO>/client.pem"
#private_key = "/<PATH_TO>/client-key.pem"
設定ファイル内のモジュールに渡すパラメータを定義できます。詳細については、以 下のサンプル設定ファイルと、共通パラメータで使用可能なパラメータを参照してください。
- SmallBank:
smallbank-benchmark-config.toml - TPC-C:
tpcc-benchmark-config.toml - YCSB:
ycsb-benchmark-config.toml
ベンチマークを実行する
ベンチマークを選択し、コマンドに従ってベンチマークを実行します。
- SmallBank
- TPC-C
- YCSB
SmallBank ベンチマークを実行するには、次のコマンドを実行します。<PATH_TO_KELPIE> を Kelpie ディレクトリへのパスに置き換えます。
/<PATH_TO_KELPIE>/bin/kelpie --config smallbank-benchmark-config.toml
TPC-C ベンチマークを実行するには、次のコマンドを実行します。<PATH_TO_KELPIE> を Kelpie ディレクトリへのパスに置き換えます。
/<PATH_TO_KELPIE>/bin/kelpie --config tpcc-benchmark-config.toml
YCSB ベンチマークを実行するには、次のコマンドを実行します。<PATH_TO_KELPIE> を Kelpie ディレクトリへのパスに置き換えます。
/<PATH_TO_KELPIE>/bin/kelpie --config ycsb-benchmark-config.toml