このトピックでは、MySQL 8.0 を実行する汎用 ApsaraDB RDS インスタンスのパフォーマンステスト結果について説明します。
本番環境をより適切にシミュレートするために、このストレステストでは読み取り/書き込みメトリックを使用しています。
パフォーマンステストの結果は参考値です。 MySQL 8.0 を実行する ApsaraDB RDS インスタンスの使用方法の詳細については、「ApsaraDB for MySQL インスタンスで遅い SQL 文のトラブルシューティングを行う」をご参照ください。
一部のビジネスシナリオでは、MySQL 5.7 を実行する ApsaraDB RDS インスタンスのパフォーマンスが、MySQL 8.0 を実行する ApsaraDB RDS インスタンスのパフォーマンスよりも高くなる場合があります。
テスト環境
このストレステストでは、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 | 432,922 | 123,692 |
2 コア、4 GB (rds.mysql.s2.large) | 25,000 | 32 | 1,200 | 2,000 | 8 | 599,606 | 171,316 |
4 コア、16 GB (rds.mysql.m1.medium) | 25,000 | 128 | 4,000 | 7,000 | 16 | 1,567,132 | 447,752 |
8 コア、32 GB (rds.mysql.c1.xlarge) | 25,000 | 128 | 8,000 | 12,000 | 32 | 2,923,130 | 835,180 |
16 コア、64 GB (rds.mysql.c2.xlarge) | 25,000 | 128 | 16,000 | 14,000 | 64 | 5,661,264 | 1,617,504 |
タイプ 2: ディスク I/O ベースのクエリのストレステスト

仕様 (インスタンスタイプ) | 単一テーブルのデータ量 | テーブル数 | 最大接続数 | IOPS | SysBench スレッド数 | SysBench 読み取り数
| SysBench 書き込み数
|
1 コア、1 GB (rds.mysql.t1.small) | 80,000 | 32 | 300 | 600 | 8 | 374,584 | 107,024 |
2 コア、4 GB (rds.mysql.s2.large) | 80,000 | 32 | 1,200 | 2,000 | 8 | 439418 | 125548 |
4 コア、16 GB (rds.mysql.m1.medium) | 800,000 | 128 | 4,000 | 7,000 | 16 | 851,326 | 243,236 |
8 コア、32 GB (rds.mysql.c1.xlarge) | 800,000 | 128 | 8,000 | 12,000 | 32 | 2,384,256 | 681,216 |
16 コア、64 GB (rds.mysql.c2.xlarge) | 800,000 | 128 | 16,000 | 14,000 | 64 | 4,584,090 | 1,309,740 |