メインコンテンツまでスキップ
バージョン: 3.9

ScalarDL ベンチマークツール

注記

このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。

このチュートリアルでは、ScalarDL のベンチマークツールを実行する方法について説明します。ベンチマークは、一連の標準に対してシステムがどのように動作するかを評価するのに役立ちます。

ワークロードのベンチマーク

  • SmallBank
  • TPC-C (新規注文および支払いトランザクションのみ)
  • YCSB (ワークロード A、C、および F)

前提条件

  • 次の Java Development Kit (JDK) のいずれか:
  • 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.gralde ファイルで確認します。サポートされていない場合は、build.gradle ファイル内の次の部分の <VERSION>X.Y.Z のようなバージョン (たとえば 3.9.4) に変更します。

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 ベンチマークを実行するには、次のコマンドを実行します。<PATH_TO_KELPIE> を Kelpie ディレクトリへのパスに置き換えます。

/<PATH_TO_KELPIE>/bin/kelpie --config smallbank-benchmark-config.toml

さらに、次のオプションが利用可能です。

  • --only-pre。証明書とコントラクトの登録、およびデータのロードのみを実行します。
  • --except-pre 証明書とコントラクトの登録とデータのロードを行わずにジョブを実行します。

--only-pre オプションを使用して初期化が完了したら、--except-pre オプションを使用してベンチマークを複数回実行できます。

共通パラメータ

名前説明デフォルト
concurrencyベンチマーク用のスレッドの数。1
run_for_secベンチマークの継続時間 (秒単位)。60
ramp_for_secベンチマーク前の立ち上げ時間 (秒単位)。0

ワークロード固有のパラメータ

ワークロードを選択すると、使用可能なパラメータが表示されます。

名前説明デフォルト
num_accountsベンチマークの対象となる銀行口座の数。100000
load_concurrencyロードするスレッドの数。1
load_batch_size単一の読み込みトランザクション内のアカウントの数。1