このトピックでは、新規ユーザーが ApsaraDB RDS for MySQL インスタンスのパフォーマンスをテストし、テストレポートを提出するためのガイドラインについて説明します。テストレポートを提出すると、インスタンス更新時の追加割引が受けられます。テストレポートが優秀と評価された場合、Alibaba Cloud が多大なインセンティブを提供します。
前提条件
ApsaraDB for RDS コンソールで ApsaraDB RDS for MySQL インスタンスが作成されていること。詳細については、「ApsaraDB RDS for MySQL インスタンスの作成」をご参照ください。
Elastic Compute Service (ECS) インスタンスが作成されていること。詳細については、「カスタム起動によるインスタンスの作成」をご参照ください。
背景情報
以下のパフォーマンスメトリクスをテストします:
1 秒あたりのトランザクション数 (TPS)
RDS インスタンスが 1 秒あたりに実行するトランザクション数です。トランザクションは、コミットされた後にのみ実行されます。
SysBench を使用して、18 個の読み取りおよび書き込み SQL 文で構成される読み取り/書き込みトランザクションを実行する際の、オンライン トランザクション処理 (OLTP) のパフォーマンスをテストします。
SysBench を使用して、14 個の読み取り SQL 文で構成される読み取り専用トランザクションを実行する際の、OLTP パフォーマンスをテストします。そのうち 10 個はプライマリキーに基づいてデータをクエリする SQL 文、4 個は指定範囲に基づいてデータをクエリする SQL 文です。
SysBench を使用して、4 つの書き込み SQL 文 (2 つの UPDATE 文、1 つの DELETE 文、1 つの INSERT 文) で構成される書き込み専用トランザクションを実行する際の、OLTP パフォーマンスをテストします。
1 秒あたりのクエリ数 (QPS)
RDS インスタンスが 1 秒あたりに実行する SQL 文の数です。これらの SQL 文には、INSERT、SELECT、UPDATE、DELETE、COMMIT が含まれます。
SysBench パラメーター
パラメーター | 説明 |
db-driver | RDS インスタンスが実行するデータベースエンジンです。 |
mysql-host | RDS インスタンスへの接続に使用するエンドポイントです。 |
mysql-port | RDS インスタンスへの接続に使用するポートです。 |
mysql-user | RDS インスタンスの管理に使用するアカウントのユーザー名です。 |
mysql-password | RDS インスタンスの管理に使用するアカウントのパスワードです。 |
mysql-db | 接続先のデータベース名です。 |
table_size | テストに使用するテーブルのサイズです。 |
tables | テストに使用するテーブルの数です。 |
events | テスト用に送信するリクエストの数です。 |
time | テストにかかる時間です。 |
threads | テストで呼び出すスレッドの数です。 |
percentile | 実行時間のうち、統計分析の対象とするパーセンテージです。デフォルト値は 95% です。これにより、全リクエストの 95% をカバーする実行時間を取得できます。 |
report-interval | テストの進捗レポートを生成する時間間隔です。値 0 は、テストの進捗レポートを生成せず、最終的なテストレポートのみを生成することを指定します。 |
rand-type | 乱数分布タイプです。デフォルト値: special。このテストでは、uniform を使用します。 |
テスト手順
ECS インスタンスにログオンし、次のコマンドを実行して SysBench をインストールします:
sudo yum install gcc gcc-c++ autoconf automake make libtool mysql-devel git mysql git clone https://github.com/akopytov/sysbench.git ## GitHub から SysBench ソフトウェアパッケージをダウンロードします。 cd sysbench ## SysBench インストールディレクトリを開きます。 git checkout 1.0.18 ## SysBench 1.0.18 に切り替えます。 ./autogen.sh ## autogen.sh スクリプトを実行します。 ./configure --prefix=/usr --mandir=/usr/share/man make ## SysBench をコンパイルします。 make install読み取り/書き込み、読み取り専用、書き込み専用の各トランザクションについて、OLTP パフォーマンスをテストします。
読み取り/書き込みトランザクションの OLTP パフォーマンスをテストします。
次のコマンドを実行してテストを行います (詳細については、「SysBench パラメーター」をご参照ください):
## テストに使用するデータを準備します。 sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300 --threads=XXX oltp_read_write prepare ## ワークロードを実行します。 sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300 --threads=XXX --percentile=95 --rand-type="uniform" --report-interval=1 oltp_read_write run ## テストに使用したデータを削除します。 sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300 --threads=XXX --percentile=95 oltp_read_write cleanupテスト結果の例:
QPS: 23869.32
TPS: 1193.47
レスポンスタイム (RT): 36.89 ms
[ 55s ] thds: 16 tps: 1238.00 qps: 24720.98 (r/w/o: 17294.99/4951.00/2475.00) lat (ms,95%): 35.59 err/s: 0.00 reconn/s: 0.00 [ 56s ] thds: 16 tps: 1195.00 qps: 23924.02 (r/w/o: 16752.01/4782.00/2390.00) lat (ms,95%): 36.24 err/s: 0.00 reconn/s: 0.00 [ 57s ] thds: 16 tps: 1235.00 qps: 24714.10 (r/w/o: 17308.07/4935.02/2471.01) lat (ms,95%): 36.24 err/s: 0.00 reconn/s: 0.00 [ 58s ] thds: 16 tps: 1230.99 qps: 24594.83 (r/w/o: 17205.88/4926.97/2461.98) lat (ms,95%): 36.24 err/s: 0.00 reconn/s: 0.00 [ 59s ] thds: 16 tps: 1187.00 qps: 23786.05 (r/w/o: 16655.03/4757.01/2374.00) lat (ms,95%): 36.89 err/s: 0.00 reconn/s: 0.00 [ 60s ] thds: 16 tps: 1212.00 qps: 24252.93 (r/w/o: 16964.95/4863.99/2423.99) lat (ms,95%): 36.24 err/s: 0.00 reconn/s: 0.00 SQL statistics: queries performed: read: 1003268 write: 286648 other: 143324 total: 1433240 transactions: 71662 (1193.47 per sec.) queries: 1433240 (23869.32 per sec.) ignored errors: 0 (0.00 per sec.) reconnects: 0 (0.00 per sec.) General statistics: total time: 60.0439s total number of events: 71662 Latency (ms): min: 4.48 avg: 13.40 max: 142.82 95th percentile: 36.89 sum: 960169.64 Threads fairness: events (avg/stddev): 4478.8750/88.00 execution time (avg/stddev): 60.0106/0.00読み取り専用トランザクションの OLTP パフォーマンスをテストします。
次のコマンドを実行してテストを行います (詳細については、「SysBench パラメーター」をご参照ください):
説明テストには、購入ページで推奨されているゾーンのインスタンスを使用することを推奨します。
## テストに使用するデータを準備します。 sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300 --threads=XXX oltp_read_only prepare ## ワークロードを実行します。 sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300 --threads=XXX --percentile=95 --rand-type="uniform" --report-interval=1 oltp_read_only run ## テストに使用したデータを削除します。 sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300 --threads=XXX --percentile=95 oltp_read_only cleanupテスト結果の例:
QPS: 26130.73
RT: 33.72 ms
[ 55s ] thds: 16 tps: 1881.00 qps: 26417.97 (r/w/o: 26417.97/0.00/0.00) lat (ms,95%): 33.72 err/s: 0.00 reconn/s: 0.00 [ 56s ] thds: 16 tps: 1831.01 qps: 25564.09 (r/w/o: 25564.09/0.00/0.00) lat (ms,95%): 34.33 err/s: 0.00 reconn/s: 0.00 [ 57s ] thds: 16 tps: 1914.99 qps: 26829.90 (r/w/o: 26829.90/0.00/0.00) lat (ms,95%): 33.12 err/s: 0.00 reconn/s: 0.00 [ 58s ] thds: 16 tps: 1930.00 qps: 27013.02 (r/w/o: 27013.02/0.00/0.00) lat (ms,95%): 33.12 err/s: 0.00 reconn/s: 0.00 [ 59s ] thds: 16 tps: 1901.00 qps: 26569.06 (r/w/o: 26569.06/0.00/0.00) lat (ms,95%): 33.72 err/s: 0.00 reconn/s: 0.00 [ 60s ] thds: 16 tps: 1933.99 qps: 27157.92 (r/w/o: 27157.92/0.00/0.00) lat (ms,95%): 33.12 err/s: 0.00 reconn/s: 0.00 SQL statistics: queries performed: read: 1568952 write: 0 other: 0 total: 1568952 transactions: 112068 (1866.48 per sec.) queries: 1568952 (26130.73 per sec.) ignored errors: 0 (0.00 per sec.) reconnects: 0 (0.00 per sec.) General statistics: total time: 60.0410s total number of events: 112068 Latency (ms): min: 3.03 avg: 8.57 max: 84.14 95th percentile: 33.72 sum: 960237.13 Threads fairness: events (avg/stddev): 7004.2500/96.69 execution time (avg/stddev): 60.0148/0.01書き込み専用トランザクションの OLTP パフォーマンスをテストします。
テストを実行するには、次のコマンドを実行します(詳細については、「SysBench パラメーター」をご参照ください):
## テストに使用するデータを準備します。 sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300 --threads=XXX oltp_write_only prepare ## ワークロードを実行します。 sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300 --threads=XXX --percentile=95 --rand-type="uniform" --report-interval=1 oltp_write_only run ## テストに使用したデータを削除します。 sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300 --threads=XXX --percentile=95 oltp_write_only cleanupテスト結果の例:
TPS: 4255.01
RT: 16.71 ms
[ 56s ] thds: 16 tps: 4458.17 qps: 26789.02 (r/w/o: 0.00/17871.68/8917.34) lat (ms,95%): 14.21 err/s: 0.00 reconn/s: 0.00 [ 57s ] thds: 16 tps: 4416.02 qps: 26472.15 (r/w/o: 0.00/17640.10/8832.05) lat (ms,95%): 16.41 err/s: 0.00 reconn/s: 0.00 [ 58s ] thds: 16 tps: 3919.11 qps: 23508.64 (r/w/o: 0.00/15670.43/7838.21) lat (ms,95%): 17.63 err/s: 0.00 reconn/s: 0.00 [ 59s ] thds: 16 tps: 4089.00 qps: 24559.02 (r/w/o: 0.00/16381.01/8178.01) lat (ms,95%): 18.28 err/s: 0.00 reconn/s: 0.00 [ 60s ] thds: 16 tps: 4353.28 qps: 26100.68 (r/w/o: 0.00/17394.12/8706.56) lat (ms,95%): 19.65 err/s: 0.00 reconn/s: 0.00 SQL statistics: queries performed: read: 0 write: 1021552 other: 510776 total: 1532328 transactions: 255388 (4255.01 per sec.) queries: 1532328 (25530.04 per sec.) ignored errors: 0 (0.00 per sec.) reconnects: 0 (0.00 per sec.) General statistics: total time: 60.0192s total number of events: 255388 Latency (ms): min: 1.28 avg: 3.76 max: 182.50 95th percentile: 16.71 sum: 959762.69 Threads fairness: events (avg/stddev): 15961.7500/525.08 execution time (avg/stddev): 59.9852/0.00
説明SysBench は複数の標準ベンチマークモデルを提供します。ビジネスシナリオに合わせて適切なモデルを選択できます。