AHBench は、Alibaba Cloud Lindorm チームによって開発されたベンチマーク テスト スイートです。Lindorm および HBase クラスターのワンクリック パフォーマンス テストをサポートしています。
はじめに
このテスト スイートには、Yahoo! Cloud Serving Benchmark (YCSB) ツールが統合されています。YCSB は、テスト セット、テスト フロー制御、結果の集約などの機能を提供します。シンプルな構成でワンクリック パフォーマンス テストを実行できます。
事前準備
-
ストレステストクライアントが ECS インスタンスにデプロイされている場合、Lindorm インスタンスと ECS インスタンスがネットワーク接続について以下の条件を満たすことを確認してください。インスタンス情報の表示方法の詳細については、「インスタンス情報の表示」をご参照ください。
-
インスタンスは同じリージョンにあります。ネットワーク遅延を減らすために、同じゾーンに配置することをお勧めします。
-
インスタンスは同じネットワークタイプです。
説明-
Virtual Private Cloud (VPC) は、より高いセキュリティを提供します。VPC を使用することをお勧めします。
-
ネットワークタイプが VPC の場合、インスタンスは同じ VPC ID を使用する必要があります。
-
-
-
ストレステストクライアントの IP アドレスを Lindorm インスタンスのホワイトリストに追加します。詳細については、「ホワイトリスト」をご参照ください。
-
AHBench テスト スイートをダウンロードし、ストレステスト クライアントにアップロードして、抽出します。
注意事項
-
ストレステストは、テスト対象システムに過負荷をかける可能性があります。このテスト ツールを本番環境で実行しないでください。
-
このテスト スイートは、テスト テーブルの名前として「ahbenchtest-read」と「ahbenchtest-write」を使用します。これらのテーブルは、テスト中に削除および再作成される場合があります。これらのテーブルが安全に削除できることを確認してください。
-
テスト クラスターに十分なストレージ容量があることを確認してください。
-
ECS は仮想実行環境を提供します。そのため、同じインスタンスタイプでのパフォーマンス テスト結果は 5% から 10% 変動する可能性があります。この変動は想定範囲内です。
実行環境
ストレステスト クライアントの実行環境が次の要件を満たしていることを確認してください。
-
Linux
-
JDK 1.8 以降
-
Python 2.7
-
クライアントには少なくとも 16 個の専用 CPU コアがあることを推奨します。
クラスターエンドポイントの構成
テスト対象の Lindorm または HBase クラスターのエンドポイントを AHBench/conf/hbase-site.xml ファイルに構成します。
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-env.properties ファイルを開くには、次のコマンドを実行します。
vi AHBench/conf/ahbench-env.properties -
JDK インストールパスを構成します。例:
JAVA_HOME=/usr/java/jdk1.8.0/。Java がすでにシステム PATH にある場合、この構成はスキップできます。 -
テスト対象の HBase クラスターのバージョンを構成します。バージョン 1.x の場合は 1 を、バージョン 2.x の場合は 2 を入力します。
HBASE_VERSION=2
テスト関連パラメーターの構成 (オプション)
AHBench/conf/ahbench-settings.properties ファイルで、圧縮、エンコーディング、スレッド数、データ量、フィールド サイズなどのテスト関連パラメーターを構成できます。デフォルトでは、変更は不要です。特定のシナリオに合わせて必要に応じてパラメーターを変更できます。
一部のパラメーターは、特定の Lindorm バージョンでのみサポートされています。たとえば、ZSTD 圧縮と INDEX エンコーディングは Lindorm でのみサポートされています。ZSTD と INDEX を構成することで、パフォーマンスを向上させることができます。
# テスト対象テーブルの圧縮アルゴリズムを構成します。オプションは次のとおりです。
# NONE、LZO、ZSTD、SNAPPY、GZ、LZ4、ZSTD など。
# テスト対象システムによっては、指定された圧縮アルゴリズムをサポートしない場合があります。
# Lindorm は ZSTD の使用を推奨します。
ahbench.table.compression=SNAPPY
# テスト対象テーブルのエンコーディング アルゴリズムを構成します。オプションは次のとおりです。
# NONE、DIFF、INDEX
# テスト対象システムによっては、指定されたエンコーディング アルゴリズムをサポートしない場合があります。
# Lindorm は INDEX の使用を推奨します。
ahbench.table.encoding=DIFF
テストの開始
-
クイック テスト セット
テスト データ量は 1,000 万行です。合計実行時間は約 40 分ですが、テスト対象システムによって異なる場合があります。このテストには、少なくとも 20 GB のストレージ容量が必要です。
cd AHBench ./fast_test -
フル テスト セット
テスト データ量は 20 億行です。合計実行時間は約 25 時間ですが、テスト対象システムによって異なる場合があります。このテストには、少なくとも 2 TB のストレージ容量が必要です。
cd AHBench ./full_testこのテストを繰り返すには、前回のテストが正常に実行された場合、データ インポート フェーズをスキップして実行時間を短縮できます。インポート フェーズをスキップすると、合計テスト実行時間は約 3.5 時間に短縮されます。実際の実行時間はテスト対象システムによって異なる場合があります。
cd AHBench ./full_test --skipload
テスト結果の分析
テスト完了後、現在のディレクトリに Comma-Separated Values (CSV) ファイルが生成されます。テスト結果を Excel や Numbers などのデータ分析ソフトウェアにコピーして、さらに比較および分析できます。
-
CSV ファイルの名前を表示します。
ls -ltr -
指定された CSV ファイルの内容を表示します。
cat full_throughput.csv
次の図は、CSV ファイルの内容を示しています。

よくある質問
テストがエラーで終了した場合、次のことを確認してください。
-
JAVA_HOME が正しく設定されており、Python 実行環境がインストールされていること。
-
テスト対象クラスターのエンドポイントが正しく入力されていること。
-
テスト対象クラスターの HBase バージョンが正しく入力されていること。
-
クラスターが指定された圧縮アルゴリズムをサポートしているかどうか。
-
テスト対象クラスターが正常に実行されていること。