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

ScalarDL ベンチマーク ツール

注記

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

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

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

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

前提条件

  • 次の Java 開発キット (JDK) のいずれか:
  • Gradle
  • Kelpie
    • Kelpie は、システムのベンチマークや検証などのエンドツーエンドのテストを実行するためのフレームワークです。 Kelpie Releases から最新バージョンを入手し、アーカイブ ファイルを解凍します。
注記

現在、ベンチマーク ツールを実行するときに使用できるのは JDK 8 のみです。

環境をセットアップする

ベンチマーク ツールには次のものが必要です。

  • ベンチマークを実行するクライアント
  • 対象の Ledger サーバー
  • ターゲット Auditor サーバー (オプション)

上記のコンポーネントをセットアップし、次のスタート ガイドに従ってクライアント、Ledger、および Auditor (オプション) のプロパティを構成します。

注記

クライアント SDK をダウンロードして証明書を手動で登録する必要はありません。 このチュートリアルで後ほど説明するように、ベンチマーク ツールは必要な証明書とコントラクトを自動的に登録します。

ベンチマーク ツールをセットアップする

次のセクションでは、ベンチマーク ツールのセットアップ方法について説明します。

ScalarDL ベンチマーク リポジトリのクローンを作成します。

ターミナルを開き、次のコマンドを実行して ScalarDL ベンチマーク リポジトリのクローンを作成します。

$ git clone https://github.com/scalar-labs/scalardl-benchmarks

次に、次のコマンドを実行して、ベンチマーク ファイルが含まれるディレクトリに移動します。

$ cd scalardl-benchmarks

ツールを構築する

ベンチマーク ツールを構築するには、次のコマンドを実行します。

$ ./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。 証明書とコントラクトを登録し、データをロードするだけです。
  • --only-process。 ベンチマークのみを実行します。
  • --除く-pre 証明書とコントラクトの登録とデータのロードを行わずにジョブを実行します。
  • --プロセスを除く。 ベンチマークを実行せずにジョブを実行します。

共通パラメータ

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

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

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

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