Mysqlslap MySQL圧力テストツール簡単チュートリアル

3681 ワード

MySQLは5.1.4版から圧力テストツールmysqlslapを持ち、複数の同時クライアントがmysqlにアクセスするシミュレーションを行うことでテストを実行し、非常に簡単に使用できます.mysqlslap�Chelpで利用可能なオプションを入手できます.ここでは、主なパラメータをいくつか列挙し、より詳細な説明は公式マニュアルを参照してください.
 
  
�Cauto-generate-sql, -a


�Cauto-generate-sql-load-type=type
。 :read,key,write,update mixed( )。

�Cnumber-char-cols=N, -x N
, 1

�Cnumber-int-cols=N, -y N
, 1

�Cnumber-of-queries=N
( × )

�Cquery=name,-q
, sql 。

�Ccreate-schema
schema,MySQL schema database

�Ccommint=N
DML

�Ccompress, -C


�Cconcurrency=N, -c N
, select。 , �Cdelimiter

�Cengine=engine_name, -e engine_name


�Citerations=N, -i N


�Cdetach=N
N

�Cdebug-info, -T
CPU

�Conly-print


構文は次のとおりです.
shell>/usr/local/mysql/bin/mysqlslap [options]
共通パラメータ【options】の詳細:
--concurrencyはコンカレント数を表し、カンマで区切ることができます.例:--concurrency=50200500
--enginesはテストするエンジンを表し、複数を区切り記号で区切ることができます.例:--engines=myisam,innodb,memory
--iterationsは、異なる同時環境で、それぞれ何回テストを実行するかを表します.
--auto-generate-sqlはmysqlslapツールで生成したSQLスクリプトを表し、同時圧力をテストします.
--auto-generate-sql-add-auto-incrementは、生成されたテーブルにauto_を自動的に追加することを表します.increment列は5.1.18バージョンから始まり、
--auto-generate-sql-load-typeは、テストする環境が読み取り操作なのか書き込み操作なのかを表します(read,write,update,mixed)
--number-of-queriesは、合計何件のクエリーを実行するかを表します.
--debug-infoは、CPUおよびメモリの追加出力に関する情報を表します.
--number-int-colsは、サンプルテーブルのINTEGERタイプを表すプロパティがいくつかあります.
--number-char-colsは、サンプルテーブルのvacharタイプを表すプロパティがいくつかあります.
--create-schemaは、カスタムのテストライブラリ名を表します.
--queryは、カスタムテストSQLスクリプトを表します.
説明:
テストのプロセスはテストテーブルを生成し、テストデータを挿入する必要があります.このmysqlslapは自動的に生成され、デフォルトではmysqlslapのschemaが生成され、すでに存在する場合は削除されます.実際のテストプロセスは-only-printで印刷できます.テストが完了してもデータベースに痕跡は残りません.
実験手順:
練習1:
単一スレッドテスト.テストは何をしましたか.
>./bin/mysqlslap -a -uroot -p111111
マルチスレッドテスト.--concurrencyを使用して、同時接続をシミュレートします.
> ./bin/mysqlslap -a -c 100 -uroot -p111111
反復テスト.テストを複数回実行して平均値を得る必要がある場合に使用します.
> ./bin/mysqlslap -a -i 10 -uroot -p111111
練習2:
> ./bin/mysqlslap -auto-generate-sql-add-autoincrement -a -uroot -p111111
> ./bin/mysqlslap -a -auto-generate-sql-load-type=read -uroot -p111111
> ./bin/mysqlslap -a -auto-generate-secondary-indexes=3 -uroot -p111111
> ./bin/mysqlslap -a -auto-generate-sql-write-number=1000 -uroot -p111111
> ./bin/mysqlslap --create-schema world -q "select count(*) from City"-uroot -p111111
> ./bin/mysqlslap -a -e innodb -uroot -p111111
> ./bin/mysqlslap -a --number-of-queries=10 -uroot -p111111
練習3:
50個と100個の同時テストを実行し、合計1000回のクエリーを実行します.
> ./bin/mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --debug-info -uroot -p111111
50個と100個の同時テスト結果(Benchmark)がそれぞれ得られ,同時数が多いほどすべてのクエリが実行される時間が長くなる.正確にするために、複数の反復テストを行うことができます.
> ./bin/mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --debug-info -uroot -p111111
同時に異なるストレージエンジンのパフォーマンスをテストして比較します.
>./bin/mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --engine=myisam,innodb --debug-info -uroot -p111111