AHBench は、Alibaba Cloud Lindorm チームによって開発されたベンチマークツールキットです。AHBench を使用すると、数回クリックするだけで Lindorm クラスターまたは HBase クラスターのベンチマークを実行できます。
はじめに
AHBench ツールキットには、Yahoo! Cloud Serving Benchmark (YCSB) ソフトウェアが含まれています。YCSB は、テストセット、テストプロセスコントロール、結果の集約などの特徴を提供します。AHBench の構成はシンプルで、数回クリックするだけでベンチマークテストを実行できます。
準備
ECS インスタンスにストレステストクライアントをデプロイします。ネットワーク接続を確保するには、Lindorm インスタンスと ECS インスタンスが次の要件を満たしていることを確認してください。ECS インスタンスの情報を表示する方法の詳細については、「インスタンス情報を表示する」をご参照ください。
Lindorm インスタンスと ECS インスタンスは同じリージョンにデプロイされます。ネットワーク遅延を減らすために、2 つのインスタンスを同じゾーンにデプロイすることをお勧めします。
Lindorm インスタンスと ECS インスタンスのネットワークタイプは同じです。
説明セキュリティを向上させるために、2 つのインスタンスを VPC にデプロイすることをお勧めします。
インスタンスのネットワークタイプを [VPC] に設定する場合は、インスタンスに同じ VPC ID を指定していることを確認してください。
ストレステストクライアントの IP アドレスを Lindorm インスタンスのホワイトリストに追加します。
AHBench ツールキットをダウンロードし、パッケージをストレステストクライアントにアップロードしてから、パッケージを抽出します。
使用上の注意
ベンチマーク対象のシステムは、ストレステスト中に過負荷になり、応答を停止する可能性があります。本番環境では AHBench を使用しないでください。
AHBench は、テストに ahbenchtest-read テーブルと ahbenchtest-write テーブルを使用します。これらのテーブルは、テスト中に削除されて再作成される可能性があります。テーブルを削除しても問題が発生しないことを確認してください。
テストするクラスターに十分なストレージ容量があることを確認してください。
Lindorm クラスターは、仮想ランタイム環境を提供する ECS インスタンス上で実行されます。同じ仕様のクラスターのパフォーマンスは、5% から 10% の範囲で変動する可能性があります。
ランタイム環境
ストレステストクライアントのランタイム環境は、次の要件を満たしている必要があります。
クライアントは Linux を実行します。
JDK 1.8 以降
Python 2.7
クライアントには、少なくとも 16 個の専用 CPU コアが必要です。
クラスターエンドポイントの構成
AHBench/conf/hbase-site.xml ファイルで、ベンチマーク対象の Lindorm クラスターまたは HBase クラスターのエンドポイントを指定します。
Lindorm へのアクセス方法の詳細については、「HBase Java API を使用したアプリケーション開発」をご参照ください。次の設定を hbase-site.xml ファイルに追加します。
<property>
<name>hbase.client.connection.impl</name>
<value>org.apache.hadoop.hbase.client.AliHBaseUEClusterConnection</value>
</property>環境変数の設定
AHBench/conf/ahbench-env.properties ファイルで AHBench の環境変数を構成します。
次のコマンドを実行して ahbench-env.properties ファイルを開きます。
vi AHBench/conf/ahbench-env.propertiesJava 開発キット (JDK) がインストールされているパスを指定します。例:
JAVA_HOME=/usr/java/jdk1.8.0/。JDK がすでにシステムパスにインストールされている場合は、このステップをスキップしてください。テストする HBase クラスターのバージョンを構成します。クラスターのバージョンが 1.x の場合は、パラメーターを 1 に設定します。クラスターのバージョンが 2.x の場合は、パラメーターを 2 に設定します。
HBASE_VERSION=2
ストレステストに関連するパラメーターの設定(オプション)
AHBench/conf/ahbench-settings.properties ファイルを開き、圧縮アルゴリズム、エンコーディングアルゴリズム、スレッド数、データサイズ、フィールドサイズを定義するパラメーターを構成します。デフォルト値を使用するか、必要に応じて値を変更できます。
特定の Lindorm バージョンでのみサポートされるパラメーターがあります。たとえば、Zstandard 圧縮と INDEX エンコーディングは Alibaba Cloud Lindorm でのみサポートされます。Zstandard と INDEX を構成して、パフォーマンスを向上させることができます。
# テストテーブルの圧縮アルゴリズムを指定します。
# 有効値: NONE、LZO、ZSTD、SNAPPY、GZ、LZ4、ZSTD など。
# 一部の圧縮アルゴリズムは、特定のテストシステムではサポートされていません。
# Alibaba Cloud Lindorm には ZSTD を選択することをお勧めします。
ahbench.table.compression=SNAPPY
# テストテーブルのエンコーディングアルゴリズムを指定します。有効値:
# NONE DIFF INDEX
# 一部のエンコーディングアルゴリズムは、特定のテストシステムではサポートされていません。
# Alibaba Cloud Lindorm には INDEX エンコーディングアルゴリズムを選択することをお勧めします。
ahbench.table.encoding=DIFF
ストレステストの実行
クイックテスト
テストデータセットには 1,000 万個のエントリが含まれており、少なくとも 20 GB のストレージを占有します。 テスト時間は約 40 分で、テストシステムによって異なります。
cd AHBench ./fast_test完全テスト
テストデータセットには 20 億個のエントリが含まれており、少なくとも 2 TB のストレージを占有します。 テスト時間は約 25 時間で、テストシステムによって異なります。
cd AHBench ./full_testテストを繰り返す場合は、データインポートステップをスキップして (前のテストが正常に完了した場合)、テスト期間を短縮できます。データインポートステップをスキップした場合、テスト期間は約 3.5 時間で、テストシステムによって異なります。
cd AHBench ./full_test --skipload
テスト結果の分析
テストが完了すると、現在のディレクトリにカンマ区切り値 (CSV) ファイルが生成されます。テスト結果を Excel、Numbers、またはその他のデータ分析ソフトウェアにコピーして、テスト結果を比較または分析できます。
CSV ファイルの名前を表示します。
ls -ltr指定した CSV ファイルの内容を表示します。
cat full_throughput.csv
次の図は、CSV ファイルの内容を示しています。

FAQ
AHBench がエラーでシャットダウンした場合は、次の項目を確認してください。
JAVA_HOME が有効な値に設定されているか、Python ランタイム環境がインストールされているかを確認します。
テスト対象クラスターのエンドポイントが有効かどうかを確認します。
テスト対象クラスターの HBase バージョンが有効かどうかを確認します。
テスト対象クラスターが指定された圧縮アルゴリズムをサポートしているかどうかを確認します。
テスト対象クラスターが期待どおりに実行されているかどうかを確認します。