0

我已经在我的 postgres.config 上测试了 pgtune,所以我知道我可以在那里更改什么,但是当我尝试更改 max_connections 或 shared_buffers 时,我无法重新启动 postgres。我只是收到一个错误,但日志中没有任何内容指定错误。(不确定这些日志的去向,但它们不在常规的 pg_log 目录中。)

我的设置是:

shared_buffers = 24MB  # (pgtune wizard 2013-04-11 = 120MB)
max_connections = 120  # (pgtune wizard 2013-04-11 = 200)

我在一个只运行 postgresql 的 512 linode 上。如果我将 shared_buffers 更改为超过 24MB 或将 max_connections 更改为超过 120,我将无法重新启动 postgres。

我正在使用 Ubuntu 12.04.2 LTS 的 Linode xen 实例上运行:

Ubuntu 12.04.2 LTS (GNU/Linux 3.8.4-x86_64-linode31 x86_64)

任何人都知道postgres是否可以自行确定我的系统最大24MB和120个连接?

4

1 回答 1

1

听起来您可能超出了共享内存的非常低的默认限制。

这在手册中有所介绍——参见操作系统资源限制。对于 Linux,请参阅kernel.shmmax

在旁注中,增加max_connections通常是错误的答案。大多数 PostgreSQL 实例在活动连接数量相对较少的情况下工作得最好。通常最好使用连接池来排队工作;您将以更低的资源使用获得更好的整体吞吐量。如果您的应用程序没有内置连接池,您可以使用 PgBouncer 作为外部连接池。

于 2013-04-11T09:25:37.893 回答