mysqlslapで簡易ベンチマーク

MySQL 5.1.4から標準でmysqlslapというベンチマークツールが追加されました。*1
例えば、20クライアントから計10万回のINSERT文を実行するベンチマークは、以下のように実行します。

$ mysqlslap --no-defaults -u root -p --concurrency=20 --iterations=1 --number-int-cols=2 --number-char-cols=3 --auto-generate-sql --engine=innodb --auto-generate-sql-load-type=write --number-of-queries=100000

上記のコマンドでは、intカラムが2、varcharカラムが3なテーブルでベンチマークが実行されます。
結果は、以下のような感じで表示されます。

Benchmark
	Running for engine innodb
	Average number of seconds to run all queries: 33.248 seconds
	Minimum number of seconds to run all queries: 33.248 seconds
	Maximum number of seconds to run all queries: 33.248 seconds
	Number of clients running queries: 20
	Average number of queries per client: 5000

実行するテストの種類は、"--auto-generate-sql-load-type"で指定します。
指定できるテストの種類は、以下の通りです。

    • read : テーブルのスキャン
    • write : テーブルへの挿入
    • key : 主キーの読み取り
    • update : 主キーの更新
    • mixed : 挿入とスキャンを半々ずつ

MySQL単体の簡易ベンチマークが、標準コマンドでできるので、設定変更前後でサクっとやってみると良いかもしれません。


http://dev.mysql.com/doc/refman/5.1-olh/ja/mysqlslap.html

*1:クライアントコマンドとして動作するので、5.0系サーバのベンチマークも可能かもしれません。当方では未実施。