・MySQL-server(CentOSのリポジトリ使うなら、mysql-server)
・MySQL-devel(CentOSのリポジトリ使うなら、mysql-devel)
・MySQL-shred(CentOSのリポジトリ使うなら、mysql-libs)
・bzr
・make
・gcc
MySQL-serverが入ってない状態だと、
コンパイルは出来たけど実行しようとするとSegmentation Faultした。
ソースの入手&コンパイル
$ bzr branch lp:~percona-dev/perconatools/tpcc-mysql
カレントディレクトリのにtpcc-mysqlディレクトリを持ってきてくれる。
$ cd tpcc-mysql/src
$ make
パッケージが全部揃っていればmake一発で済むはず。
$ cd ../ ; ls -l
tpcc_loadがデータのロード用、tpcc_startが計測用のバイナリ。
makeがエラーになってなければあるはず。
データのロード
$ mysqladmin create [DB]
別に名前は何でも良いのでデータ用のDBを作成する。
tpcc_startのデフォルトDB名がtpccなので、それにしておくと後で指定しなくて良い。
$ mysql [DB] < create_table.sql
テーブル定義を読み込む。
$ ./tpcc_load [server] [DB] [user] [pass] [warehouse]
./tpcc_load localhost tpcc root "" 100 みたいな。
大体、warehouse * 500,000行、warehouse * 80メガバイトくらいの容量。
⇒http://yoku0825.blogspot.jp/2012/06/tpcc-mysqltpcemysql.html
$ mysql [DB] < add_fkey_idx.sql
どっちかというとtpcc_loadよりこっちの処理のが重い。
tpcc_loadより先にこっちをやっちゃうのも可能。
後でINDEX作った方がまだ速いのかなと思うけれども、
DBT-3でやった時に先にINDEX作った方が速いという記事もあった。
いつか試そうと思ってるけどまだ試してない。。
ここでコールドバックアップを取っておく。
tpcc_startをかけるとレコードがINSERT/UPDATE/DELETEされるので、
同じ(ような)条件で計るにはまたtpcc_loadするかリストアするしかない。
mysqldumpだとリストアに時間がかかってしょうがいないのでコールドバックアップ推奨。
$ ./tpcc_start -h server_host -P port -d database_name -u mysql_user -p mysql_password -w warehouses -c connections -r warmup_time -l running_time -i report_interval -f report_file
色々オプションが付けられるけれどなんとなく心で感じて下さい。
あとは計測が終わるのを待つのみ。
複数回計るならリストアしてtpcc_start。
お疲れ様でした。
【2013/05/09 12:06】
CentOSリポジトリのパッケージ名間違えていたぽい。。orz
ところで、MySQL-Serverが入ってないとSegfaultするのはmroongaでもあったこの辺りが関係あるのかなぁ?
http://sourceforge.jp/projects/groonga/lists/archive/dev/2013-May/001358.html
調べる気はない。。
0 件のコメント :
コメントを投稿