Resource Managerは、PolarDBがクラスターのCPU使用率とメモリ使用率をリアルタイムで監視するために使用する監視機能です。 リソースは、ユーザースレッドとリソースグループの2つのディメンションからモニタリングできます。 CPU使用率とメモリ使用量をリアルタイムで監視して、システムの実行状態をリアルタイムで取得できます。 これにより、システム負荷のソースを特定し、ビジネスをスケジュールすることで負荷を分散できます。 このトピックでは、リソースマネージャー機能の使用方法について説明します。
前提条件
PolarDBクラスターのバージョンはPolarDB for MySQL 8.0で、リビジョンバージョンは8.0.2.1.0以降です。
注意事項
- スレッドプール機能が有効になっている場合、CPUとメモリの統計は不正確です。 そのため、Resource Managerのswitchパラメーターresource_group_enabledとスレッドプールのswitchパラメーターloose_thread_pool_enabledを同時に有効にすることはできません。
- カスタムリソースグループは設定できません。 すべてのユーザースレッドが接続された後、それらは
user_default
リソースグループに属します。 システムのバックグラウンドスレッドは、sys_default
リソースグループに属しています。
パラメーターの設定
次の表に、リソースマネージャー機能に指定できるパラメーターを示します。
- リソースマネージャー機能を有効にする必要がある場合は、resource_group_enabled、performance_schema、およびcpu_usage_capture_enabledの3つのパラメーターをONに設定する必要があります。
- resource_group_enabled、performance_schema、およびcpu_usage_capture_enabledの3つのパラメーターを指定すると、新しいパラメーター値はクラスター内のすべてのノードが再起動された場合にのみ有効になります。 ノードを再起動する方法の詳細については、「ノードの再起動」をご参照ください。 ノードを再起動する前に、適切なビジネス手配を行うことを推奨します。 ノードを再起動する必要がある場合は注意してください。
パラメーター | 有効値 | 説明 |
resource_group_enabled | オンまたはオフ デフォルト値: OFF。 | リソースグループ機能を有効にするかどうかを指定します。 |
performance_schema | オンまたはオフ デフォルト値: OFF。 | パフォーマンス機能を有効にするかどうかを指定します。 |
cpu_usage_capture_enabled | オンまたはオフ デフォルト値: OFF。 | CPU使用率収集機能を有効にするかどうかを指定します。 |
cpu_usage_capture_interval | 100 ~ 1000 デフォルト値: 500。 | CPU使用率を収集する間隔。 単位:ms。 このパラメーターは、2つの連続したCPU使用率コレクション間の最小間隔を示します。 |
cpu_usage_summarble_interval | 1000 ~ ULONG_MAX デフォルト値: 2000。 | CPU使用率統計が収集される間隔。 単位:ms。 このパラメーターは、システムがクエリ結果に表示するCPU使用率が、指定された期間の過去の平均CPU使用率であることを指定します。 |
performance_schema_minimal | オンまたはオフ デフォルト値: OFF。 | performance_schemaのメモリ使用量を最小限に抑えるかどうかを指定します。 performance_schemaをONに設定すると、デフォルトでパフォーマンス関連の統計が収集されます。 これはパフォーマンスに影響します。 したがって、performance_schemaパラメーターがシステムパフォーマンスに与える影響を軽減する必要がある場合は、performance_schema_minimalパラメーターをonに設定することを推奨します。 説明 このパラメーターは、performance_schemaパラメーターがONに設定されている場合にのみ指定できます。 |
リソースモニタリング
- 次のコマンドを実行して、スレッドによって使用されるリソースを照会できます。
call db_resource_manager.show_processlist_verbose();
説明show_processlist
コマンドを実行すると、サブスレッドに関する情報をクエリ結果に個別に表示することはできません。 その代わりに、並列サブスレッドが使用するリソースをメインスレッドに追加することで、システムは、並列サブスレッドとメインスレッドのリソースを統一して表示することができる。 この場合、CPU使用率は100% を超える可能性があります。show_processlist_verbose
は、サブスレッドに関する情報を個別に表示します。
次のクエリコマンドを実行して、クエリ結果をフィルタリングおよびソートすることもできます。select * from information_schema.processlist_verbose order by cpu_ratio desc limit 10; select * from information_schema.processlist_verbose where time > 60 order by mem desc
- 次のコマンドを実行して、現在のシステム内のすべてのリソースグループとリソースグループの設定を照会できます。
select * from information_schema.resource_group;
説明 情報をクエリする前に、resource_group_enabledパラメーターをONに設定する必要があります。 詳細は、「パラメーター設定」をご参照ください。
パフォーマンスへの影響
リソースマネージャー機能を有効にすると、PolarDBクラスターのパフォーマンスにわずかな影響があります。 さらに、performance_schemaパラメーターを有効にすると、デフォルトで多数のパフォーマンス関連の統計が収集されます。 これはパフォーマンスに大きな影響を与えます。
次の結果は、前述のSysbenchパフォーマンステストから結論付けられています。
- リソースマネージャー機能を有効にし、performance_schema_minimalパラメーターをOFFに設定すると、パフォーマンスは大幅に影響を受け、約8% 減少します。 この結果は、リソースマネージャー機能が無効になっているシナリオのパフォーマンスとパフォーマンスを比較したときに得られます。 performance_schemaおよびresource_group_enabledパラメーターをそれぞれONに設定すると、リソースマネージャー機能が有効になります。 performance_schemaパラメーターとresource_group_enabledパラメーターのそれぞれに既定値OFFを使用すると、リソースマネージャー機能は無効になります。
- リソースマネージャー機能を有効にしてperformance_schema_minimalパラメーターをONに設定すると、パフォーマンスはわずかに影響を受け、約2% 減少します。 この結果は、リソースマネージャー機能が無効になっているシナリオのパフォーマンスとパフォーマンスを比較したときに得られます。 performance_schemaおよびresource_group_enabledパラメーターをそれぞれONに設定すると、リソースマネージャー機能が有効になります。 performance_schemaパラメーターとresource_group_enabledパラメーターのそれぞれに既定値OFFを使用すると、リソースマネージャー機能は無効になります。
- performance_schemaパラメーターがシステムパフォーマンスに与える影響を軽減する必要がある場合は、performance_schema_minimalパラメーターをonに設定することを推奨します。
- 上記のテストでは、Sysbenchを使用して、仕様が8コア、32 GBのPolarDB for MySQLクラスターをテストしました。 パフォーマンスへの影響は、インスタンスの構成とアプリケーションのシナリオによって異なります。