调整托管在 AWS RDS 中的 Postgresql 中的共享缓冲区大小

Man*_*nam 6 postgresql rds amazon-web-services

我们在 AWS RDS 服务器中托管的生产 Postgresql 数据库服务器上面临性能问题。因此,我们在 EC2 实例 Linux 服务器中安装了 postgresql 以进行预生产,并尝试使用 RAM 值的 15% 的共享缓冲区值,我们得到了一些积极的响应。

因此,我们绝对可以将共享缓冲区值分配为 RAM 值的 15% 到 30%。但是当我尝试在我托管在 AWS RDS 中的生产数据库服务器中调整共享缓冲区值时。它说无效的参数值。默认情况下,为共享缓冲区参数分配了以下值。共享缓冲区 = {DBInstanceClassMemory/32768}
请帮助我调整共享缓冲区值的大小,最小为 RAM 内存的 15%。我的实例规格是:2 CPU,7.5 GB RAM (db.m3.large)。

Vao*_*sun 11

如果要设置shared_buffers为 RAM 的 15%,请将147456作为值而不是{DBInstanceClassMemory/32768}...

shared buffers 设置为 8kB 块的数量 => 计算如下:

postgres=> select (15*7.5*1024*1024 /100)/8;
      ?column?
---------------------
 147456.000000000000
(1 row)
Run Code Online (Sandbox Code Playgroud)

在哪里:

  • 15 是 15%
  • 7.5 是 7.5 GB 的 RAM
  • 1024*1024 将 GB 转换为 KB(统一shared_buffers单位
  • 8 是 8kB

那么你必须重启你的 RDS 实例并检查值:

show shared_buffers; 在 psql 中

  • 我建议保留现有格式并将“32768”更新为“54613”(100/15*8*1024)。即使升级或降级实例类也是15% (4认同)