Configurar o autovacuum adaptável

Para recuperar o espaço de armazenamento de linhas atualizadas ou excluídas, atualizar as estatísticas da tabela e evitar o encapsulamento de ID de transação, o AlloyDB para PostgreSQL ativa o autovacuum adaptável por padrão. O autovacuum adaptável ajusta automaticamente as cargas de trabalho de vacuum conforme o tráfego do banco de dados muda, remove tuplas mortas e mantém um desempenho transacional consistente e alta disponibilidade.

A limpeza é uma operação de manutenção essencial do PostgreSQL que evita o inchaço de tabelas ou índices e congela os IDs de transação para evitar o encapsulamento de ID de transação. Para mais informações, consulte Vacuuming de rotina.

É possível desativar ou modificar o autovacuum adaptável no AlloyDB usando flags de banco de dados.

Vantagens

O autovacuum adaptável oferece os seguintes benefícios:

  • Ajuste automático de recursos. O AlloyDB ajusta automaticamente recursos como CPU, E/S, número de processos de vácuo e memória para o processo de vácuo com base no status em tempo real da carga de trabalho e nos recursos disponíveis, sem afetar o desempenho do sistema.

  • Prevenção de encapsulamento de ID da transação. O AlloyDB monitora o progresso do vacuum e a velocidade de consumo do ID da transação. Quando necessário, o AlloyDB limita o consumo de IDs de transação limpando todas as tabelas no banco de dados, o que evita o encapsulamento do ID da transação.

  • Limpeza periódica de tabelas. O AlloyDB aciona o autovacuum com base no número de tuplas mortas e nas páginas que precisam ser verificadas. Ele remove tuplas mortas em tempo hábil para evitar o aumento de tabelas ou índices.

  • Detecção automática de bloqueadores. O AlloyDB detecta automaticamente bloqueadores, como transações de longa duração, transações preparadas órfãs, slots de replicação órfãos, e mostra mensagens de aviso semelhantes às seguintes no registro 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.
    

Configurar o autovacuum adaptativo

Por padrão, o vácuo automático adaptativo está ativado no AlloyDB. Para desativar o vácuo automático adaptável, defina a flag de banco de dados enable_google_adaptive_autovacuum de uma instância como off.

Para mais informações, consulte Configurar flags de bancos de dados de uma instância.

O AlloyDB é compatível com várias flags de banco de dados PostgreSQL padrão relacionadas a vacuum e autovacuum, por exemplo, vacuum_cost_delay e autovacuum_vacuum_cost_delay. Não é necessário definir valores em nenhuma dessas flags para que o autovacuum adaptável funcione, porque ele adapta e otimiza o comportamento de acordo com suas cargas de trabalho reais. Se você definir valores nessas flags, o autovacuum adaptável vai ajustar o comportamento para considerar suas preferências.

Para ver a lista completa de flags de banco de dados do PostgreSQL compatíveis relacionadas a vacuum e autovacuum, consulte flags de vacuum e flags de autovacuum.