適応型自動バキュームを構成する

このページでは、AlloyDB for PostgreSQL の適応型自動バキュームの概要と構成方法について説明します。

バキュームは、PostgreSQL データベースのメンテナンス オペレーションで重要な役割を果たします。これは、更新または削除された行によって使用されているストレージ容量を再利用し、テーブルやインデックスの肥大化を防ぐために使用されます。また、トランザクション ID のラップアラウンドを防ぐためにトランザクション ID を凍結したり、テーブル統計情報を更新したりするためにも使用されます。

掃除の詳細については、定型化されたバキュームをご覧ください。

バキューム プロセスとテーブル統計情報の集約更新を自動化するため、AlloyDB は適応型自動バキュームをサポートしています。適応型自動バキュームでは、ワークロードの変更時にバキューム ワークロードを自動的に調整し、デッドタプルを削除してテーブル統計情報を更新します。

Autovacuum は、トランザクション ID のラップアラウンドを防ぐことで、アプリケーション トランザクションの信頼性と一貫性を維持し、システムの高可用性を維持します。

AlloyDB では、デフォルトで適応型自動バキュームが有効になっています。AlloyDB で適応型自動バキュームを無効にしたり、変更したりするには、データベース フラグを使用します

利点

適応型自動バキュームには次の利点があります。

  • リソースの自動調整。AlloyDB は、システムのパフォーマンスに影響を与えることなく、ワークロードのリアルタイムのステータスと使用可能なリソースに基づいて、バキューム プロセスの CPU、I/O、バキューム プロセスの数、メモリなどのリソースを自動的に調整します。

  • トランザクション ID のラップアラウンドの防止。AlloyDB は、バキュームの進行状況とトランザクション ID の消費速度をモニタリングします。必要に応じて、AlloyDB はデータベース内のすべてのテーブルをバキュームしてトランザクション ID の使用量をスロットリングし、トランザクション ID のラップアラウンドを防ぎます。

  • テーブルの定期的なバキューム。AlloyDB は、デッドタプルの数とスキャンが必要なページに基づいて自動バキュームをトリガーします。デッドタプルをタイムリーに削除して、テーブルやインデックスの肥大化を防ぎます。

  • ブロッカーの自動検出。AlloyDB は、長時間実行されているトランザクション、孤立した準備済みトランザクション、孤立したレプリケーション スロットなどのブロッカーを自動的に検出し、postgres ログに次のような警告メッセージを表示します。

    Found a backend process PROCESS_ID with a long running transaction whose transaction
    id age AGE is larger than or equal to the transaction age threshold AGE_THRESHOLD.
    

適応型自動バキュームを構成する

デフォルトでは、AlloyDB で適応型自動バキュームが有効になっています。アダプティブ自動バキュームを無効にするには、インスタンスの enable_google_adaptive_autovacuum データベース フラグを off に設定します。

データベース フラグの設定の詳細については、インスタンスのデータベース フラグを構成するをご覧ください。

AlloyDB は、バキュームと自動バキュームに関連するいくつかの標準 PostgreSQL データベース フラグ(vacuum_cost_delayautovacuum_vacuum_cost_delay など)をサポートしています。適応型自動バキュームは実際のワークロードに合わせて動作を適応および最適化するため、適応型自動バキュームを機能させるためにこれらのフラグのいずれかに値を設定する必要はありません。これらのフラグに値を設定すると、アダプティブ自動バキュームは設定を反映して動作を調整します。

バキュームと自動バキュームに関連するサポートされている PostgreSQL データベース フラグの完全なリストについては、バキューム フラグ自動バキューム フラグをご覧ください。