MariaDB はじめてのMariaDB 【第11回 負荷テストツール(mysqlslap)】

この記事は2014年10月14日に書かれたものです。内容が古い可能性がありますのでご注意ください。


今回の概要

MySQLにはmysqlslapという負荷テストツールがあります。
これは、MySQL5.1.4から標準搭載されている機能であり、MariaDBにも備わっている機能です。
今回はmysqlslapの使い方について、記載します。
また、MySQLとの性能比較についても検証してみます。

mysqlslapの使い方

特に難しいことはなく、mysqlslapというコマンドを実行するだけでOKです。
オプションが多くあるのですが、下記オプションを使用することで
事足りるのではないかと思います。

--no-defaults 
--concurrency=20 
--iterations=2 
--number-int-cols=5 
--number-char-cols=5 
--engine=innodb 
--auto-generate-sql 
--auto-generate-sql-add-autoincrement 
--auto-generate-sql-load-type=mixed 
--auto-generate-sql-write-number=1000 
--number-of-queries=100000 
--host=localhost 
--port=3306 
--user=super 
-p
オプション 内容 備考
–no-defaults 設定ファイル(my.cnf)のデフォルト値を適用しない。
このオプションは必ず先頭に記載する必要がある。
–concurrency 同時接続するクライアント数。 例) –concurrency=20
–iterations テストの実行回数。 例) –iterations=2
–number-int-cols 使用するINT型のカラム数。
–auto-generate-sqlが指定されている必要がある。
例) –number-int-cols=5
–number-char-cols 使用するvarchar型のカラム数。
–auto-generate-sqlが指定されている必要がある。
例) –number-char-cols=5
–engine テーブルを作成する際のストレージエンジン。 例) –engine=innodb
–auto-generate-sql SQLを自動生成して、実行する。
–auto-generate-sql-add-autoincrement 自動生成するテーブルにauto_incrementを追加。
–auto-generate-sql-load-type SQLクエリのタイプを指定。 デフォルトはmixedとなる。
クエリタイプ:mixed,update,write,key,read
例) –auto-generate-sql-load-type=mixed
–auto-generate-sql-write-number スレッド毎のINSERT文の実行数。 デフォルトは100。
例) –auto-generate-sql-write-number=1000
–number-of-queries 各クライアントが実行するSQLクエリの上限値。 例) –number-of-queries=100000
–host 対象サーバのホスト名。 例) –host=localhost
–port 対象サーバのポート番号。 例) –port=3306
–user 実行ユーザ。 実行ユーザにDB作成権限がないとエラーとなる。
例) –user=super
–password または -p パスワード。 直接パスワードを記載することもできる。
例) –password=xxx
–csv 実行結果をcsvファイルに出力する。 例) –csv=/tmp/bench_result.csv

MariaDB(10.0.12)とMySQL(5.6.20)での実行比較

MariaDBとMySQLで実際に実行し、比較してみました。

【実行内容】

  • 同時接続クライアント:20クライアント
  • 1コマンドでの実行回数:2回
  • INT型カラム:5個
  • VARCHAR型カラム:5個

MariaDB

【実行文】
01_mariadb_cmd
【結果(ファイル)】
02_mariadb_result
【おまけ(ファイルに出力しない場合の結果)】
03_mariadb_result2

MySQL

【実行文】
01_mysql_cmd
【結果(ファイル)】
02_mysql_result
【おまけ(ファイルに出力しない場合の結果)】
03_mysql_result2

実行結果の比較

05_comparison

MySQLに比べて、MariaDBの方が約10%程度早いという結果になりました。
実行環境とかによっても変わるかもしれませんが・・・
参考にして頂ければと思います。

  • このエントリーをはてなブックマークに追加

PAGE TOP