Gerenciamento aprimorado de memória no Aurora PostgreSQL - Amazon Aurora

Gerenciamento aprimorado de memória no Aurora PostgreSQL

O Aurora PostgreSQL agora inclui recursos avançados de gerenciamento de memória para otimizar o desempenho e a resiliência do banco de dados sob workloads variadas. Essas melhorias ajudam o Aurora PostgreSQL a manter disponibilidade e capacidade de resposta consistentes, mesmo durante períodos de alta demanda de memória.

Esse recurso está disponível e habilitado por padrão nas seguintes versões do Aurora PostgreSQL para instâncias provisionadas:

  • 15.3 e todas versões secundárias posteriores

  • 14.8 e versões secundárias posteriores

  • 13.11 e versões secundárias posteriores

  • 12.15 e versões secundárias posteriores

  • 11.20 e versões secundárias posteriores

Esse recurso está disponível e habilitado por padrão para as seguintes versões do Aurora PostgreSQL para instâncias do Aurora Serverless:

  • 16.3 e todas versões secundárias posteriores

  • 15.7 e todas versões secundárias posteriores

  • 14.12 e versões secundárias posteriores

  • 13.15 e versões secundárias posteriores

Quando as workloads do cliente usam toda a memória livre disponível, o sistema operacional pode reiniciar o banco de dados para proteger os recursos, levando à indisponibilidade temporária. As novas melhorias no gerenciamento de memória no Aurora PostgreSQL cancelam proativamente determinadas transações quando o sistema sofre alta pressão de memória, ajudando a manter a estabilidade do banco de dados.

As principais características do gerenciamento aprimorado de memória são as seguintes:

  • Cancela transações de banco de dados que solicitam mais memória quando o sistema está se aproximando de uma demanda crítica de memória.

  • Diz-se que o sistema está com demanda crítica de memória quando esgota toda a memória física e está prestes a esgotar a memória swap. Nessas circunstâncias, qualquer transação que solicite memória será cancelada na tentativa de reduzir imediatamente a demanda de memória na instância de banco de dados.

  • Os inicializadores essenciais do PostgreSQL e os agentes em segundo plano, como os agentes de autovacuum, estão sempre protegidos.

Lidar com parâmetros de gerenciamento de memória

Como ativar o gerenciamento de memória

Esse recurso está ativado por padrão. Uma mensagem de erro é exibida quando uma transação é cancelada devido à falta de memória, conforme mostrado no exemplo a seguir:

ERROR: out of memory Detail: Failed on request of size 16777216.
Como desativar o gerenciamento de memória

Para desativar esse recurso, conecte-se ao cluster de banco de dados do Aurora PostgreSQL com psql e use a declaração SET para os valores dos parâmetros, conforme mencionado abaixo.

nota

Recomendamos que você mantenha o gerenciamento de memória habilitado. Isso ajuda a evitar possíveis erros de falta de memória que podem levar a reinicializações do banco de dados induzidas pela workload devido ao esgotamento da memória.

A tabela a seguir mostra como desativar o recurso de gerenciamento de memória das diferentes versões do Aurora PostgreSQL:

Versões do Aurora PostgreSQL Parameter Padrão Comando para desativar o gerenciamento de memória no nível da sessão

11.20, 11.21, 12.15, 12.16, 13.11, 13.12, 14.8, 14.9, 15.3, 15.4

rds.memory_allocation_guard

false

SET rds.memory_allocation_guard = true;

12.17, 13.13, 14.10, 15.5 e versões posteriores

rds.enable_memory_management

true

SET rds.enable_memory_management = false;

nota

O parâmetro rds.memory_allocation_guard foi descontinuado no Aurora PostgreSQL 12.17, 13.13, 14.10, 15.5 e versões posteriores.

Definir os valores desses parâmetros no grupo de parâmetros do cluster de banco de dados evita que as consultas sejam canceladas. Para ter mais informações sobre o grupo de parâmetros do cluster de banco de dados, consulte Grupos de parâmetros para Amazon Aurora.

Limitação

  • Esse recurso não é compatível com a classe de instância db.t3.medium.