今回はsysbench 1.
第26回 SysBenchを使ってMySQLの負荷テストをする でsysbenchについてはすでに紹介していますので,
インストール方法
各OSごとのインストール方法はInstalling from Binary Packagesをご参照ください。今回はCentOS7にsysbenchをインストールしてみます。
# curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash # sudo yum -y install sysbench
2022/
# sysbench --version sysbench 1.0.20
sysbenchの構文
sysbenchの一般的なコマンドライン構文は次のとおりです。
sysbench [オプション]... [テスト名] [コマンド]
- オプション…接続先のMySQLの情報やスレッド数などオプションを指定
- テスト名…同梱されたテストシナリオ,
または自作したテストシナリオを指定 - コマンド…アクションを指定
- prepare …テーブル作成やデータ投入などテスト前の準備を実行
- run …指定したテスト名に基づくテストを実際に実行
- cleanup …一時データを作成するテストでのテスト実行後に一時データを削除
- help …指定したテスト名も基づくhelp情報を表示
sysbenchを実行する前の準備
sysbenchを実行する前に,
mysqlコマンドラインクライアントでログインして,
mysql> CREATE DATABASE sbtest; Query OK, 1 row affected (0.00 sec)
続けて,
mysql> CREATE USER sbtest@127.0.0.1 IDENTIFIED BY 'Password1!'; mysql> GRANT ALL PRIVILEGES ON sbtest.* TO sbtest@127.0.0.1 ; Query OK, 0 rows affected, 1 warning (0.00 sec)
Password1!の部分はデータベースのポリシーに合わせて適切な値に変更して実行してください。またsysbenchに必要なデータベースはsbtestだけなので,
続いて,oltp_
,prepare
を指定して実行することで,
今回は3つのテーブルを作成し,
sysbench \ --mysql-host=127.0.0.1 \ --mysql-port=3306 \ --mysql-db=sbtest \ --mysql-user=sbtest \ --mysql-password=Password1! \ --tables=3 \ --table_size=10000 \ oltp_common prepare sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2) Creating table 'sbtest1'... Inserting 10000 records into 'sbtest1' Creating a secondary index on 'sbtest1'... Creating table 'sbtest2'... Inserting 10000 records into 'sbtest2' Creating a secondary index on 'sbtest2'... Creating table 'sbtest3'... Inserting 10000 records into 'sbtest3' Creating a secondary index on 'sbtest3'...
以下のようなsbtest
+連番のテーブルが作成されます。
CREATE TABLE `sbtest1` ( `id` int NOT NULL AUTO_INCREMENT, `k` int NOT NULL DEFAULT '0', `c` char(120) COLLATE utf8mb4_bin NOT NULL DEFAULT '', `pad` char(60) COLLATE utf8mb4_bin NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `k_1` (`k`) ) ENGINE=InnoDB
オプションについて
--mysql-host
…MySQLのホスト名を指定(デフォルト localhost) --mysql-port
…MySQLのポートを指定(デフォルト 3306) --mysql-db
…MySQLのデータベース名を指定(デフォルト sbtest) --mysql-user
…MySQLのユーザ名を指定(デフォルト sbtest) --mysql-password
…MySQLのパスワードを指定(デフォルト なし) --tables
…作成するテーブル数を指定(デフォルト 1) --table_
…作成する1テーブルあたりの行数を指定size (デフォルト 10000)