このトピックでは、MySQL 5.7 を実行する汎用 ApsaraDB RDS インスタンスのパフォーマンステスト結果について説明します。
本番環境をより適切にシミュレートするために、このストレステストでは Reads/Writes メトリックを使用しています。
パフォーマンステストの結果は参考値です。 MySQL 5.7 を実行する ApsaraDB RDS インスタンスの使用方法の詳細については、「ApsaraDB for MySQL インスタンスで遅い SQL 文のトラブルシューティングを行う」をご参照ください。
テスト環境
このストレステストでは、SysBench を使用して、プレミアムローカル SSD を使用する 5 つの RDS インスタンスのパフォーマンスをテストします。 これらの RDS インスタンスは、異なるインスタンスタイプを使用します。
インスタンスタイプ: rds.mysql.t1.small、rds.mysql.s2.large、rds.mysql.m1.medium、rds.mysql.c1.xlarge、および rds.mysql.c2.xlarge
インスタンスファミリ: 汎用
RDS エディション: RDS 高可用性エディション
ストレージタイプ: プレミアムローカル SSD
構成
パフォーマンスは、データ量、ストレステスト期間、および パラメータ設定 によって大きく影響されます。 このストレステストでは、以下の構成を使用しています。
データ量: テスト対象の各 RDS インスタンスのデータ量とテーブル数は異なります。 そのため、一部の RDS インスタンスのテスト結果は類似している可能性があります。
ストレステスト期間: すべての RDS インスタンスのストレステスト期間は 60 秒です。
パラメータ設定:
sync_binlog=1およびinnodb_flush_log_at_trx_commit=1: 毎回送信されるデータがディスクに完全に書き込まれるようにします。rpl_semi_sync_master_enabled=ON: プライマリ RDS インスタンスとセカンダリ RDS インスタンス間のデータ整合性を確保するために、RDS インスタンスの半同期モードを有効にします。Performance_schema=ON: メモリサイズが 8 GB 以上のインスタンスタイプを使用する RDS インスタンスのパフォーマンススキーマを自動的に有効にします。説明これらのパラメータ設定は、ApsaraDB for MySQL の標準パラメータテンプレートに含まれています。 標準パラメータテンプレートがすべての RDS インスタンスに適用されている場合、データ整合性が最大化され、テスト環境は本番環境にさらに近くなります。
テスト結果
ストレステストの実行には、2 種類のクエリを使用できます。 データ量に基づいて、ストレステストの種類を決定できます。
キャッシュベースのクエリのストレステスト: このタイプのストレステストは、少量のデータを含むシナリオに適しています。 アクセスするためにすべてのデータを InnoDB バッファプールに格納できます。 InnoDB バッファプールのサイズを変更する方法の詳細については、「ApsaraDB for MySQL インスタンスの InnoDB バッファプールのサイズを変更する」をご参照ください。
ディスク I/O ベースのクエリのストレステスト: このタイプのストレステストは、大量のデータを含むシナリオに適しています。 アクセスするために、最も頻繁に使用されるデータのみを InnoDB バッファプールに格納できます。 ストレステスト中に、データはディスクから読み取られるか、ディスクに書き込まれ、InnoDB バッファプールが更新されます。
タイプ 1: キャッシュベースのクエリのストレステスト

仕様 (インスタンスタイプ) | 単一テーブルのデータ量 | テーブル数 | 最大接続数 | IOPS | SysBench スレッド数 | SysBench 読み取り数
| SysBench 書き込み数
|
1 コア、1 GB (rds.mysql.t1.small) | 25,000 | 32 | 300 | 600 | 8 | 539,252 | 154,072 |
2 コア、4 GB (rds.mysql.s2.large) | 25,000 | 32 | 1,200 | 2,000 | 8 | 1,145,200 | 327,200 |
4 コア、16 GB (rds.mysql.m1.medium) | 25,000 | 128 | 4,000 | 7,000 | 16 | 2,224,362 | 635,532 |
8 コア、32 GB (rds.mysql.c1.xlarge) | 25,000 | 128 | 8,000 | 12,000 | 32 | 3,747,898 | 1,070,828 |
16 コア、64 GB (rds.mysql.c2.xlarge) | 25,000 | 128 | 16,000 | 14,000 | 64 | 6,779,248 | 1,936,928 |
タイプ 2: ディスク I/O ベースのクエリのストレステスト

仕様 (インスタンスタイプ) | 単一テーブルのデータ量 | テーブル数 | 最大接続数 | IOPS | SysBench スレッド数 | SysBench 読み取り数
| SysBench 書き込み数
|
1 コア、1 GB (rds.mysql.t1.small) | 80,000 | 32 | 300 | 600 | 8 | 412,356 | 117,816 |
2 コア、4 GB (rds.mysql.s2.large) | 80,000 | 32 | 1,200 | 2,000 | 8 | 1,074,525 | 307,036 |
4 コア、16 GB (rds.mysql.m1.medium) | 800,000 | 128 | 4,000 | 7,000 | 16 | 1,645,154 | 470,044 |
8 コア、32 GB (rds.mysql.c1.xlarge) | 800,000 | 128 | 8,000 | 12,000 | 32 | 3,283,966 | 938,276 |
16 コア、64 GB (rds.mysql.c2.xlarge) | 800,000 | 128 | 16,000 | 14,000 | 64 | 6,233,850 | 1,781,100 |