EC2上のAerospikeでycsbを実行
先日AerospikeをEC2(もちろん無料Tierのt2.micro)で試してみました。
takumats.hatenablog.com
今回は、そこにycsbを入れてみますが、手順は先日Windows上のVirtualboxでやったのと同じなので割愛。ちなみにAerospikeのページをよく読むと、ycsbをインストール済みのaerobenchというAMIが公開されているとのことだが、見当たらなかった。(と思ったら、N. Californiaにありました。後から気づきました。)
takumats.hatenablog.com
基本的にはAerospikeのサイトにある以下の手順に従えば実行できます。
Documentation | Aerospike
が、ここで問題。マシンのサイズが小さすぎるので、デフォルトのworkload-shortloadが動きません。なので、workload-shortloadをコピーしてworkload-shortload2を作成し、最初のrecordcountと、operationcountを適当に10分の1(=100000)にしました。
これで見事実行できます。ちなみにloadは2回やろうとすると、キー重複のエラーになるので、今はメモリのみモード(永続化なしモード)なのでサービスを都度再起動すると楽勝です。runは何回でも実行可能です(でした)。
[ec2-user@ip-xxx-xx-xx-xx YCSB]$ bin/ycsb load aerospike -s -threads 100 -P workloads/workload-shortload2 -p as.host=127.0.0.1 [WARN] Running against a source checkout. In order to get our runtime dependencies we'll have to invoke Maven. Depending on the state of your system, this may take ~30-45 seconds (中略) [OVERALL], RunTime(ms), 6793.0 [OVERALL], Throughput(ops/sec), 14721.036360959812 [CLEANUP], Operations, 100 [CLEANUP], AverageLatency(us), 43.14 [CLEANUP], LatencyVariance(us), 629.1203999999998 [CLEANUP], MinLatency(us), 27 [CLEANUP], MaxLatency(us), 238 [CLEANUP], 95thPercentileLatency(us), 0 [CLEANUP], 99thPercentileLatency(us), 0 [CLEANUP], 0, 100 [CLEANUP], 1, 0 [CLEANUP], 2, 0 (中略) [INSERT], Operations, 100000 [INSERT], AverageLatency(us), 6032.59377 [INSERT], LatencyVariance(us), 3.942717181160718E7 [INSERT], MinLatency(us), 27 [INSERT], MaxLatency(us), 197585 [INSERT], 95thPercentileLatency(us), 16000 [INSERT], 99thPercentileLatency(us), 24000 [INSERT], Return=OK, 100000 [INSERT], 0, 3173 [INSERT], 1, 807 [INSERT], 2, 995 [INSERT], 3, 8158 (後略)
ちなみに、たくさん出てくる以下の列はヒストグラム情報。
[INSERT], 0, 3173 [INSERT], 1, 807 [INSERT], 2, 995 [INSERT], 3, 8158
以下のようなグラフを描けます(実際には1000分割してるけど、グラフが見づらいので上位100のみで描画)
なお、このヒストグラム出力の細かい設定は、ycsbのworkload設定ファイルで可能な模様です。
runの場合も、workload-shortrunが大きすぎるので、workload-shortrun2を作って、10分の1サイズにします。
ちなみに、このaerospikeのworkload-shortrunの中身で、operationcountが0になっています。ただ、ここが0でも実際にはオペレーションが全くないということではなさそうなので、よくわかりません。