我正在使用Postgres DB作为我的产品.在使用光滑3进行批量插入时,我收到一条错误消息:
org.postgresql.util.PSQLException:致命:抱歉,已经有太多客户了.
我的批量插入操作将超过数千条记录.我的postgres的最大连接数为100.
如何增加最大连接数?
Ank*_*kit 163
只是增加 max_connections是坏主意.你需要增加shared_buffers和kernel.shmmax为好.
注意事项
max_connections确定与数据库服务器的最大并发连接数.默认值通常为100个连接.
在增加连接数之前,您可能需要扩展部署.但在此之前,您应该考虑是否确实需要增加连接限制.
每个PostgreSQL连接都使用RAM来管理连接或使用它的客户端.您拥有的连接越多,您将使用的RAM就越多,可以用来运行数据库.
一个编写良好的应用程序通常不需要大量的连接.如果您的应用程序确实需要大量连接,那么请考虑使用pg_bouncer之类的工具,它可以为您提供连接.由于每个连接消耗RAM,您应该寻求最小化它们的使用.
如何增加最大连接数
1.增加max_connection和shared_buffers
在 /var/lib/pgsql/data/postgresql.conf
更改
max_connections = 100
shared_buffers = 24MB
Run Code Online (Sandbox Code Playgroud)
至
max_connections = 300
shared_buffers = 80MB
Run Code Online (Sandbox Code Playgroud)
所述shared_buffers配置参数确定多少存储器是专用到PostgreSQL用于高速缓存数据.
2.更改kernel.shmmax
您将需要增加内核的最大片段大小要稍大
比shared_buffers.
在文件中/etc/sysctl.conf设置参数如下所示.它将在postgresql重新启动时生效(以下行使内核最大化96Mb)
kernel.shmmax=100663296
Run Code Online (Sandbox Code Playgroud)
参考
Jin*_*oss 17
加入Winnie的绝佳答案,
如果有人无法在您的设置中找到postgresql.conf文件位置,您可以随时询问postgres本身.
SHOW config_file;
Run Code Online (Sandbox Code Playgroud)
对我来说,单独更改max_connections就可以了.
Art*_*are 13
如果您的 postgres 实例由 Amazon RDS 托管,Amazon 会根据可用内存量为您配置最大连接数。
他们的文档称,每 1 GB 内存可以获得 112 个连接(无论您有多少内存,连接限制为 5000 个),但我们发现在只有 1 GB 内存的实例中,我们开始收到接近 80 个连接的错误消息。增加到 2 GB 让我们可以毫无问题地使用 110 个连接(可能更多,但这是我们迄今为止尝试过的最多连接)。我们只需几分钟就能将现有实例的内存从 1 GB 增加到 2 GB分钟很容易。
以下是相关亚马逊文档的链接:
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.MaxConnections
| 归档时间: |
|
| 查看次数: |
136564 次 |
| 最近记录: |