如何为 Postgres 设置 Amazon RDS 参数组?

Rob*_*Rob 6 postgresql aws amazon-rds

我正在尝试在 Amazon Web Services 中为 Postgres 9.5 RDS 实例创建一个参数组。我对用于诸如shared_buffersand 之类的单位感到有些困惑min_wal_size。通常,这些将postgresql.conf使用单位指定,例如4GB128kB。如果我在 AWS 中输入相同的值,我会收到一个错误,指出我指定的值无效,但严格来说数字值似乎没问题。有谁知道这些参数期望什么单位?

小智 6

Amazon RDS 文档在“使用 PostgreSQL 参数”主题下为每个参数提供了一个单位表。单位通常也包含在 Amazon RDS Web 控制台的参数组编辑 UI 中每个参数的描述中。

min_wal_size(Postgres 9.5 参数组系列)

  • 默认: 16
  • 单位: MB
  • 允许值:2-201326592
  • 说明:(16MB) 设置将 WAL 缩小到的最小大小。

shared_buffers(Postgres 9.5 参数组系列)

  • 默认: {DBInstanceClassMemory/32768}
  • 单位: 8kB
  • 允许值:16-1073741823
  • 说明:(8kB) 设置服务器使用的共享内存缓冲区的数量。

至于shared_buffers具体而言,文档中有这样一段话:

请注意,某些参数使用您可能不熟悉的单位;例如,shared_buffers 设置服务器使用的 8 KB 共享内存缓冲区的数量。


小智 5

Anthony 的回答很好地解释了 RDS 如何使用这些参数。我只是想添加更多的评论。

您应该遵循RDS的目录

如果将postgresql.conf单位与单位进行比较,您可能会觉得单位有点奇怪。我只想举个例子;

假设您想设置shared_buffers为 1GB。

shared_buffersRDS的单位是8KB。这意味着你应该输入n数字8kb来制作它1 GB

意思是; 1 GB -> 1024 MB -> 1048576 KB.

所以你应该将值设置1048576 KB / 8 KB131072

所以该值应该131072在 RDS 参数组中。

我希望它有帮助。