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 |
|
|
|
12.17, 13.13, 14.10, 15.5 e versões posteriores |
|
|
|
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.