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

时间:2017-02-27 05:38:10

标签: postgresql amazon-web-services rds

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

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

1 个答案:

答案 0 :(得分:4)

如果您想将shared_buffers设置为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的RAM
  • 1024 * 1024将GB转换为KB(与shared_buffers单位统一
  • 8是8kB

然后你必须重启你的RDS实例并用以下方法检查值:

psql中的

show shared_buffers;