共享内存缓冲区 Postgresql

Shared Memory Buffer Postgresql

关于我的身份的一些背景知识:

我目前正在使用 OVH Advance 5 服务器(AMD Epyc 7451 - 24 c / 48 t - 128 GB 内存 - 450x2 GB SSD),我想知道我应该为 Postgresql 使用的规格。

我将使用多进程 运行 24 Python 脚本和 24 个不同的池(使用 asynpg 连接),我通常会用掉大约 40 GB 的 RAM - 这意味着我有大约 88 GB 的空间可供使用。

在我从未真正接触过 Postgres 的任何设置之前;我应该使用什么样的值:

共享内存/最大连接数/随机页面成本?

阅读它,它说建议共享内存通常应占用可用 RAM 的 25% 左右 - 但其他消息来源说 2 - 4 GB 通常是最佳点,所以任何见解都会非常有用赞赏。

  • shared_buffers:从可用 RAM 的 25% 或 8GB 开始,以较低者为准。

    您可以 运行 进行性能测试,看看其他设置是否更适合您的情况。

  • max_connections:保留默认值 100。如果您认为需要超过 50 个连接,请使用连接池 pgBouncer。

  • random_page_cost:如果随机 I/O 和顺序 I/O 的存储速度一样快,请使用 1.1 的设置。否则,坚持使用默认值 4.