Esta página oferece uma vista geral do autovacuum adaptável do AlloyDB for PostgreSQL e descreve como configurá-lo.
A limpeza é uma operação de manutenção importante da base de dados PostgreSQL. É usado para reclamar espaço de armazenamento ocupado por linhas atualizadas ou eliminadas para evitar o aumento excessivo da tabela ou do índice. Também é usado para congelar IDs das transações para evitar a repetição de IDs das transações e para atualizar as estatísticas da tabela.
Para mais informações sobre a aspiração, consulte o artigo Aspiração de rotina.
Para automatizar o processo de limpeza e atualizar coletivamente as estatísticas das tabelas, o AlloyDB suporta a limpeza automática adaptativa. A limpeza automática adaptável permite o ajuste automático da carga de trabalho de limpeza quando a sua carga de trabalho muda, remove tuplos inativos e atualiza as estatísticas das tabelas.
O autovacuum garante um desempenho transacional da aplicação fiável e consistente e mantém a elevada disponibilidade do sistema, evitando a repetição do ID da transação.
Por predefinição, o AlloyDB ativa o autovacuum adaptável. Pode desativar ou modificar o autovacuum adaptável no AlloyDB usando flags da base de dados.
Vantagens
O autovacuum adaptativo oferece as seguintes vantagens:
Ajuste automático dos recursos. O AlloyDB ajusta automaticamente os recursos, como a CPU, a E/S, o número de processos de limpeza e a memória para o processo de limpeza, com base no estado em tempo real da carga de trabalho e nos recursos disponíveis, sem afetar o desempenho do sistema.
Prevenção da repetição do ID da transação. O AlloyDB monitoriza o progresso do vacuum e a velocidade de consumo do ID da transação. Quando necessário, o AlloyDB limita o consumo de IDs das transações limpando todas as tabelas na base de dados, o que impede a repetição cíclica dos IDs das transações.
Vácuo periódico para tabelas. O AlloyDB aciona o autovacuum com base no número de tuplos mortos e nas páginas que precisam de ser analisadas. Remove as tuplas mortas de forma oportuna para evitar o inchaço da tabela ou do índice.
Deteção automática de bloqueadores. O AlloyDB deteta automaticamente bloqueios, como transações de execução prolongada, transações preparadas órfãs, slots de replicação órfãos e mostra mensagens de aviso semelhantes às seguintes no registo
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.
Configure o autovacuum adaptável
Por predefinição, o autovacuum adaptável está ativado no AlloyDB. Pode desativar o autovacuum adaptável definindo a flag da base de dados de uma instância como off
.enable_google_adaptive_autovacuum
Para mais informações sobre como definir flags da base de dados, consulte o artigo Configure as flags da base de dados de uma instância.
O AlloyDB suporta várias flags de base de dados PostgreSQL padrão relacionadas com o vacuum e o autovacuum, por exemplo, vacuum_cost_delay
e autovacuum_vacuum_cost_delay
.
Não tem de definir valores em nenhuma destas flags para que o autovacuum adaptável funcione, porque o autovacuum adaptável adapta e otimiza o respetivo comportamento às suas cargas de trabalho reais.
Se definir valores nestas flags, o autovacuum adaptativo ajusta o respetivo comportamento
para ter em conta as suas preferências.
Para ver a lista completa de flags da base de dados PostgreSQL suportadas relacionadas com o vacuum e o autovacuum, consulte as flags do vacuum e as flags do autovacuum.