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_size
e 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_threshold
e 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_size
e 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
- Configurar o ajuste inteligente para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível usando o portal do Azure
- Configurar o ajuste inteligente para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível usando a CLI do Azure
- Guias de resolução de problemas para a Base 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 para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível
- Práticas recomendadas 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
- Query Performance Insight for Azure Database for PostgreSQL - Servidor flexível