Configurer l'autovacuum adaptatif

Cette page présente l'autovacuum adaptatif d'AlloyDB pour PostgreSQL et explique comment le configurer.

L'opération de nettoyage est une opération de maintenance importante pour les bases de données PostgreSQL. Il permet de récupérer l'espace de stockage occupé par des lignes mises à jour ou supprimées afin d'éviter l'encombrement des tables ou des index. Il permet également de figer des ID de transaction pour éviter la réinitialisation de l'ID de transaction et de mettre à jour les statistiques du tableau.

Pour en savoir plus sur l'aspiration, consultez Aspiration de routine.

Pour automatiser le processus d'élagage et de mise à jour collective des statistiques des tables, AlloyDB est compatible avec l'élagage automatique adaptatif. L'autovacuum adaptatif permet d'ajuster automatiquement la charge de travail d'aspiration lorsque votre charge de travail change, de supprimer les tupels morts et de mettre à jour les statistiques des tables.

Autovacuum garantit des performances transactionnelles d'application fiables et cohérentes, et maintient une haute disponibilité du système en empêchant la réinitialisation de l'ID de transaction.

Par défaut, AlloyDB active l'autovacuum adaptatif. Vous pouvez désactiver ou modifier l'autovacuum adaptatif sur AlloyDB à l'aide d'indicateurs de base de données.

Avantages

L'autovidage 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 d'élagage et la mémoire pour le processus d'élagage 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.

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

  • Aspirateur périodique pour les tables. AlloyDB déclenche l'autovacuum en fonction du nombre de tuples inactifs et des pages à analyser. Il supprime les tuples inactifs dans les meilleurs délais 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, les emplacements de réplication orphelins et affiche des messages d'avertissement semblables au suivant 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'option de base de données enable_google_adaptive_autovacuum d'une instance sur off.

Pour en savoir plus sur la configuration des options de base de données, consultez la section Configurer les options 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 dans l'une de ces options pour que l'autovacuum adaptatif fonctionne, car il s'adapte et optimise son comportement en fonction de vos charges de travail réelles. Si vous définissez des valeurs dans ces indicateurs, l'ingestion automatique adaptative ajuste son comportement pour tenir compte de vos préférences.

Pour obtenir la liste complète des options de base de données PostgreSQL compatibles liées à vacuum et à autovacuum, consultez les sections Options vacuum et Options autovacuum.