只增加max_connections 是个坏主意。您还需要增加shared_buffers 和kernel.shmmax。
注意事项
max_connections 确定与数据库服务器的最大并发连接数。默认值通常为 100 个连接。
在增加连接数之前,您可能需要扩展您的部署。但在此之前,您应该考虑是否真的需要增加连接限制。
每个 PostgreSQL 连接都会消耗 RAM 来管理连接或使用它的客户端。您拥有的连接越多,您将使用的 RAM 就越多,而这些 RAM 可用于运行数据库。
编写良好的应用通常不需要大量连接。如果您的应用程序确实需要大量连接,请考虑使用诸如pg_bouncer 之类的工具,它可以为您汇集连接。由于每个连接都会消耗 RAM,因此您应该尽量减少它们的使用。
如何增加最大连接数
1.增加max_connection和shared_buffers
在/var/lib/pgsql/{version_number}/data/postgresql.conf
改变
max_connections = 100
shared_buffers = 24MB
到
max_connections = 300
shared_buffers = 80MB
shared_buffers 配置参数确定有多少 内存 专用 供 PostgreSQL 用于缓存数据。
- 如果您的系统具有 1GB 或更多 RAM,则合理的启动
shared_buffers 的值是系统内存的 1/4。
- 您不太可能会发现使用超过 40% 的 RAM 才能更好地工作
比更小的数量(如 25%)
- 请注意,如果您的系统或 PostgreSQL 版本是 32 位,它可能
将 shared_buffers 设置为 2 ~ 2.5GB 以上是不切实际的。
- 请注意,在 Windows 上,shared_buffers 的大值不像
有效,并且您可能会发现保持相对较低的更好结果
并更多地使用操作系统缓存。在 Windows 上,有用的范围是
64MB 到 512MB。
2。更改 kernel.shmmax
您需要将内核最大段大小增加为略大
比shared_buffers.
在文件/etc/sysctl.conf 中设置如下所示的参数。在postgresql重启时生效(下面这行使内核max为96Mb)
kernel.shmmax=100663296
参考文献
Postgres Max Connections And Shared Buffers
Tuning Your PostgreSQL Server