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

インスタンスタイプ | 単一テーブルのデータ量 | テーブル数 | 最大接続数 | IOPS | sysbench スレッド数 | QPS | TPS |
1 コア、2 GB (rds.mysql.s1.small) | 3,000,000 | 1 | 600 | 1,000 | 16 | 22,427 | 1,121 |
2 コア、4 GB (rds.mysql.s2.large) | 3,000,000 | 2 | 1,200 | 2,000 | 16 | 49,984 | 2,499 |
4 コア、16 GB (rds.mysql.m1.medium) | 6,000,000 | 4 | 4,000 | 7,000 | 32 | 95,856 | 4,793 |
8 コア、32 GB (rds.mysql.c1.xlarge) | 6,000,000 | 8 | 8,000 | 12,000 | 32 | 135,598 | 6,800 |
16 コア、64 GB (rds.mysql.c2.xlarge) | 6,000,000 | 16 | 16,000 | 14,000 | 64 | 220,562 | 11,028 |
タイプ 2: ディスク I/O ベースクエリのストレステスト

インスタンスタイプ | 単一テーブルのデータ量 | テーブル数 | 最大接続数 | IOPS | sysbench スレッド数 | QPS | TPS |
1 コア、2 GB (rds.mysql.s1.small) | 16,000,000 | 1 | 600 | 1,000 | 16 | 1,208 | 60 |
2 コア、4 GB (rds.mysql.s2.large) | 16,000,000 | 2 | 1,200 | 2,000 | 16 | 2,720 | 136 |
4 コア、16 GB (rds.mysql.m1.medium) | 32,000,000 | 4 | 4,000 | 7,000 | 32 | 9,499 | 475 |
8 コア、32 GB (rds.mysql.c1.xlarge) | 32,000,000 | 8 | 8,000 | 12,000 | 32 | 16,284 | 814 |
16 コア、64 GB (rds.mysql.c2.xlarge) | 32,000,000 | 16 | 16,000 | 14,000 | 32 | 18,979 | 945 |