HBAseテスト(YCSBツールを使用)
YCSBテストHBAse
テストツールの選択 YCSB(Yahoo! Cloud Serving Benchmark)
YCSBはオープンソースの分散性能テストツールで、NoSQL製品の読み書き性能をテストするのによく使われています.YCSBは、Cassandra、MongoDB、HBAse、Redis、Infinispanなどの一般的なNoSQLデータベースおよびデータ・グリッド製品をサポートします.YCSBはインストールが簡単であるだけでなく、テストデータ型とサポートされているデータベース製品を自由に拡張することができます. PE(PerformanceEvaluation)
ここではYCSBを使いますが、YCSBはPEに比べて少し明らかです.圧力測定の読み書き割合、スレッド数を任意に設定することができ、最後のテストレポートも比較的詳細 である. YCSBのテストデータの報告を通じて比較的に説得力があって、完備しています.
YCSBツール使用
圧力テストを実行するには6ステップが必要です.テストが必要なデータベースを構成する 適切なデータベースインタフェース層 を選択する.適切なworkload を選択適切な運転時パラメータ を選択する.ロードデータ 実行テスト(transaction phase) YCSBパッケージのダウンロード
YCSB githubネットワークにログインし、ダウンロードアドレスを見つけます.ここでは最新版0.15を選択し、hbase 12のバージョンをドロップダウンします.全体をダウンロードする必要はありません.大きすぎます.
テストが必要なデータベースの構成
ここで推奨されるプリディビジョンの数は10*RegionServerです.
適切なデータベース・インタフェース・レイヤの選択
Connectedがあれば正常だと思います.
接続後、insert、delete、updateの動作ができます.
対応するhbaseテーブルの表示
適切なワークロードを選択
Workloadは、2つのセクションを含むテストデータをデータベースにロードする方法を定義します. Workload Javaクラス(com.yahoo.ycsb.Workloadのサブクラス) プロファイル(Java Properties形式) YCSBのCoreWorkloadには、6つの異なるタイプを含む標準的なテストデータがプリセットされています. Workload A:再更新、50%読み書き、例えばsession sotre Workload B:読み書きが少なく、95%読み5%書き、例えばphoto tagging Workload C:読み取り専用:100%読み取り、例えばuser profile cache Workload D:最近の更新を読む:このworkloadは新しいレコードを挿入し、新しいレコードほど読み取り確率が高くなります.たとえば、user status updates Workload E:小規模クエリー:このworkloadは単一レコードではなく小規模レコードをクエリーします.たとえば、threaded conversations Workload F:読み込み-修正-書き込み:このworkloadはレコードを読み込み、このレコードを修正し、最後に書き込みます.たとえば、user database テストのニーズに応じて適切なworkloadを選択したり、新しいworkloadを作成したりすることができます.
適切なランタイムパラメータの選択
YCSBは、workloadでパラメータを構成するほか、これらのランタイムパラメータもサポートします. threads:クライアントスレッド数、デフォルトは1 target:1秒あたりのターゲット操作数、デフォルトは無制限(できるだけ早く操作を完了)です.例えば、1つの動作に100 msが必要である場合、1つのスレッド1 s内で10個の動作を完了することができ、-targetパラメータによって動作を遅らせることができ、10個以下の に制御することができる. s:クライアントステータスを10 sごとに印刷し、 をデバッグします.
データのマウント
Workloadには、マウント・フェーズとトランザクション・フェーズの2つのフェーズがあります.マウント・フェーズでテスト・データをデータベースに挿入します.HBAseテストでは、次のコマンドを使用してデータ
ここでは、デフォルトのAタイプスキームを使用します.デフォルトは1000レコード数と1000操作数です.-p recordcount=10000-p operationcount=10000を使用して、既存のプロパティを上書きできます.
出力結果:
テストの実行
テストデータのマウントが完了すると、workloadテストを実行できます.HBAseテストコマンドでは、テストプロセス全体が終了します.
出力結果:
ふろく YCSB github公式サイト YCSB wiki YCSBテストHBAse HrdHistograplotterを使用して図 を描く 95パーセントの概念理解 ycsbテストHBASEとMYSQL
テストツールの選択
YCSBはオープンソースの分散性能テストツールで、NoSQL製品の読み書き性能をテストするのによく使われています.YCSBは、Cassandra、MongoDB、HBAse、Redis、Infinispanなどの一般的なNoSQLデータベースおよびデータ・グリッド製品をサポートします.YCSBはインストールが簡単であるだけでなく、テストデータ型とサポートされているデータベース製品を自由に拡張することができます.
ここではYCSBを使いますが、YCSBはPEに比べて少し明らかです.
YCSBツール使用
圧力テストを実行するには6ステップが必要です.
YCSB githubネットワークにログインし、ダウンロードアドレスを見つけます.ここでは最新版0.15を選択し、hbase 12のバージョンをドロップダウンします.全体をダウンロードする必要はありません.大きすぎます.
テストが必要なデータベースの構成
ここで推奨されるプリディビジョンの数は10*RegionServerです.
hbase(main):001:0> n_splits = 12 # HBase recommends (10 * number of regionservers)
hbase(main):002:0> create 'usertable', 'cf', {SPLITS => (1..n_splits).map {|i| "user#{1000+i*(9999-1000)/n_splits}"}}
適切なデータベース・インタフェース・レイヤの選択
./bin/ycsb shell hbase12 -cp /etc/hbase/conf/ -p columnfamily=A
を使用して、HBAseデータベース・インタフェース・レイヤの構成が正しいかどうかをテストします.Connectedがあれば正常だと思います.
接続後、insert、delete、updateの動作ができます.
insert key name=ljkteset
insert key age=18
対応するhbaseテーブルの表示
hbase(main):002:0> scan 'usertable'
ROW COLUMN+CELL
key column=A:age, timestamp=1555485313733, value=18
key column=A:name, timestamp=1555485171128, value=ljktest
1 row(s) in 0.1190 seconds
適切なワークロードを選択
Workloadは、2つのセクションを含むテストデータをデータベースにロードする方法を定義します.
適切なランタイムパラメータの選択
YCSBは、workloadでパラメータを構成するほか、これらのランタイムパラメータもサポートします.
データのマウント
Workloadには、マウント・フェーズとトランザクション・フェーズの2つのフェーズがあります.マウント・フェーズでテスト・データをデータベースに挿入します.HBAseテストでは、次のコマンドを使用してデータ
bin/ycsb load hbase12 -P workloads/workloada -p columnfamily=A -threads 2 -s -cp /etc/hbase/conf/
をロードできます.ここでは、デフォルトのAタイプスキームを使用します.デフォルトは1000レコード数と1000操作数です.-p recordcount=10000-p operationcount=10000を使用して、既存のプロパティを上書きできます.
出力結果:
2019-04-17 15:48:16:137 3 sec: 1000 operations; 297.09 current ops/sec; [CLEANUP: Count=4, Max=28223, Min=4, Avg=7103, 90=28223, 99=28223, 99.9=28223, 99.99=28223] [INSERT: Count=1000, Max=174847, Min=1001, Avg=2787.16, 90=4787, 99=13831, 99.9=172031, 99.99=174847]
[OVERALL], RunTime(ms), 3375
[OVERALL], Throughput(ops/sec), 296.2962962962963
[TOTAL_GCS_PS_Scavenge], Count, 4
[TOTAL_GC_TIME_PS_Scavenge], Time(ms), 43
[TOTAL_GC_TIME_%_PS_Scavenge], Time(%), 1.274074074074074
[TOTAL_GCS_PS_MarkSweep], Count, 1
[TOTAL_GC_TIME_PS_MarkSweep], Time(ms), 21
[TOTAL_GC_TIME_%_PS_MarkSweep], Time(%), 0.6222222222222222
[TOTAL_GCs], Count, 5
[TOTAL_GC_TIME], Time(ms), 64
[TOTAL_GC_TIME_%], Time(%), 1.8962962962962964
[CLEANUP], Operations, 4
[CLEANUP], AverageLatency(us), 7103.0
[CLEANUP], MinLatency(us), 4
[CLEANUP], MaxLatency(us), 28223
[CLEANUP], 95thPercentileLatency(us), 28223
[CLEANUP], 99thPercentileLatency(us), 28223
[INSERT], Operations, 1000
[INSERT], AverageLatency(us), 2787.16
[INSERT], MinLatency(us), 1001
[INSERT], MaxLatency(us), 174847
[INSERT], 95thPercentileLatency(us), 6903
[INSERT], 99thPercentileLatency(us), 13831
[INSERT], Return=OK, 1000
テストの実行
テストデータのマウントが完了すると、workloadテストを実行できます.HBAseテストコマンドでは、テストプロセス全体が終了します.
bin/ycsb run hbase12 -P workloads/workloada -p columnfamily=A -threads 2 -s -cp /etc/hbase/conf/
出力結果:
2019-04-17 15:51:57:708 1 sec: 1000 operations; 630.12 current ops/sec; [READ: Count=521, Max=14135, Min=734, Avg=1153.72, 90=1318, 99=5831, 99.9=10695, 99.99=14135] [CLEANUP: Count=4, Max=22991, Min=4, Avg=5784, 90=22991, 99=22991, 99.9=22991, 99.99=22991] [UPDATE: Count=479, Max=140543, Min=770, Avg=1908.56, 90=1724, 99=6067, 99.9=140543, 99.99=140543]
[OVERALL], RunTime(ms), 1587
[OVERALL], Throughput(ops/sec), 630.119722747322
[TOTAL_GCS_PS_Scavenge], Count, 4
[TOTAL_GC_TIME_PS_Scavenge], Time(ms), 21
[TOTAL_GC_TIME_%_PS_Scavenge], Time(%), 1.3232514177693762
[TOTAL_GCS_PS_MarkSweep], Count, 1
[TOTAL_GC_TIME_PS_MarkSweep], Time(ms), 25
[TOTAL_GC_TIME_%_PS_MarkSweep], Time(%), 1.5752993068683048
[TOTAL_GCs], Count, 5
[TOTAL_GC_TIME], Time(ms), 46
[TOTAL_GC_TIME_%], Time(%), 2.898550724637681
[READ], Operations, 521
[READ], AverageLatency(us), 1153.7178502879078
[READ], MinLatency(us), 734
[READ], MaxLatency(us), 14135
[READ], 95thPercentileLatency(us), 1638
[READ], 99thPercentileLatency(us), 5831
[READ], Return=OK, 521
[CLEANUP], Operations, 4
[CLEANUP], AverageLatency(us), 5784.0
[CLEANUP], MinLatency(us), 4
[CLEANUP], MaxLatency(us), 22991
[CLEANUP], 95thPercentileLatency(us), 22991
[CLEANUP], 99thPercentileLatency(us), 22991
[UPDATE], Operations, 479
[UPDATE], AverageLatency(us), 1908.561586638831
[UPDATE], MinLatency(us), 770
[UPDATE], MaxLatency(us), 140543
[UPDATE], 95thPercentileLatency(us), 3023
[UPDATE], 99thPercentileLatency(us), 6067
[UPDATE], Return=OK, 479
ふろく