Configurer l'autovacuum adaptatif

Pour récupérer de l'espace de stockage à partir de lignes mises à jour ou supprimées, mettre à jour les statistiques de table et empêcher la réinitialisation de l'ID de transaction, AlloyDB pour PostgreSQL active l'autovacuum adaptatif par défaut. L'autovacuum adaptatif ajuste automatiquement les charges de travail de nettoyage en fonction de l'évolution du trafic de votre base de données, supprime les tuples morts et maintient des performances transactionnelles constantes et une haute disponibilité.

Le nettoyage est une opération de maintenance PostgreSQL essentielle qui empêche l'encombrement des tables ou des index et fige les ID de transaction pour empêcher la réinitialisation des ID de transaction. Pour en savoir plus, consultez Nettoyage de routine.

Vous pouvez désactiver ou modifier l'autovacuum adaptatif dans AlloyDB à l'aide d'indicateurs de base de données.

Avantages

L'autovacuum adaptatif offre les avantages suivants :

  • Ajustement automatique des ressources AlloyDB ajuste automatiquement les ressources telles que le processeur, les E/S, le nombre de processus de nettoyage et la mémoire pour le processus de nettoyage en fonction de l'état en temps réel de la charge de travail et des ressources disponibles, sans affecter les performances du système.

  • Prévention de la réinitialisation de l'ID de transaction AlloyDB surveille la progression du nettoyage et la vitesse de consommation des ID de transaction. Si nécessaire, AlloyDB limite sa consommation d'ID de transaction en nettoyant chaque table de la base de données, ce qui empêche la réinitialisation des ID de transaction.

  • Nettoyage périodique des tables. AlloyDB déclenche l'autovacuum en fonction du nombre de tuples morts et des pages à analyser. Il supprime les tuples morts en temps opportun pour éviter l'encombrement des tables ou des index.

  • Détection automatique des bloqueurs AlloyDB détecte automatiquement les éléments bloquants tels que les transactions de longue durée, les transactions préparées orphelines et les emplacements de réplication orphelins, et affiche des messages d'avertissement semblables aux suivants dans le journal 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.
    

Configurer l'autovacuum adaptatif

Par défaut, l'autovacuum adaptatif est activé sur AlloyDB. Vous pouvez désactiver l'autovacuum adaptatif en définissant l'indicateur de base de données enable_google_adaptive_autovacuum d'une instance sur off.

Pour en savoir plus sur la définition des indicateurs de base de données, consultez Configurer les indicateurs de base de données d'une instance.

AlloyDB est compatible avec plusieurs indicateurs de base de données PostgreSQL standards liés à vacuum et autovacuum, par exemple vacuum_cost_delay et autovacuum_vacuum_cost_delay. Vous n'avez pas besoin de définir de valeurs pour ces options pour que l'autovacuum adaptatif fonctionne, car il adapte et optimise son comportement en fonction de vos charges de travail réelles. Si vous définissez des valeurs dans ces options, l'autovacuum adaptatif ajuste son comportement pour prendre en compte vos préférences.

Pour afficher la liste complète des indicateurs de base de données PostgreSQL compatibles liés à vacuum et autovacuum, consultez Options vacuum et Options autovacuum.