Gostaria de saber como otimizar o uso de RAM do meu banco de dados PostgreSQL implantado no Kubernetes.
Particularmente estou interessado em configurar os valores shared_buffers
e effective_cache_size
.
Normalmente, a recomendação declarada por várias fontes é usar:
Se você tiver um sistema com 1 GB ou mais de RAM, um valor inicial razoável para shared_buffers é 1/4 da memória em seu sistema. Se você tiver menos RAM, terá que considerar com mais cuidado a quantidade de RAM que o sistema operacional está ocupando; perto de 15% é mais típico lá. Existem algumas cargas de trabalho em que configurações ainda maiores para shared_buffers são eficazes, mas, como o PostgreSQL também depende do cache do sistema operacional, é improvável que você ache que usar mais de 40% de RAM funcione melhor do que uma quantidade menor. ( site PostgreSQL )
O valor deve ser definido de 15% a 25% da RAM total da máquina ( site EDB )
Não mais que 50% da RAM disponível ( ajuste EDB PostgreSQL )
Como os contêineres usam muito menos RAM em segundo plano, qual seria uma boa recomendação para definir o valor shared_buffers?
No momento, o valor está definido para 25% (1 GB do limite total de contêiner de 4 GB) e noto que ele é preenchido rapidamente.