basho_bench のインストールと準備の手順紹介
Riak の開発、サポートを行なっている Basho Technologies, Inc. が basho_bench というベンチマークツールを公開しています。
Basho Bench is a benchmarking tool created to conduct accurate and repeatable performance tests and stress tests, and produce performance graphs.
Basho: Benchmarking with Basho Bench
github.com のリポジトリ: https://github.com/basho/basho_bench
Riak 自体のベンチマークに加えて、ドライバを自作すれば簡単にベンチマークを取得することが可能です。
例えば、Hibari のドライバが basho_bench のソースツリーに含まれていますが 300 行程度で書かれています。
利点、特徴をパラパラと。
- ベンチマーク結果として、スループットとレイテンシのグラフを生成できる
- 複数の操作を、混在させたベンチマークが取れる
- 例: READ を 80% + WRITE を 20 %
- ランダムな値を生成してくれる
- ランダムなキーと値で WRITE 操作、というのが簡単にかける
- 1回の試行ごとに、設定ファイルと実行結果を個別ディレクトリに保存してくれる
- 並列度を指定できる
以下、インストールから、サンプル実行、結果のグラフ生成までの手順メモです。
basho_bench 自体のインストール、ビルド
$ git clone https://github.com/basho/basho_bench.git $ cd basho_bench $ make all
この段階で、ベンチマークは実行可能です。basho_bench のサンプル設定を元に、あまり時間がかからない設定にしてみます。
$ cp example/null_test.config . $ vi null_test.config
{mode, max}. {duration, 1}. {concurrent, 1}. {driver, basho_bench_driver_null}. {code_paths, ["deps/stats"]}. {key_generator, {uniform_int, 1024}}. {value_generator, {fixed_bin, 1024}}. {operations, [{put, 1}]}.
ベンチマーク自体の実行は、./basho_bench を実行します。
$ ./basho_bench null_test.config $ ls tests/current # テスト結果が格納されるディレクトリ
結果グラフを生成してみようとすると...
$ make results priv/summary.r -i tests/current env: Rscript: No such file or directory make: *** [results] Error 127
エラーが発生します。R のインストールと設定を行いましょう。
R のインストール、設定
Mac OS X ではバイナリパッケージがある。楽なのでパッケージを使います。
R for Mac OS X
http://cran.r-project.org/bin/macosx/R-2.12.1.pkg をダウンロード、インストール。
$ make results priv/summary.r -i tests/current Warning: unable to access index for repository http://lib.stat.cmu.edu/R/CRAN/bin/macosx/leopard/contrib/2.12 Warning: unable to access index for repository http://lib.stat.cmu.edu/R/CRAN/bin/macosx/leopard/contrib/2.12 Warning messages: 1: In library(Name, character.only = TRUE, logical.return = TRUE) : there is no package called 'getopt' 2: In getDependencies(pkgs, dependencies, available, lib) : package ‘getopt’ is not available 3: In library(Name, character.only = TRUE, logical.return = TRUE) : there is no package called 'ggplot2' 4: In getDependencies(pkgs, dependencies, available, lib) : package ‘ggplot2’ is not available Error: could not find function "getopt" Execution halted make: *** [results] Error 1
ライブラリが足りないとのエラーです。R のパッケージをインストールします。
R.app を起動して、[パッケージとデータ] メニューから、パッケージインストーラを選択。
このへん、コマンドラインでどうにかならんのかな。sudo で make results を実行するといけるっぽいけど、調べてない。
一覧を取得から、Japan(Tsukuba)を選択。
getopt, ggplot2, reshape, plyr, proto, digest をインストール。
R.app は終了させてかまいません。
$ make results $ open tests/current/summary.png
以上、basho_bench のインストールと準備の手順紹介でした。
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
追記
@kenji_rikitake にコマンドラインでもできると教えていただいたので、試してみたメモを追記。
いったんインストールしているパッケージを削除する。念のため、結果グラフ生成でエラーが発生することを確認。
$ R CMD REMOVE getopt ggplot2 reshape plyr proto digest $ make results % エラーになる
$ R CMD INSTALL getopt ggplot2 reshape plyr proto digest % エラーになる
R CMD INSTALL は tar.gz からのインストールらしい。CRAN からのダウンロードは別途必要。
参考: R Installation and Administration http://cran.r-project.org/doc/manuals/R-admin.html
R のシェルからのインストールでは、CRAN からのダウンロードもやってくれるため、そちらでやってみる。
まず、CRAN ミラーの設定。ホームの下に .Rprofile を作って、ミラーを設定する。
参考: CRAN国内ミラーの使い方 - RjpWiki http://www.okada.jp.org/RWiki/?CRAN%B9%F1%C6%E2%A5%DF%A5%E9%A1%BC%A4%CE%BB%C8%A4%A4%CA%FD
$ cat ~/.Rprofile options(repos="http://essrc.hyogo-u.ac.jp/cran/")
R を起動して、パッケージをインストールする。
$ R > install.packages(c("getopt", "ggplot2", "reshape", "plyr", "proto", "digest")) > q() % R シェルを終了させる