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

Resize Shared buffer size in Postgresql hosted in AWS RDS

我们在 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).

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

shared buffers 设置为 8kB 块的数量 => 计算是这样的:

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

其中:

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

然后您必须重启您的 RDS 实例并检查值:

show shared_buffers; 在 psql