ScalarDL ベンチマーク ツール
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
このチュートリアルでは、ScalarDL のベンチマーク ツールを実行する方法について説明します。 ベンチマークは、一連の標準に対してシステムがどのように動作するかを評価するのに役立ちます。
ワークロードのベンチマーク
- SmallBank
- TPC-C (新規注文および支払いトランザクションのみ)
- YCSB (ワークロード A、C、および F)
前提条件
- 次の Java 開発キット (JDK) のいずれか:
- Oracle JDK LTS バージョン 8
- OpenJDK LTS バージョン 8
- 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:
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
さらに、次のオプションが利用可能です。
--only-pre
。 証明書とコントラクトを登録し、データをロードするだけです。--only-process
。 ベン チマークのみを実行します。--除く-pre
証明書とコントラクトの登録とデータのロードを行わずにジョブを実行します。--プロセスを除く
。 ベンチマークを実行せずにジョブを実行します。
共通パラメータ
名前 | 説明 | デフォルト |
---|---|---|
concurrency | ベンチマーク用のスレッドの数。 | 1 |
run_for_sec | ベンチマークの継続時間 (秒単位)。 | 60 |
ramp_for_sec | ベンチマーク前の立ち上げ時間 (秒単位)。 | 0 |
ワークロード固有のパラメータ
ワークロードを選択すると、使用可能なパラメータが表示されます。
- SmallBank
- TPC-C
- YCSB
名前 | 説明 | デフォルト |
---|---|---|
num_accounts | ベンチマークの対象となる銀行口座の数。 | 100000 |
load_concurrency | ロードするスレッドの数。 | 1 |
load_batch_size | 単一の読み込みトランザクション内のアカウントの数。 | 1 |
名前 | 説明 | デフォルト |
---|---|---|
num_warehouses | ベンチマーク用の倉庫の数 (スケールファクター)。 | 1 |
rate_payment | 支払いトランザクションの割合。 | 50 |
load_concurrency | ロードするスレッドの数。 | 1 |
名前 | 説明 | デフォルト |
---|---|---|
record_count | ベンチマークのレコード数。 | 1000 |
payload_size | 各レコードのペイロード サイズ (バイト単位)。 | 1000 |
ops_per_tx | 単一トランザクション内の操作の数。 | 2 |
workload | ワークロードのタイプ (A、C、または F)。 | A |
load_concurrency | ロードするスレッドの数。 | 1 |
load_batch_size | 単一のロードトランザクション内のレコードの数。 | 1 |