Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Uma instância de 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 em sua instância de 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
VACUUMprocesso. - 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
VACUUMprocesso. - 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 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 em uma instância de servidor flexível do Azure Database para PostgreSQL que manipula 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 uma instância de servidor flexível do Banco de Dados do Azure para 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
ANALYZEas 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.
Conteúdos relacionados
- Configure o ajuste inteligente usando o portal do Azure.
- Solução de problemas do Banco de Dados do Azure para PostgreSQL.
- Ajuste de vácuo automático no Banco de Dados do Azure para PostgreSQL.
- Solucione problemas de alta utilização de IOPS no Banco de Dados do Azure para PostgreSQL.
- Práticas recomendadas para carregar dados em massa no Banco de Dados do Azure para PostgreSQL.
- Solucione problemas de alta utilização da CPU em um Banco de Dados do Azure para PostgreSQL.
- Insight sobre o Desempenho de Consultas na Base de Dados do Azure para PostgreSQL.