PolarDB for MySQLは、高性能パラメータテンプレート機能を提供します。 このトピックでは、PolarDB for MySQLの高性能パラメーターテンプレートのパラメーター設定と、高性能パラメーターテンプレート機能を有効にする方法について説明します。 このトピックでは、機能を有効にする前後のパフォーマンスの比較も提供します。
概要
PolarDBには多数のパラメーターがあり、特定のシナリオのパラメーター設定が複雑になる可能性があります。 データベースの最適化を簡素化するために、PolarDBは高性能パラメータテンプレート機能を提供します。 テンプレートを既存のクラスターに直接適用することで、そのまま使用できます。または、パラメーターテンプレートの上に、より深い最適化を実装できます。 ほとんどの場合、高性能パラメータテンプレートはデータベースのパフォーマンスを向上させるのに役立ちます。
PolarDB for MySQLの高性能パラメーターテンプレートには、次の表に示すパラメーターが含まれています。
パラメーター | 説明 | 高性能パラメーターテンプレートの値 | デフォルト値 |
innodb_flush_log_at_trx_commit | データベースのディスク書き込みポリシーを指定します。 このパラメーターを0に設定すると、データは1秒間に1回データベースに書き込まれ、更新されます。 | 0 | 1 |
query_cache_type | 高速クエリキャッシュ機能を有効にするかどうかを指定します。 詳細については、「高速クエリキャッシュ」をご参照ください。 この機能により、データベースのクエリのパフォーマンスが向上します。 | 1 | 0 |
パラメーター | 説明 | 高性能パラメーターテンプレートの値 | デフォルト値 |
innodb_flush_log_at_trx_commit | データベースのディスク書き込みポリシーを指定します。 このパラメーターを0に設定すると、データは1秒間に1回データベースに書き込まれ、更新されます。 | 0 | 1 |
loose_innodb_primary_purge_max_id_lag | このパラメーターが18446744073709551104に設定されている場合、読み取り専用ノードの読み取りビューによるプライマリノードの制限は削除されます。 | 18446744073709551104 | N/A |
パラメーター | 説明 | 高性能パラメーターテンプレートの値 | デフォルト値 |
innodb_flush_log_at_trx_commit | データベースのディスク書き込みポリシーを指定します。 このパラメーターを0に設定すると、データは1秒間に1回データベースに書き込まれ、更新されます。 | 0 | 1 |
loose_innodb_lock_sys_rec_partition | トランザクションロックのシャード数。 InnoDBはシャードを使用して、行ロックやテーブルロックなどのトランザクションロックを管理します。 このパラメータは、トランザクションロック管理によって生じる競合オーバーヘッドを低減する。 | 64 | 1 |
loose_query_cache_type | 高速クエリキャッシュ機能を有効にするかどうかを指定します。 詳細については、「高速クエリキャッシュ」をご参照ください。 この機能により、データベースのクエリのパフォーマンスが向上します。 | ON | オフ |
制限事項
この機能は、PolarDB Standard Editionで使用できます。 この機能をサポートするには、PolarDB for MySQLクラスターで次のいずれかのバージョンを実行する必要があります。
リビジョンバージョンが5.6.1.0.30以降のPolarDB for MySQL 5.6クラスター。
リビジョンバージョンが5.7.1.0.11以降のPolarDB for MySQL 5.7クラスター。
リビジョンバージョンが8.0.1.1.21以降のPolarDB for MySQL 8.0.1クラスター。
リビジョンバージョンが8.0.2.2.6.1以降のPolarDB for MySQL 8.0.2クラスター。
クラスターのバージョンを表示する方法については、「エンジンバージョンの照会」をご参照ください。
シナリオとリスク
ほとんどの場合、高性能パラメータテンプレートはデータベースのパフォーマンスを向上させるのに役立ちます。 ただし、高性能テンプレートを適用すると、パフォーマンスを追求するとデータベースにリスクが生じる可能性があります。
データ耐久性は低下する。 データベースがクラッシュすると、innodb_flush_log_at_trx_commitパラメーターが
0
に設定されているため、1秒以内にディスクに書き込まれなかったデータが失われる可能性があります。プライマリ /セカンダリレプリケーションのレイテンシが増加する場合があります。 innodb_flush_log_at_trx_commitパラメーターが
0
に設定されているため、プライマリ /セカンダリ物理レプリケーションのレイテンシは1秒になります。
上記のリスクを防ぐには、innodb_flush_log_at_trx_commitパラメーターを1
にリセットします。
データベースのパフォーマンスと耐久性のトレードオフを企業が許容できる場合は、高性能パラメータテンプレートを適用してデータベースのパフォーマンスを向上させることができます。
高性能パラメータテンプレートを適用する前に、
チケットをAlibaba Cloudテクニカルチームに起票して相談してください。高性能パラメータテンプレートの適用
次のいずれかの方法を使用して、高パフォーマンスパラメーターテンプレートをクラスターに適用できます。
テンプレートを適用した後、テンプレートを有効にするには、データベースを再起動する必要があります。 再起動中に、いくつかの断続的なサービス中断が発生します。 オフピーク時にパラメーターを変更し、アプリケーションがクラスターに自動的に再接続するように設定されていることを確認することをお勧めします。
方法1:
PolarDB コンソールにログインします。
コンソールの左上で、クラスターがデプロイされているリージョンを選択します。
左側のナビゲーションウィンドウで、[パラメーターテンプレート] をクリックします。
[パラメーターテンプレート] ページで、[システムパラメーターテンプレート] をクリックします。
mysql_innodb_5.6_standard_high、mysql_innodb_5.7_standard_high、またはmysql_innodb_8.0_standard_highテンプレートを選択し、[操作] 列の インスタンスに適用 をクリックします。
[インスタンスに適用] パネルで、テンプレートを適用するクラスターを選択し、> をクリックしてクラスターを [選択済みインスタンス] リストに追加します。
クラスターを選択した後、[パラメーターの比較] セクションで、クラスターパラメーターの現在の値と高性能パラメーターテンプレートの値の違いを確認できます。
[OK] をクリックします。
説明テンプレートを適用した後、テンプレートを有効にするには、データベースを再起動する必要があります。
方法2:
PolarDB コンソールにログインします。
コンソールの左上で、クラスターがデプロイされているリージョンを選択します。
クラスターを見つけて、クラスターIDをクリックします。
左側のナビゲーションウィンドウで、
を選択します。[テンプレートの適用] をクリックします。
[テンプレートの適用] ページで、[テンプレート名] ドロップダウンリストからハイパフォーマンスパラメーターテンプレートを選択します。
テンプレートを選択した後、クラスターパラメーターの現在の値と高性能パラメーターテンプレートの値の違いを [パラメーターの比較] セクションで確認できます。
[OK] をクリックします。
説明テンプレートを適用した後、テンプレートを有効にするには、データベースを再起動する必要があります。
性能比較
このセクションでは、PolarDB for MySQL 8.0クラスターのデフォルトパラメーターと高性能パラメーターのパフォーマンスを比較します。 SysbenchとTPC-Cのベンチマークスイートを使用して、高性能パラメーターテンプレートを使用する前後のクラスターのパフォーマンスをテストします。
Sysbenchは、コア指標に基づいて負荷の高いデータベースシステムのパフォーマンスを評価するために使用できる、モジュール式、クロスプラットフォーム、およびマルチスレッドのベンチマークツールです。
TPC-Cは、データベースのオンライントランザクション処理 (OLTP) 機能を評価するために広く使用されているベンチマークです。 TPC-Cは、Transaction Processing Performance Council (TPC) によって開発およびリリースされています。
このトピックで説明するTPC-Cのパフォーマンステストは、TPC-Cベンチマークテストに基づいて実装されていますが、TPC-Cベンチマークテストのすべての要件を満たしているわけではありません。 このトピックで説明するテスト結果は、TPC-Cのベンチマークテストの公開結果と比較することはできません。
テスト環境:
PolarDB for MySQLクラスター:
クラスター仕様: 88コア、720 GBのメモリ。
リビジョンバージョン: 8.0.1.1.21以降。
ストレステスト环境:
ストレステストに使用されるECSインスタンスとPolarDBクラスター間のレイテンシは約1 msです。
ストレステストに使用されるECSインスタンスには、十分なコンピューティングリソースとネットワークリソースがあります。
Sysbenchテスト:
テストセット: read_writeおよびwrite_only。
生データ量: 25テーブル × 25,000行のデータ。
Performance metric - queries per second (QPS): 1、8、16、32、64、128、256、512、および1,024の同時リクエストが行われたときに、データベースで1秒あたりに実行されるSQL文の数。 SQL文には、INSERT、SELECT、UPDATE、およびDELETE文が含まれます。
TPC-Cテスト:
テストツール: TPCC-MySQL。
生データ量: 1,000ウェアハウス。
パフォーマンスメトリック-1分あたりのトランザクション (TPM): 1、8、16、32、64、128、256、512、および1,024の同時リクエストが行われたときにデータベースで1分あたりにコミットされるトランザクションの数。 このテストでは、データベースの最大修飾スループット (MQTh) を測定できます。
テスト結果:
Sysbenchテスト
TPC-Cテスト
テストの結論: 前述のSysbenchおよびTPC-Cのテスト結果は、高パフォーマンスパラメーターテンプレートが集中的なワークロードの下でクラスターのパフォーマンスを向上させることを示しています。 256以上の同時リクエストでは、高性能パラメーターテンプレートによってクラスターのパフォーマンスが2倍以上向上します。