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

Gerenciamento aprimorado de memória no Aurora PostgreSQL

As workloads de cliente que esgotam a memória livre disponível na instância de banco de dados fazem com que o banco de dados seja reinicializado pelo sistema operacional, causando indisponibilidade do banco de dados. O Aurora PostgreSQL lançou recursos aprimorados de gerenciamento de memória que evitam proativamente problemas de estabilidade e reinicializações do banco de dados decorrentes da falta de memória livre. Por padrão, esta melhoria está disponível nas seguintes versões:

  • 15.3 e versões 15 posteriores

  • 14.8 e versões 14 posteriores

  • 13.11 e versões 13 posteriores

  • 12.15 e versões 12 posteriores

  • 11.20 e versões 11 posteriores

Para melhorar o gerenciamento da memória, ele faz o seguinte:

  • 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.

Configurar 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.

Para o Aurora PostgreSQL versões 11.21, 12.16, 13.12, 14.9, 15.4 e versões anteriores:

postgres=>SET rds.memory_allocation_guard = true;

O valor padrão do parâmetro rds.memory_allocation_guard é definido como false no grupo de parâmetros.

Para o Aurora PostgreSQL 12.17, 13.13, 14.10, 15.5 e versões posteriores:

postgres=>rds.enable_memory_management = false;

O valor padrão do parâmetro rds.enable_memory_management é definido como true no grupo de parâmetros.

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 Trabalhar com grupos de parâmetros.

O valor desses parâmetros dinâmicos também pode ser definido por sessão para incluir ou excluir uma sessão no gerenciamento aprimorado da memória.

nota

Não recomendamos desativar esse atributo, pois isso pode gerar um erro de falta de memória que pode induzir à reinicialização do banco de dados pela workload devido ao esgotamento da memória no sistema.