ScalarDL ベンチマーク
注記
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
このリポジトリには、ScalarDL のベンチマーク プログラムが含まれています。
利用可能なワークロード
- SmallBank
- TPC-C (新規注文および支払いトランザクションのみ)
- YCSB (ワークロード A、C、F)
前提条件
- Java (OpenJDK 8 以降)
- Gradle
- Kelpie
このベンチマークでは、システムのベンチマークや検証などのエンドツーエンドのテストを実行するためのシンプルだが一般的なフレームワークである Kelpie を使用します。 こちら から Kelpie の最新バージョ ンを入手し、アーカイブを解凍します。
使用法
環境をセットアップする
このベンチマークには次のものが必要です。
- このベンチマークを実行するクライアント
- 対象の Ledger サーバー
- ターゲット Auditor サーバー (オプション)
上記のコンポーネントをセットアップし、スタート ガイドに従ってクライアント、Ledger、および Auditor のプロパティを適切に構成します。 Client SDK をダウンロードして証明書を手動で登録する必要はないことに注意してください。 後述するように、このベンチマーク スイートは必要な証明書とコントラクトを自動的に登録します。
建てる
./gradlew shadowJar
ロードして実行する
- 設定ファイルを準備する
- 構成ファイルには、少なくとも実行するワークロード モジュールの場所とクライアント構成が必要です。 次の例は、TPC-C ベンチマークを実行する場合を示しています。 クライアント構成は、上記で設定したベンチマーク環境と一致する必要があります。 各設定項目を指定する代わりに、
client.properties
ファイルを使用できます。config_file
が指定されている場合、他のすべての設定項目は無視されます。[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]
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"
#config_file = "/path/to/client.properties" - ファイル内のモジュールに渡す静的パラメータを定義できます。 詳細については、
tpcc-benchmark-config.toml
などの設定ファイルの例と、次のセクション で使用可能なパラメータを参照してください。
- 構成ファイルには、少なくとも実行するワークロード モジュールの場所とクライアント構成が必要です。 次の例は、TPC-C ベンチマークを実行する場合を示しています。 クライアント構成は、上記で設定したベンチマーク環境と一致する必要があります。 各設定項目を指定する代わりに、
- ベンチマークを実行する
${kelpie}/bin/kelpie --config your_config.toml
${kelpie}
は、上記 でダウンロードしたアーカイブから抽出された Kelpie ディレクトリです。- 指定されたプロセスのみを実行する
--only-pre
(つまり、証明書と契約の登録とデータのロード) や--only-process
(つまり、ベンチマークの実行) などの他のオプションもあります。--reason-pre
と--Except-process
は、指定されたプロセスなしでジョブを実行します。
共通パラメータ
名前 | 説明 | デフォルト |
---|---|---|
concurrency | ベンチマーク用のスレッドの数。 | 1 |
run_for_sec | ベンチマークの継続時間 (秒単位)。 | 60 |
ramp_for_sec | ベンチマーク前の立ち上げ時間 (秒単位)。 | 0 |
ワークロード固有のパラメータ
SmallBank
名前 | 説明 | デフォルト |
---|---|---|
num_accounts | ベンチマークの対象となる銀行口座の数。 | 100000 |
load_concurrency | ロードするスレッドの数。 | 1 |
load_batch_size | 単一の読み込みトランザクション内のアカウントの数。 | 1 |
TPC-C
名前 | 説明 | デフォルト |
---|---|---|
num_warehouses | ベンチマーク用の倉庫の数 (スケールファクター)。 | 1 |
rate_payment | 支払いトランザクションの割合。 | 50 |
load_concurrency | ロードするスレッドの数。 | 1 |
YCSB
名前 | 説明 | デフォルト |
---|---|---|
record_count | ベンチマークのレコード数。 | 1000 |
payload_size | 各レコードのペイロード サイズ (バイト単位)。 | 1000 |
ops_per_tx | 単一トランザクション内の操作の数。 | 2 |
workload | ワークロードのタイプ (A、C、または F)。 | A |
load_concurrency | ロードするスレッドの数。 | 1 |
load_batch_size | 単一のロードトランザクション内のレコードの数。 | 1 |