常日頃MySQLをつかっているのですがパフォーマンスのチェックなどをあまりしていなかったため、これをチョクチョクしていこうかなあと思っております。
簡単に使えるツール(ただし5.1.4から)としては標準で入っているmysqlslapがあります。使い方が非常に簡単で、お手軽に使えるツールだけにちょっとしたパフォーマンスのチェックには大変いいかと思っております。
使い方
大まかなイメージですが、疑似的にテーブルを作ってその中にデータを流し込み、複数のクライアントから複数のクエリを送って処理速度の平均値を測定します。
一例として参考リンクで挙げているコマンド例を表示したいと思います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
mysqlslap \ --no-defaults \ --concurrency=50 \ --iterations=1 \ --number-int-cols=2 \ --number-char-cols=3 \ --auto-generate-sql \ --engine=innodb \ --auto-generate-sql-add-autoincrement \ --auto-generate-sql-write-number=1000 \ --number-of-queries=1000 \ --host=127.0.0.1 \ --port=3306 \ --user=root \ --password=password \ --auto-generate-sql-load-type=read \ |
設定情報などはいろいろと説明がなのですが、リンクのほうがはるかによく書かれているので(汗)リスペクトの意味も込めてリンクを紹介します。
※通常は自動的にSQL文が実行されるようですが、カスタマイズされたSQLの判定を行うこともできるようです。
※データベースが作成できるユーザーでないと作成ができないので必然的にrootになるかと思います。
コマンドを実行すると下記のようにパフォーマンスが表示されます。
1 2 3 4 5 6 7 8 9 10 |
Benchmark Running for engine innodb //クエリの処理平均値 Average number of seconds to run all queries: 1.382 seconds //最小値 Minimum number of seconds to run all queries: 1.382 seconds //最大値 Maximum number of seconds to run all queries: 1.382 seconds Number of clients running queries: 50 Average number of queries per client: 20 |
参考リンク
MySQLクライアント負荷エミュレーション mysqlslap を使う
mysqlslap で MySQL の負荷テストをする方法
MySQL標準 負荷測定ツール mysqlslap
MySQL道普請便り 第23回 mysqlslapを使って負荷テストをしてみよう
1分でできる!mysqlslapでDBのかんたん性能調査、ベンチマーク