Práticas recomendadas para melhorar o desempenho e a disponibilidade do AlloyDB

Esta página apresenta práticas recomendadas gerais para ajudar a melhorar o desempenho, a durabilidade e a disponibilidade do AlloyDB for PostgreSQL. Esta página destina-se a administradores de bases de dados e programadores que já conhecem o AlloyDB e o PostgreSQL.

Configuração e administração de instâncias

Use as ferramentas do AlloyDB para monitorizar a utilização e o estado da base de dados

Use a tabela seguinte para saber mais sobre as ferramentas do AlloyDB que ajudam a monitorizar a utilização, o estado e o desempenho da base de dados.

Ferramenta AlloyDB Descrição
O relatório de resumo de desempenho Compara as capturas de ecrã das métricas do sistema entre dois pontos diferentes no tempo.
Estatísticas de consultas Ajuda a detetar, diagnosticar e evitar problemas de desempenho de consultas para bases de dados do AlloyDB. Oferece informações de diagnóstico e monitorização intuitivas de autosserviço que vão além da deteção para ajudar a identificar a causa principal dos problemas de desempenho.
Informações do sistema Permite-lhe monitorizar os recursos e as métricas da base de dados, incluindo a quantidade de nós ativos, a utilização da CPU, as ligações de pico, os erros de registo, as transações por segundo e o atraso máximo de replicação.

Siga as diretrizes operacionais

Para garantir que as suas instâncias estão abrangidas pelo contrato de nível de serviço do AlloyDB para PostgreSQL, siga as diretrizes operacionais.

Configure um período de manutenção para a instância principal

Configure um período de manutenção para a sua instância principal para planear quando podem ocorrer atualizações disruptivas. Para mais informações, consulte o artigo Veja e defina os horários de manutenção.

Adicione instâncias de pool de leitura para descarregar o tráfego de leitura

Para cargas de trabalho com muitas leituras, adicione instâncias do conjunto de leitura para descarregar o tráfego de leitura da instância principal.

Configure um ou mais conjuntos de leitura para cada base de dados na instância para ajudar a melhorar o armazenamento em cache.

Considere adicionar nós adicionais por conjunto para facilitar o equilíbrio de carga automático e a elevada disponibilidade.

Faça a gestão do atraso de replicação

O AlloyDB fez várias melhorias para melhorar o atraso na replicação. No entanto, pode deparar-se com cenários em que a repetição de registos está bloqueada ou não consegue acompanhar, o que pode causar um aumento no atraso da replicação.

Por exemplo, se o tamanho da VM principal for muito superior ao tamanho do nó do conjunto de leitura, em cargas de trabalho de escrita intensivas, a VM principal pode gerar registos de registo mais rapidamente do que os nós de leitura os podem reproduzir, especialmente se também estiver a ser executada uma carga de trabalho de leitura intensiva em simultâneo nos nós de leitura. Neste cenário, pode ser útil aumentar o tamanho do nó de leitura para lhe dar mais recursos.

Consoante as necessidades da sua aplicação, pode querer ajustar os seguintes parâmetros:

Não inicie uma operação administrativa antes de a operação anterior estar concluída

As instâncias do AlloyDB não podem aceitar novos pedidos de operações até que a operação anterior seja concluída. Se tentar iniciar uma nova operação antes de a operação anterior ser concluída, o pedido de operação falha. Isto inclui reinícios de instâncias.

O estado da instância na consola não reflete se uma operação está em execução. Google Cloud A marca de verificação verde indica apenas se a instância está no estado RUNNABLE. Para ver se uma operação está em execução, clique em Operações no painel de navegação esquerdo e verifique o estado da operação mais recente.

Configure uma quota de armazenamento suficiente para acomodar a manutenção crítica da base de dados

Por predefinição, pode usar até 16 TB de armazenamento por cluster. Se precisar de mais armazenamento, considere aumentar a sua quota de armazenamento.

Evite a utilização excessiva da CPU

Pode ver a percentagem de CPU disponível que a sua instância está a usar na página de detalhes da instância na Google Cloud consola. Para mais informações, consulte o artigo Monitorize instâncias. Também pode monitorizar a utilização da CPU e receber alertas num limite especificado através da criação de políticas de alerta de limite de métricas.

Para evitar a utilização excessiva, pode dimensionar a instância para um número mais elevado de CPUs. A alteração dos CPUs requer o reinício de uma instância. Se a sua instância já tiver o número máximo de CPUs, recomendamos que divida a base de dados em várias instâncias.

Evite o esgotamento da memória

O AlloyDB tem gestão automática de memória para evitar problemas de falta de memória. No entanto, a pressão constante sobre a memória pode causar problemas de desempenho. Quando procura sinais de esgotamento da memória, deve usar principalmente a métrica de utilização. Recomendamos que esta métrica permaneça abaixo de 90% para um desempenho ideal.

Também pode usar a métrica total_usage para observar a percentagem de memória disponível que a sua instância do AlloyDB está a usar, incluindo a memória usada pelo contentor da base de dados e a memória alocada pela cache do sistema operativo.

Ao observar a diferença entre as métricas de utilização e utilização total, pode identificar a quantidade de memória usada pelos processos em comparação com a quantidade usada pela cache do sistema operativo. Pode reutilizar a memória nesta cache.

Dimensione a sua instância do AlloyDB para aumentar o tamanho da respetiva memória. A alteração do tamanho da memória da instância requer o reinício da instância. Se a sua instância já tiver o tamanho máximo de memória, tem de dividir a base de dados em várias instâncias.

Para mais informações sobre a monitorização da utilização e das métricas de utilização total na Google Cloud consola, consulte o artigo Monitorizar instâncias.

Certifique-se de que a sua instância tem IDs das transações ideais

Pode ver a utilização do ID da transação da sua instância na página do explorador de métricas na Google Cloud consola definindo Resource Type como AlloyDB for PostgreSQL Database e definindo Metric como Percentage of instance's transaction IDs consumed. Para mais informações, consulte Crie gráficos com o explorador de métricas.

O AlloyDB tem um autovacuum adaptável incorporado que ajuda a mitigar problemas relacionados com o vacuum.

Arquitetura de dados

Divida as instâncias grandes em instâncias mais pequenas, sempre que possível

Sempre que possível, use muitos clusters do AlloyDB mais pequenos em vez de usar uma instância grande. A gestão de uma instância monolítica grande apresenta desafios que não são criados por um grupo de instâncias mais pequenas.

Não use demasiadas tabelas de base de dados

Mantenha o número de tabelas da instância inferior a 10 000. O número excessivo de tabelas de base de dados pode afetar o tempo de atualização da base de dados.

Desempenho da consulta

Ative o motor de colunas se executar consultas analíticas

Leia uma vista geral do motor de colunas do AlloyDB. Verifique os tipos de consultas que beneficiam da ativação do motor de colunas.

Pode monitorizar a utilização do motor de colunas.

Se estiver a usar o motor de colunas pela primeira vez, comece por se familiarizar com a colunização automática. Em seguida, pode optar por gerir as colunas manualmente.

Aumente a escala da sua instância para melhorar o desempenho das consultas

Se estiver a ter um desempenho de consulta baixo, considere aumentar a escala da sua instância.

Cada SKU tem configurações de vCPU e memória limitadas, e cada SKU também tem uma cache rápida limitada. Se o tamanho dos seus dados for grande e estiver a ter um desempenho de consulta fraco, considere aumentar a escala para uma instância maior.

Implemente pools de leitura e descarregue consultas de leitura para o pool de leitura

Se a sua aplicação realizar muitas escritas e leituras, considere implementar conjuntos de leitura e descarregar as consultas de leitura para o conjunto de leitura.

Para cargas de trabalho com muitas leituras, adicione instâncias do conjunto de leitura para descarregar o tráfego de leitura da instância principal.

Implementação de aplicações

Use boas práticas de gestão de ligações

Use boas práticas de gestão de ligações, como a pool de ligações e a retirada exponencial.

A utilização de boas técnicas de gestão de ligações melhora a utilização de recursos da sua aplicação e ajuda a manter-se dentro dos limites de ligações do AlloyDB.

Teste a resposta da sua aplicação a atualizações de manutenção

Teste a resposta da sua aplicação a atualizações de manutenção, que podem ocorrer em qualquer altura durante o período de manutenção.

Pode simular uma atualização de manutenção realizando operações de dimensionamento de computação ou atualizando flags estáticas do PostgreSQL que acionam a manutenção com tempo de inatividade reduzido (LDTM).

Durante a LDTM, a sua instância fica indisponível durante um breve período e as ligações existentes são interrompidas. Os testes de LDTM dão-lhe uma melhor compreensão de como a sua aplicação processa a manutenção agendada e da rapidez com que o sistema consegue recuperar.

Teste a resposta da sua aplicação a comutações por falha

Teste a resposta da sua aplicação a comutações por falha, que podem ocorrer em qualquer altura.

Pode iniciar manualmente uma comutação por falha através da Google Cloud consola, da CLI Google Cloud ou da API. Para mais informações, consulte o artigo Iniciar a comutação por falha.

Evite transações elevadas

Mantenha as transações pequenas e curtas. Se for necessária uma atualização de base de dados grande, faça-a em várias transações mais pequenas em vez de executar uma transação grande.

Evite um grande número de subtransações

Evite um grande número de subtransações numa transação quando existirem transações de execução prolongada.

No AlloyDB, a execução de uma transação num bloco de erros PL/pgSQL cria subtransações da transação correspondente ao bloco de erros. O desempenho geral do sistema degrada-se se o número de subtransações exceder 64 na presença de transações de execução prolongada.

Use a versão mais recente do proxy de autenticação

Se estiver a usar o AlloyDB Auth Proxy, certifique-se de que usa a versão mais recente. Para mais informações, consulte o artigo Mantenha o cliente do proxy de autorização atualizado.

Importação e exportação de dados

Restaure a partir de cópias de segurança do Cloud SQL para PostgreSQL para migração

Para facilitar a migração, consulte o artigo Migre do Cloud SQL para PostgreSQL para o AlloyDB.

Para saber como migrar os seus dados do Cloud SQL para PostgreSQL para o AlloyDB através da replicação contínua de dados, consulte o Database Migration Service para PostgreSQL para AlloyDB.

Acelere as importações para instâncias pequenas

Quando importa grandes conjuntos de dados para pequenas instâncias, pode aumentar temporariamente a CPU e a RAM de uma instância para melhorar o desempenho.

Cópia de segurança e recuperação

Proteja os seus dados com as capacidades adequadas do AlloyDB

Use cópias de segurança, recuperação pontual (PITR) e exportações para redundância e proteção. Cada uma protege contra diferentes cenários e complementam-se numa estratégia de proteção de dados robusta.

As cópias de segurança são simples e oferecem uma forma de restaurar os dados na sua instância para o estado em que se encontravam no momento em que fez a cópia de segurança. No entanto, a funcionalidade de cópia de segurança do AlloyDB tem algumas limitações. Se eliminar a instância, as cópias de segurança também são eliminadas. Não pode fazer uma cópia de segurança de uma única base de dados ou tabela. Além disso, se a região onde a instância está localizada estiver indisponível, não pode restaurar a instância a partir dessa cópia de segurança, mesmo numa região disponível.

A recuperação pontual ajuda a recuperar uma instância para um ponto específico no tempo. Por exemplo, se um erro causar uma perda de dados, pode recuperar uma base de dados para o estado em que se encontrava antes de o erro ocorrer. Uma recuperação num determinado momento cria sempre uma nova instância. Não pode fazer uma recuperação num determinado momento para uma instância existente.

As exportações demoram mais tempo a criar, porque é criado um ficheiro externo no Cloud Storage que pode ser usado para recriar os seus dados. As exportações não são afetadas se eliminar a instância. Além disso, só pode exportar uma única base de dados ou tabela, consoante o formato de exportação.

Proteja a sua instância e cópias de segurança contra eliminação acidental

Para ativar a prevenção de eliminação acidental predefinida, crie uma instância do AlloyDB através da Google Cloud consola ou do Terraform.

Use a funcionalidade de exportação no AlloyDB para exportar os seus dados para proteção adicional. Use o Cloud Scheduler com a API Cloud Scheduler para automatizar a gestão de exportações.

Para cenários mais avançados, use o Cloud Scheduler com funções do Cloud Run para automatização.