このトピックでは、MySQL 5.6を実行し、汎用インスタンスタイプとローカルディスクを使用するApsaraDB RDSインスタンスのパフォーマンステストについて説明します。
運用環境をよりよくシミュレートするために、20分以内のQPSメトリックがストレステストに使用されます。
パフォーマンステストの結果は参考用です。 MySQL 5.6を実行するApsaraDB RDSインスタンスの使用方法の詳細については、「ApsaraDB RDS For MySQLインスタンスでの低速SQLステートメントのトラブルシューティング」をご参照ください。
テスト環境
ストレステストでは、ローカルディスクを使用する5つのRDSインスタンスのパフォーマンスをテストするためにsysbenchが使用されます。 RDSインスタンスは異なるインスタンスタイプを使用します。
インスタンスタイプ: rds.mysql.s1.small、rds.mysql.s2.large、rds.mysql.m1.medium、rds.mysql.c1.xlarge、rds.mysql.c2.xlarge
インスタンスファミリー: 汎用インスタンスファミリー
RDSエディション: RDS高可用性エディション
ストレージタイプ: ローカルディスク
設定
パフォーマンスは、データ量、ストレステスト期間、およびパラメーター設定によって大きく影響されます。 ストレステストには、次の設定が使用されます。
データ量: テストするデータ量と各RDSインスタンスのテーブル数が異なります。 したがって、5つの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 RDS for MySQLの標準パラメーターテンプレートに含まれています。 標準パラメーターテンプレートをすべてのRDSインスタンスに適用すると、データの一貫性が最大化され、テスト環境は本番環境に似ています。
テスト結果
2種類のクエリを使用してストレステストを実行します。 データ量に基づいてストレステストの種類を判断できます。
キャッシュベースのクエリのストレステスト: このタイプのストレステストは、少量のデータが含まれるシナリオに適しています。 すべてのデータをInnoDBバッファプールに保存してアクセスできます。 InnoDBバッファプールのサイズを変更する方法の詳細については、「ApsaraDB RDS For 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 | 12,761 | 638 |
2 コア 4 GB (rds.mysql.s2.large) | 3,000,000 | 2 | 1,200 | 2,000 | 16 | 27,521 | 1,306 |
4 コア 16 GB (rds.mysql.m1.medium) | 6,000,000 | 4 | 4,000 | 7,000 | 32 | 59,185 | 2,959 |
8 コア 32 GB (rds.mysql.c1.xlarge) | 6,000,000 | 8 | 8,000 | 12,000 | 32 | 91,941 | 4,597 |
16 コア 64 GB (rds.mysql.c2.xlarge) | 6,000,000 | 16 | 16,000 | 14,000 | 64 | 129,953 | 6,498 |
タイプ2: ディスクI/Oベースのクエリのストレステスト
インスタンスタイプ | 単一テーブル内のデータボリューム | テーブル数 | 最大接続数 | IOPS | sysbenchスレッドの数 | QPS | TPS |
1 コア 2 GB (rds.mysql.s1.small) | 16,000,000 | 1 | 600 | 1,000 | 16 | 1,087 | 54 |
2 コア 4 GB (rds.mysql.s2.large) | 16,000,000 | 2 | 1,200 | 2,000 | 16 | 2,382 | 119 |
4 コア 16 GB (rds.mysql.m1.medium) | 32,000,000 | 4 | 4,000 | 7,000 | 32 | 8,814 | 441 |
8 コア 32 GB (rds.mysql.c1.xlarge) | 32,000,000 | 8 | 8,000 | 12,000 | 32 | 15,195 | 760 |
16 コア 64 GB (rds.mysql.c2.xlarge) | 32,000,000 | 16 | 16,000 | 14,000 | 32 | 17,764 | 888 |