このトピックでは、同じシナリオにおけるPolarDB for MySQLとApsaraDB RDS for MySQLのオンライントランザクション処理 (OLTP) パフォーマンスの比較結果について説明します。
ApsaraDB RDS for MySQLと比較して、PolarDB for MySQLは、クラスターの全体的なパフォーマンスを向上させるために、次の点で最適化されています。
PolarDB for MySQLは、3D XPointストレージメディアのOptaneソリッドステートドライブ (SSD) 、NVMe SSD、RDMA over Converged Ethernet (RoCE) などの主要なハードウェアテクノロジーを採用しています。
PolarDB for MySQLは、新しいハードウェアに基づいてユーザーモードで実行される一連のI/Oおよびネットワークプロトコルスタックを実装します。 これにより、パフォーマンスが向上し、待ち時間が短縮されます。
ロック、I/Oパス、大きなテーブルなどのアイテムは、カーネル層で最適化されます。 これにより、同時実行シナリオのパフォーマンスが向上します。
テストに使用される製品は次のとおりです。
異なる仕様のPolarDB for MySQL Cluster Edition Editionクラスター。
異なる仕様の専用ApsaraDB RDS for MySQL High-availability Editionインスタンス (ローカルSSD) 。
テストの詳細については、「OLTPパフォーマンステストツールとメソッド」をご参照ください。
注意事項
開始する前に、正確なパフォーマンス比較結果を得るために、次の条件が満たされていることを確認してください。
PolarDB for MySQLとApsaraDB RDS for MySQLの仕様は同じです。
PolarDB for MySQLとApsaraDB RDS for MySQLは同じバージョンを使用します。
実際の運用環境で負荷をシミュレートするか、sysbenchベンチマークスイートを使用してパフォーマンスを比較することを推奨します。 このようにして、テストで取得されたパフォーマンスデータは、実際の生産シナリオで取得されたデータに近くなります。
PolarDB for MySQLとApsaraDB RDS for MySQLの読み取りパフォーマンスを比較するために、1つのSQL文だけを使用しないことを推奨します。
PolarDB for MySQLは、コンピューティングをストレージから分離します。これにより、単一のSQLステートメントの応答時間が低下します。 したがって、PolarDB for MySQLの読み取りパフォーマンスは、ApsaraDB RDS for MySQLの読み取りパフォーマンスよりも低くなります。 ただし、オンラインデータベースのキャッシュヒット率は、ほとんどの場合99% を超えます。 最初の読み取り要求だけがI/Oリソースを消費し、読み取りパフォーマンスを低下させます。 後続の読み取り要求は、データがバッファプールに格納されるため、I/Oリソースを消費しません。 その後の読み取りリクエストでは、PolarDB For MySQLとApsaraDB RDS for MySQLは同じ読み取りパフォーマンスを提供します。
書き込みパフォーマンスの比較には、1つのSQL文を使用しないことをお勧めします。 代わりに、本番環境をシミュレートし、ストレステストを実行することを推奨します。
パフォーマンス比較のため、PolarDB for MySQLのプライマリノードと読み取り専用ノードをApsaraDB RDS for MySQLのプライマリインスタンスと読み取り専用インスタンスと比較することを推奨します。 半同期レプリケーションは、ApsaraDB RDS for MySQLの読み取り専用インスタンスに実装されていることに注意してください。 デフォルトでは、PolarDB for MySQLはデータ書き込みにクォーラムメカニズムを使用します。 データが3つのレプリカのうちの2つまたは3つのレプリカのすべてに書き込まれた場合、システムは書き込み操作が成功したと判断します。 PolarDB for MySQLは、ストレージレイヤーでデータの冗長性を実装し、3つのレプリカの強力な一貫性と高い信頼性を保証します。 したがって、適切な比較方法は、PolarDB for MySQLサービスとApsaraDB RDS for MySQLサービスを比較することです。この場合、読み取り専用インスタンスに非同期レプリケーションではなく半同期レプリケーションが実装されます。