我正在为我的产品使用Postgres DB。使用slick 3进行批量插入时,出现一条错误消息:
org.postgresql.util.PSQLException:致命:抱歉,已经有太多客户端。
我的批量插入操作将超过数千条记录。我的postgres的最大连接数为100。
如何增加最大连接数?
我正在为我的产品使用Postgres DB。使用slick 3进行批量插入时,出现一条错误消息:
org.postgresql.util.PSQLException:致命:抱歉,已经有太多客户端。
我的批量插入操作将超过数千条记录。我的postgres的最大连接数为100。
如何增加最大连接数?
Answers:
增加 max_connections
只是一个坏主意。你需要增加shared_buffers
和kernel.shmmax
为好。
注意事项
max_connections
确定到数据库服务器的最大并发连接数。默认值通常为100个连接。
在增加连接数之前,您可能需要扩展部署。但是在此之前,您应该考虑是否确实需要增加连接限制。
每个PostgreSQL连接都会消耗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到使用用于高速缓存数据。
2.更改kernel.shmmax
您需要将内核最大段大小增加到稍大
于shared_buffers
。
在文件中/etc/sysctl.conf
设置参数,如下所示。postgresql
重新启动后将生效(以下行将内核设置为96Mb
)
kernel.shmmax=100663296
参考文献
cat /proc/sys/kernel/shmmax
更改之前,请检查当前的kernel.shmmax设置()。在现代系统上,它的设置已经很高得离谱,不应更改。我18446744073692774399
的默认设置是在Ubuntu 18.04上。
更改位于/ var / lib / pgsql / data或/ usr / local / pgsql / data /中的postgresql.conf文件中的max_connections变量