このトピックでは、MySQL 8.0を実行する汎用ApsaraDB RDSインスタンスのパフォーマンステストの結果について説明します。
本番環境をよりよくシミュレートするために、このストレステストにはReads/Writesメトリックが使用されます。
パフォーマンステストの結果は参考用です。 MySQL 8.0を実行するApsaraDB RDSインスタンスの使用方法の詳細については、「ApsaraDB RDS For MySQLインスタンスでの低速SQLステートメントのトラブルシューティング」をご参照ください。
ビジネスシナリオによっては、MySQL 5.7を実行するApsaraDB RDSインスタンスのパフォーマンスが、MySQL 8.0を実行するApsaraDB RDSインスタンスのパフォーマンスよりも高い場合があります。
テスト環境
このストレステストでは、SysBenchを使用して、ローカルディスクを使用する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高可用性エディション
ストレージタイプ: ローカルディスク
設定
パフォーマンスは、データ量、ストレステスト期間、およびパラメーター設定によって大きく影響されます。 このストレステストでは、次の設定を使用します。
データ量: テストするデータ量と各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 RDS for MySQLの標準パラメーターテンプレートに含まれています。 標準パラメーターテンプレートをすべてのRDSインスタンスに適用すると、データの一貫性が最大化され、テスト環境は本番環境に似ています。
テスト結果
2種類のクエリを使用してストレステストを実行できます。 データ量に基づいてストレステストの種類を判断できます。
キャッシュベースのクエリのストレステスト: このタイプのストレステストは、少量のデータを含むシナリオに適しています。 すべてのデータをInnoDBバッファプールに保存してアクセスできます。 InnoDBバッファプールのサイズを変更する方法の詳細については、「ApsaraDB RDS 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 |