Configurar o autovacuum adaptável

Esta página oferece uma visão geral do autovacuum adaptativo do AlloyDB para PostgreSQL e descreve como fazer a configuração.

O VACUUM é uma operação importante de manutenção do banco de dados PostgreSQL. Ele é usado para recuperar o espaço de armazenamento ocupado por linhas atualizadas ou excluídas para evitar o inchaço de tabelas ou índices. Ele também é usado para congelar IDs de transação e evitar o encapsulamento de ID de transação e atualizar as estatísticas da tabela.

Para mais informações sobre a aspiração, consulte Aspiração de rotina.

Para automatizar o processo de limpeza e atualizar coletivamente as estatísticas da tabela, o AlloyDB oferece suporte ao autovacuum adaptativo. O autovacuum adaptável permite o ajuste automático da carga de trabalho de vácuo quando ela muda, remove tuplas inativas e atualiza as estatísticas da tabela.

O Autovacuum garante um desempenho transacional confiável e consistente do aplicativo e mantém a alta disponibilidade do sistema, evitando o encapsulamento do ID da transação.

Por padrão, o AlloyDB ativa o autovacuum adaptativo. É possível desativar ou modificar o autovacuum adaptativo no AlloyDB usando flags do banco de dados.

Vantagens

O autovacuum adaptativo 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 dos recursos disponíveis, sem afetar o desempenho do sistema.

  • Evitar o encapsulamento do ID da transação. O AlloyDB monitora o progresso do vácuo e a velocidade de consumo do ID da transação. Quando necessário, o AlloyDB limita o consumo de IDs de transação fazendo a aspiração de todas as tabelas no banco de dados, evitando o encapsulamento do ID da transação.

  • Vazio periódico para tabelas. O AlloyDB aciona o autovacuum com base no número de tuplas inativas e nas páginas que precisam ser verificadas. Ele remove tuplas inativas de forma oportuna para evitar o inchaço 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ão e mostra mensagens de aviso semelhantes à seguinte 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 adaptável

Por padrão, o autovacuum adaptativo é ativado no AlloyDB. É possível desativar o autovacuum adaptável definindo a flag do banco de dados enable_google_adaptive_autovacuum de uma instância como off.

Para mais informações sobre como definir flags do banco de dados, consulte Configurar flags do banco de dados de uma instância.

O AlloyDB oferece suporte a 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 adaptativo funcione, porque ele se adapta e otimiza o comportamento para as cargas de trabalho reais. Se você definir valores nessas flags, o autovacuum adaptativo vai ajustar o comportamento para levar suas preferências em consideração.

Para conferir a lista completa de flags de banco de dados do PostgreSQL com suporte relacionadas a vacuum e autovacuum, consulte flags de vacuum e flags de autovacuum.