Execute o ajuste inteligente no Banco de Dados do Azure para PostgreSQL – Servidor Flexível

APLICA-SE A: Banco de Dados do Azure para PostgreSQL – Servidor Flexível

O servidor flexível do Banco de Dados do Azure para PostgreSQL tem um recurso de ajuste inteligente projetado para aprimorar o desempenho automaticamente e ajudar a evitar problemas. O ajuste inteligente monitora continuamente o status do banco de dados do servidor flexível do Banco de Dados do Azure para PostgreSQL e adapta dinamicamente o banco de dados à sua carga de trabalho.

Esse recurso é composto por duas funções de ajuste automático:

  • Ajuste de vácuo automático: essa função acompanha a taxa de sobrecarga e ajusta as configurações de vácuo automático conforme o necessário. Ele é aplicado no uso de recursos atuais e previstos para evitar interrupções na carga de trabalho.
  • Ajuste de gravações: essa função monitora o volume e os padrões das operações de gravação e modifica os parâmetros que afetam o desempenho de gravação. Esses ajustes aprimoram o desempenho e a confiabilidade do sistema, para evitar proativamente possíveis complicações.

Você pode habilitar o ajuste inteligente usando o portal do Azure ou a CLI do Azure.

Por que usar o ajuste inteligente?

O processo de autovácuo é uma parte crítica da manutenção da integridade e do desempenho de um banco de dados de servidor flexível do Banco de Dados do Azure para PostgreSQL. Ele ajuda a recuperar o armazenamento ocupado por linhas “mortas”, liberando espaço e mantendo o banco de dados em execução sem problemas.

O ajuste de operações de gravação no banco de dados é igualmente importante. Essa tarefa normalmente se enquadra em administradores de banco de dados. Monitorar constantemente um banco de dados e fazer o ajuste fino de operações de gravação pode tornar-se uma tarefa desafiadora e demorada. Essa tarefa se torna cada vez mais complexa quando você está lidando com vários bancos de dados.

É aqui que o ajuste inteligente entra em cena. Em vez de supervisionar e ajustar manualmente seu banco de dados, você pode usar o ajuste inteligente para monitorar e ajustar automaticamente o banco de dados. Em seguida, você pode se concentrar em outras tarefas importantes.

A função de ajuste de vácuo automático no ajuste inteligente monitora a taxa de sobrecarga e ajusta as configurações conforme necessário para a utilização ideal de recursos. Ela gerencia proativamente o processo de “limpeza” do banco de dados e atenua problemas de desempenho que dados desatualizados podem causar.

A função de ajuste de gravações observa a quantidade e os padrões transacionais das operações de gravação. Ele ajusta de forma inteligente parâmetros como bgwriter_delay, checkpoint_completion_target, max_wal_sizee min_wal_size. Ao fazer isso, ela aprimora o desempenho e a confiabilidade do sistema, mesmo sob altas cargas de gravação.

Ao usar o ajuste inteligente, você pode economizar tempo e recursos valiosos confiando no servidor flexível do Banco de Dados do Azure para PostgreSQL para manter o desempenho ideal de seus bancos de dados.

Como o ajuste inteligente funciona?

O ajuste inteligente é um processo de monitoramento e análise contínuo que não só aprende sobre as características da sua carga de trabalho, mas também acompanha a carga atual e o uso de recursos, como CPU ou IOPS. Ele não perturba as operações normais da carga de trabalho do aplicativo.

O processo permite que o banco de dados se ajuste dinamicamente à carga de trabalho estimando a taxa de sobrecarga atual, o desempenho de gravação e a eficiência do ponto de verificação em sua instância. Com esses insights, o ajuste inteligente implanta ações de ajuste que aprimoram o desempenho da carga de trabalho e evitam possíveis armadilhas.

Ajuste de vácuo automático

O ajuste inteligente ajusta cinco parâmetros relacionados ao vácuo automático: autovacuum_vacuum_scale_factor, autovacuum_cost_limit, autovacuum_naptime, autovacuum_vacuum_threshold e autovacuum_vacuum_cost_delay. Esses parâmetros regulam componentes como:

  • A fração da tabela que define um processo VACUUM.
  • O limite de atraso de vácuo baseado em custo.
  • O intervalo de pausa entre execuções de vácuo automático.
  • A contagem mínima de tuplas atualizadas ou inativas necessárias para iniciar um processo VACUUM.
  • A duração da pausa entre os ciclos de limpeza.

Importante

O ajuste inteligente modifica os parâmetros relacionados ao vácuo automático no nível do servidor, não em níveis de tabela individuais. Além disso, se o vácuo automático estiver desativado, o ajuste inteligente não poderá operar corretamente. Para o ajuste inteligente otimizar o processo, o recurso de vácuo automático deve ser habilitado.

Embora o daemon de vácuo automático dispare duas operações (VACUUM e ANALYZE), o ajuste inteligente faz apenas o ajuste fino do processo VACUUM. No momento, esse recurso não ajusta o processo, que reúne estatísticas sobre o conteúdo da tabela para ajudar o planejador de consultas de servidor flexível do Banco de Dados do Azure para PostgreSQL a escolher o ANALYZE plano de execução de consulta mais adequado.

O ajuste inteligente inclui proteções para medir a utilização de recursos, como CPU e IOPS. Ele não aumentará a atividade de vácuo automático quando sua instância estiver sob carga pesada. Dessa forma, o ajuste inteligente garante um equilíbrio entre as operações de limpeza efetivas e o desempenho geral do sistema.

Quando o ajuste inteligente está otimizando o vácuo automático, ele considera a sobrecarga média do servidor, usando estatísticas sobre tuplas ativas e inativas. Para diminuir a sobrecarga, o ajuste inteligente pode reduzir parâmetros como o fator de escala ou tempo de suspensão. Ele pode disparar o processo VACUUM mais cedo e, se necessário, diminuir o atraso entre os ciclos.

Por outro lado, se a sobrecarga for mínima e o processo de vácuo automático for muito agressivo, o ajuste inteligente poderá aumentar parâmetros como atraso, fator de escala e tempo de suspensão. Esse equilíbrio minimiza a sobrecarga e ajuda a garantir que o processo de vácuo automático esteja usando recursos com eficiência.

Ajuste de gravações

O ajuste inteligente ajusta quatro parâmetros relacionados ao ajuste de gravações: bgwriter_delay, checkpoint_completion_target, max_wal_size e min_wal_size.

O parâmetro bgwriter_delay determina a frequência na qual o processo do gravador em segundo plano é despertado para limpar buffers “sujos” (buffers novos ou modificados). O processo de gravador em segundo plano é um dos três processos no Banco de Dados do Azure para servidor flexível PostgreSQL que manipulam operações de gravação. O outro é o processo de ponto de verificação e gravações de back-end (processo de cliente padrão, como conexões de aplicativo).

A função principal do processo do gravador em segundo plano é aliviar a carga do processo de ponto de verificação principal e diminuir a tensão das gravações de back-end. O parâmetro bgwriter_delay controla a frequência de ciclos do gravador em segundo plano. Ajustando esse parâmetro, você também pode otimizar o desempenho de consultas DML (Linguagem de manipulação de dados).

O checkpoint_completion_target parâmetro faz parte do segundo mecanismo de gravação que o Banco de Dados do Azure para servidor flexível PostgreSQL suporta, especificamente o processo de ponteiro de verificação. Os pontos de verificação ocorrem em intervalos constantes definidos por checkpoint_timeout (a menos que sejam forçados ao exceder o espaço configurado). Para evitar sobrecarregar o sistema de E/S com um aumento de gravações de página, a gravação de buffers sujos durante um ponto de verificação é distribuída por um período de tempo. O parâmetro checkpoint_completion_target controla essa duração usando checkpoint_timeout para especificar a duração como uma fração do intervalo de ponto de verificação.

O valor padrão de checkpoint_completion_target é 0,9 (desde o PostgreSQL 14). Esse valor geralmente funciona melhor, pois distribui a carga de E/S durante o período máximo de tempo. Em casos raros, os pontos de verificação podem não concluir a tempo devido a flutuações inesperadas no número de segmentos WAL (registro em log write-ahead). O potencial impacto no desempenho é o motivo pelo qual checkpoint_completion_target é uma métrica de destino para ajuste inteligente.

Limitações e problemas conhecidos

  • O ajuste inteligente faz otimizações apenas em intervalos específicos. É possível que o recurso não faça nenhuma alteração.
  • O ajuste inteligente não ajusta as configurações ANALYZE.
  • No momento, o ajuste de vácuo automático tem suporte nas camadas de computação do servidor de Uso Geral e Otimizado para Memória com quatro ou mais vCores. Não há suporte para a camada de computação do servidor Com capacidade de intermitência.

Próximas etapas