このトピックでは、自己構築データベースのパフォーマンスをApsaraDB for RDSインスタンスのパフォーマンスと比較するテストを実行する際に考慮する必要がある問題について説明します。 ユーザー作成データベースとApsaraDB for RDSインスタンスは、同じ条件で比較する必要があります。 これらの条件には、ネットワーク環境、仕様、およびデータベースエンジンのバージョンが含まれます。
実際のビジネスシナリオでは、ビジネス要件に基づいて、ユーザー作成データベースを選択するか、ApsaraDB for RDSインスタンスを購入できます。 ApsaraDB for RDSインスタンスを購入することを推奨します。 ApsaraDB for RDSインスタンスは完全にホストされています。 セキュリティ、バックアップ、復元、スケーリング、パフォーマンス最適化などの完全なソリューションが含まれています。 これにより、セキュリティとメンテナンスのワークロードの必要性を軽減できます。 たとえば、セカンダリデータベースを作成する必要はありません。 あなたはあなたのビジネスの発展と革新だけに集中する必要があります。
ユーザー作成データベースとApsaraDB For RDSインスタンスの比較の詳細については、「ApsaraDB for RDSインスタンスのユーザー作成データベースとの比較」をご参照ください。
ネットワーク環境
- アプリケーションと自己構築データベースは、異なるECSインスタンスにデプロイされ、ApsaraDB for RDSインスタンスと同じリージョンに存在する必要があります。 これにより、アプリケーションを使用して、内部ネットワークを介してApsaraDB for RDSインスタンスおよびユーザーが作成したデータベースと通信できます。 説明 アプリケーションとユーザー作成データベースが同じECSインスタンスにデプロイされている場合、アプリケーションからユーザー作成データベースへのネットワークパスは、アプリケーションからApsaraDB for RDSインスタンスへのネットワークパスよりも短くなります。 さらに、アプリケーションはCPUリソースを占有します。 これらは, ユーザー作成データベースのパフォーマンスに影響します。 その結果、テスト結果が損なわれ、ユーザーが作成したデータベースの正確な比較結果が表示されません。
- 次のいずれかのアーキテクチャを使用して、アプリケーション、ユーザー作成データベース、およびApsaraDB for RDSインスタンスをデプロイできます。
- アプリケーション、ユーザー作成データベース、およびApsaraDB for RDSインスタンスが同じゾーンにあること。
- ユーザー作成データベースとApsaraDB for RDSインスタンスは同じゾーンにあり、アプリケーションは同じリージョン内の別のゾーンにあります。
仕様
自己構築データベースが存在するECSインスタンスは、ApsaraDB for RDSインスタンスと同じ数のCPUコアとメモリ容量を提供します。
データベースエンジンのバージョン
ユーザー作成データベースとApsaraDB for RDSインスタンスは、同じデータベースエンジンバージョンを実行しています。 たとえば、どちらもMySQL 5.6を実行しています。
データ複製モード
データは、非同期、半同期、同期のいずれかのモードで、プライマリとセカンダリのユーザー作成データベース間、またはプライマリとセカンダリのApsaraDB for RDSインスタンス間でレプリケートできます。 データ複製モードの詳細については、「データ複製モードの変更」をご参照ください。
次の表に、自己構築データベースとApsaraDB for RDSインスタンスでサポートされているデータレプリケーションモードを示します。
ユーザー作成データベース | ApsaraDB for RDSインスタンス |
セカンダリデータベースは提供されず、データ複製は必要ありません。 | データベースシステムはHigh-availability Editionを実行しており、データは非同期モードでレプリケートされます。 |
1つのセカンダリデータベースが提供され、データレプリケーションは非同期モードです。 | データベースシステムはHigh-availability Editionを実行しており、データは非同期モードでレプリケートされます。 |
1つの二次データベースが提供され、データは半同期モードで複製される。 | データベースシステムはHigh-availability Editionを実行しており、データは半同期モードでレプリケートされます。 |
パラメータ設定
ユーザー作成データベースとApsaraDB for RDSインスタンスは、同じパラメーター設定を使用する必要があります。
ApsaraDB For RDSインスタンスのパラメーターの再設定の詳細については、「コンソールを使用したパラメーターの設定」をご参照ください。
ユースケース
シナリオ: 顧客は、オンプレミスのデータセンター内のユーザー作成データベースからApsaraDB for RDSインスタンスにビジネスシステムを移行しています。 ApsaraDB for RDSインスタンスでSQL文を実行するのに必要な時間は、ユーザーが作成したデータベースで必要な時間の2倍です。
原因: ユーザー作成データベースとApsaraDB for RDSインスタンスは、異なるパラメーター設定を使用しています。 設定例:
- ユーザー作成データベースでは、次のパラメーター設定が使用されます。
join_buffer_size = 128M
read_rnd_buffer_size = 128M
tmp_table_size = 128M
- ApsaraDB for RDSインスタンスは、次のパラメーター設定を使用します。
join_buffer_size = 1M
read_buffer_size = 1M
tmp_table_size =256K