MySQLパフォーマンステストツールmysqlslap

7078 ワード

mysqlslap説明
mysqlに付属するパフォーマンステストツールmysqlslapはmysql 5です.1.4リリース以降の公式には、圧力テストツールが提供されています.複数の同時クライアントアクセスmysqlをシミュレートすることで、圧力テストを実行できます.
mysqlslapを使用してパフォーマンステストを行う場合、テストのプロセスはテストテーブルを生成し、テストデータを挿入する必要があります.このmysqlslapは自動的に生成できます.デフォルトではmysqlslapのschemaを生成し、すでに存在する場合は削除します.-only-printを使用して実際のテストプロセスを印刷できます.テストが完了してもデータベースに痕跡は残りません.
mysqlslap使用
構文の使用
$ mysqlslap [options]

パラメータの説明
--auto-generate-sql, -a           ,   mysqlslap       SQL
--auto-generate-sql-load-type=type        。                        。    :read,key,write,update mixed(  )。

--auto-generate-sql-add-auto-increment            auto_increment , 5.1.18
--number-char-cols=N, -x N1

--number-int-cols=N, -y N1

--number-of-queries=N         (     ×       )

--query=name,-q            ,                  sql       。

--create-schema            ,   schema,MySQL 
schema   database。

--commint=N    DML
--compress, -C               ,       。

--concurrency=N, -c N      ,               select。      ,     --delimiter           。  :--concurrency=100,200,500
--engine=engine_name, -e engine_name         ,     ,      。  :--engines=myisam,innodb。

--iterations=N, -i N          ,           ,         。

--only-print              。

--detach=N   N
--debug-info, -T      CPU

例を挙げて紹介する
#      。
$ mysqlslap -a -uroot -pyyz
#      。  –concurrency       。
$ mysqlslap -a -c 100 -uroot -pyyz
#     。               。
$ mysqlslap -a -i 10 -uroot -pyyz
#                   
$ mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --engine=myisam,innodb -uroot -pyyz

#       ,  50 100   ,  1000    :
$ mysqlslap -a --concurrency=50,100 --number-of-queries 1000 -uroot -pyyz

# 50 100             (Benchmark),     ,            。      ,         :
$ mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 -uroot -pyyz

PS:同時接続がしきい値を超えた場合(mysqlslap:Error when connecting to server:2001 Can’t create UNIX socket(24))mysql設定max_connections;
#   mysql
$ mysql -u[user] -p[password]
# [user] root,[password]     ,        ,    :
$ mysql -uroot -pyyz
#        
mysql> show variables like 'max_connections';
#        
mysql> set global max_connections=1000;
#             1000

References 1.http://www.ttlsa.com/mysql/mysql-mysqlslap-test/