Executar o ajuste inteligente na Base 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 flexível do Banco de Dados do Azure para PostgreSQL e adapta dinamicamente o banco de dados à sua carga de trabalho.

Esta funcionalidade inclui duas funções de afinação automática:

  • Ajuste de vácuo automático: Esta função rastreia a taxa de inchaço e ajusta as configurações de vácuo automático de acordo. Ele leva em consideração o uso de recursos atual e previsto para evitar interrupções na carga de trabalho.
  • Ajuste de gravação: essa função monitora o volume e os padrões das operações de gravação e modifica parâmetros que afetam o desempenho de gravação. Esses ajustes melhoram 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.

Porquê uma afinação inteligente?

O processo de autovacuum é 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 funcionando sem problemas.

Igualmente importante é o ajuste das operações de gravação dentro do banco de dados. Essa tarefa normalmente cabe aos administradores de banco de dados. O monitoramento constante de um banco de dados e o ajuste fino das operações de gravação podem ser desafiadores e demorados. Essa tarefa se torna cada vez mais complexa quando você lida com vários bancos de dados.

É aqui que entra a sintonia inteligente. 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. Você pode então se concentrar em outras tarefas importantes.

A função de ajuste de vácuo automático no ajuste inteligente monitora a taxa de inchaço e ajusta as configurações conforme necessário para a utilização ideal dos recursos. Ele gerencia proativamente o processo de "limpeza" do banco de dados e reduz os 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. Ajusta de forma inteligente parâmetros como bgwriter_delay, checkpoint_completion_target, max_wal_sizee min_wal_size. Ao fazê-lo, melhora o desempenho e a fiabilidade do sistema, mesmo sob cargas de escrita elevadas.

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 funciona o ajuste inteligente?

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

O processo permite que o banco de dados se ajuste dinamicamente à sua carga de trabalho, discernindo a taxa de inchaço 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 melhoram o desempenho da sua carga de trabalho e evitam possíveis armadilhas.

Ajuste de vácuo automático

O ajuste inteligente ajusta cinco parâmetros relacionados ao autovácuo: autovacuum_vacuum_scale_factor, autovacuum_cost_limit, autovacuum_naptime, autovacuum_vacuum_thresholde autovacuum_vacuum_cost_delay. Estes parâmetros regulam componentes como:

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

Importante

O ajuste inteligente modifica os parâmetros relacionados ao autovácuo no nível do servidor, não em níveis de tabela individuais. Além disso, se o autovacuum estiver desligado, o ajuste inteligente não poderá funcionar corretamente. Para que o ajuste inteligente otimize o processo, o recurso de vácuo automático deve ser ativado.

Embora o daemon de autovácuo acione duas operações (VACUUM e ANALYZE), o ajuste inteligente ajusta apenas o VACUUM processo. Atualmente, esse recurso não ajusta o processo, que reúne estatísticas sobre o ANALYZE 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 plano de execução de consulta mais adequado.

O ajuste inteligente inclui salvaguardas 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. Desta forma, o ajuste inteligente garante um equilíbrio entre operações de limpeza eficazes e o desempenho geral do seu sistema.

Quando o ajuste inteligente está otimizando o autovácuo, ele considera o inchaço médio do servidor usando estatísticas sobre tuplas vivas e mortas. Para diminuir o inchaço, o ajuste inteligente pode reduzir parâmetros como o fator de escala ou o naptime. Pode desencadear o VACUUM processo mais cedo e, se necessário, diminuir o atraso entre as rodadas.

Por outro lado, se o inchaço for mínimo e o processo de autovácuo for muito agressivo, o ajuste inteligente pode aumentar parâmetros como atraso, fator de escala e naptime. Esse equilíbrio minimiza o inchaço e ajuda a garantir que o processo de autovácuo esteja usando recursos de forma eficiente.

Grava sintonia

O ajuste inteligente ajusta quatro parâmetros relacionados ao ajuste de gravação: bgwriter_delay, checkpoint_completion_target, max_wal_sizee min_wal_size.

O bgwriter_delay parâmetro determina a frequência na qual o processo de gravação 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. Os outros são o processo de checkpointer e gravações back-end (processos de cliente padrão, como conexões de aplicativos).

A principal função do processo de gravação em segundo plano é aliviar a carga do processo de checkpointer principal e diminuir a tensão das gravações de back-end. O bgwriter_delay parâmetro rege a frequência das rodadas do gravador em segundo plano. Ao ajustar esse parâmetro, você também pode otimizar o desempenho de consultas DML (Data Manipulation Language).

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 checkpointer. Os pontos de verificação ocorrem em intervalos constantes que definem (a menos que checkpoint_timeout sejam forçados por exceder o espaço configurado). Para evitar sobrecarregar o sistema de E/S com uma onda 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 checkpoint_completion_target parâmetro 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, porque distribui a carga de E/S pelo período de tempo máximo. Em casos raros, os pontos de verificação podem não terminar a tempo devido a flutuações inesperadas no número de segmentos necessários do Write-Ahead Logging (WAL). O impacto potencial no desempenho é a razão pela qual checkpoint_completion_target é uma métrica alvo para ajuste inteligente.

Problemas conhecidos e de limitações

  • O ajuste inteligente faz otimizações apenas em intervalos específicos. É possível que o recurso não faça alterações.
  • O ajuste inteligente não ajusta ANALYZE as configurações.
  • O ajuste de vácuo automático é atualmente suportado para as camadas de computação de servidor de uso geral e memória otimizada que têm quatro ou mais vCores. A camada de computação do servidor Burstable não é suportada.

Próximos passos