我们在AWS RDS服务器上托管的Postgresql数据库服务器上面临性能问题。因此,我们在EC2实例Linux服务器上安装postgresql进行预生产,并尝试使用共享缓冲区值15%的RAM值,得到了一些肯定的响应。
所以,我们肯定可以将共享缓冲区值分配为RAM值的15%到30%。
但当我试图调整AWS RDS中托管的生产DB服务器中的共享缓冲区值时。它显示无效的参数值。
默认情况下,为共享缓冲区参数分配以下值。
共享缓冲区={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的RAM
1024*1024将GB转换为KB(统一到shared_buffers单位
8是8kB
然后您必须重新启动RDS实例,并使用以下命令检查值:
show shared_buffers;在psql中

08-07 15:38