13
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

YCSBの概要とCassandraへのベンチマーク

Last updated at Posted at 2016-02-01

YCSB, Yahoo! Cloud Service Benchmark について

YCSBは、米Yahoo!の研究開発部部門 Yahoo! Research が開発し、オープンソースで公開されているNoSQLデータベースを対象としたベンチマークツールです。異なる種類のNoSQLデータベースに対して共通的な負荷シナリオとフレームワークの提供を目的として開発されています。負荷シナリオに関しては自分で定義することも可能ですが、5種類のシナリオが事前に定義されています。

Workload Title シナリオの内容 想定するアプリケーション
Workload A Update heavy workload 50%の読み込みと50%の書き込み 最近のアクションを記録するセッションストア
Workload B Read mostly workload 95%の読み込みと5%の書き込み 写真へのタグ付け。タグの追加は更新だが、ほとんどがタグの読み取り
Workload C Read only 100%の読み込み ユーザ設定のキャッシュ
Workload D Read latest workload 新しいデータが追記され、新しく追記されたものほど読み込まれやすい ユーザの近況アップデート。新しいものほどよく読まれる
Workload E Short ranges データをレンジで読み込み スレッドに分かれた会話。1回の読み込みは1つのスレッド
Workload F Read-modify-write データを読み込み、変更し、書き込む ユーザ情報のデータベース

YCSBの利用

実際にYCSBを利用します。ベンチマーク対象はCassandra(2.1.12)とします。Cassandraのインストールに関しては記事等をご参考ください。

2016/2/1の最新版はYCSB 0.6.0なのでそれをダウンロードして展開します。

user@node:~$ wget https://github.com/brianfrankcooper/YCSB/releases/download/0.6.0/ycsb-0.6.0.tar.gz
user@node:~$ tar zxvf ycsb-0.6.0.tar.gz
user@node:~$ cd ycsb-0.6.0/

予め、ベンチーマークに必要なキースペースとテーブルを作成します。

user@node:~/ycsb-0.6.0$ cqlsh
cqlsh> CREATE KEYSPACE ycsb
       WITH REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor': 1 };
cqlsh> USE ycsb;
cqlsh:ycsb> CREATE TABLE usertable (
            y_id varchar primary key,
            field0 varchar,
            field1 varchar,
            field2 varchar,
            field3 varchar,
            field4 varchar,
            field5 varchar,
            field6 varchar,
            field7 varchar,
            field8 varchar,
            field9 varchar);

実際にWorkload Aでベンチマークを実行します。

user@node:~/ycsb-0.6.0$ ./bin/ycsb load cassandra2-cql -P workloads/workloada -p "hosts=127.0.0.1"
user@node:~/ycsb-0.6.0$ ./bin/ycsb run cassandra2-cql -P workloads/workloada -p "hosts=127.0.0.1"

結果は下記のように表示され [OVERALL], Throughput(ops/sec) が今回のシナリオに対するスループットになります。

[OVERALL], RunTime(ms), 4225.0
[OVERALL], Throughput(ops/sec), 236.68639053254438
[READ], Operations, 482.0
[READ], AverageLatency(us), 3508.0290456431535
[READ], MinLatency(us), 471.0
[READ], MaxLatency(us), 28127.0
[READ], 95thPercentileLatency(us), 9503.0
[READ], 99thPercentileLatency(us), 19791.0
[READ], Return=OK, 482
[CLEANUP], Operations, 1.0
[CLEANUP], AverageLatency(us), 15684.0
[CLEANUP], MinLatency(us), 15680.0
[CLEANUP], MaxLatency(us), 15687.0
[CLEANUP], 95thPercentileLatency(us), 15687.0
[CLEANUP], 99thPercentileLatency(us), 15687.0
[UPDATE], Operations, 518.0
[UPDATE], AverageLatency(us), 2767.6177606177607
[UPDATE], MinLatency(us), 407.0
[UPDATE], MaxLatency(us), 36511.0
[UPDATE], 95thPercentileLatency(us), 7891.0
[UPDATE], 99thPercentileLatency(us), 11415.0
[UPDATE], Return=OK, 518

参考

13
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?