MySQL 8.0 リファレンスマニュアル


18.6.5.2 キャッシュサイズの削減

XCom メッセージキャッシュサイズの最小設定は、1 GB から MySQL 8.0.20 までです。 MySQL 8.0.21 からは、最小設定は 134217728 バイト (128 MB) で、使用可能なメモリー量が制限されたホストへのデプロイメントを可能にします。 ホストが不安定なネットワーク上にある場合、group_replication_message_cache_size 設定を非常に低くすることはお薦めしません。これは、メッセージキャッシュが小さいほど、接続が一時的に失われた後にグループメンバーが再接続するのが困難になるためです。

再接続するメンバーが XCom メッセージキャッシュから必要なすべてのメッセージを取得できない場合、分散リカバリを使用して別のメンバーバイナリログから欠落しているトランザクションを取得するには、メンバーはグループから移動して再結合する必要があります。 MySQL 8.0.21 から、グループを離れたメンバーはデフォルトで 3 回の自動再結合を試行するため、オペレータの介入なしでもグループの再結合プロセスを実行できます。 ただし、分散リカバリを使用した再結合は、XCom メッセージキャッシュからメッセージを取得するよりも大幅に長く複雑なプロセスであるため、メンバーが使用可能になり、グループのパフォーマンスが影響を受ける可能性があります。 安定したネットワーク (メンバーの接続の一時的な損失の頻度と期間を最小限に抑える) では、この発生の頻度も最小限に抑える必要があるため、グループはパフォーマンスに大きな影響を与えずに、より小さい XCom メッセージキャッシュサイズを許容できる可能性があります。

キャッシュサイズ制限を減らすことを検討している場合は、次のステートメントを使用して「パフォーマンススキーマ」テーブル memory_summary_global_by_event_name をクエリーすることができます:

SELECT * FROM performance_schema.memory_summary_global_by_event_name
  WHERE EVENT_NAME LIKE 'memory/group_rpl/GCS_XCom::xcom_cache';

これは、キャッシュされたエントリの現在の数やキャッシュの現在のサイズなど、メッセージキャッシュのメモリー使用量の統計を返します。 キャッシュサイズ制限を小さくすると、XCom では、現在のサイズが制限を下回るまで、決定および配信された最も古いエントリが削除されます。 この削除プロセスの進行中に、XCom が一時的にキャッシュサイズ制限を超えている可能性があります。


関連キーワード:  グループ, キャッシュ, リカバリ, 分散, XCom, サイズ, メンバー, 接続, メッセージ, パフォーマンス