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 de 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 vácuo automático é 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_size
e 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 contando com o 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
. Atualmente, esse recurso não ajusta o processo ANALYZE
, que coleta estatísticas sobre o conteúdo da tabela para ajudar o planejador de consultas do 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 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 de plano de fundo é um dos três processos no servidor flexível do Banco de Dados do Azure para PostgreSQL que lidam com 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 parâmetro checkpoint_completion_target
faz parte do segundo mecanismo de gravação compatível com o servidor flexível do Banco de Dados do Azure para PostgreSQL, especificamente o processo de ponto 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
- Configurar o ajuste inteligente para Banco de Dados do Azure para PostgreSQL – Servidor Flexível usando o portal do Azure
- Configurar o ajuste inteligente para Banco de Dados do Azure para PostgreSQL – Servidor Flexível usando a CLI do Azure
- Guias de Solução de Problemas para o Banco de Dados do Azure para PostgreSQL — Servidor Flexível
- Ajuste de vácuo automático no Banco de Dados do Azure para PostgreSQL – Servidor Flexível
- Solucionar problemas de alta utilização de IOPS do Banco de Dados do Azure para PostgreSQL - Servidor Flexível
- Melhores práticas para carregar dados em massa no Banco de Dados do Azure para PostgreSQL ─ Servidor Flexível
- Solucionar problemas de alta utilização da CPU no Banco de Dados do Azure para PostgreSQL – Servidor Flexível
- Análise de Desempenho de Consultas para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível