问题前提:
错误Log:
org.postgresql.util.PSQLException: FATAL: sorry, too many clients already.
1.项目有时抛出
2.项目启动失败,抛出
问题原因
1.服务端连接数 > postgres默认连接数
2.服务端设置连接池的数量 > postgres默认连接数
解决方案
一 .在/var/lib/pgsql/{version_number}/data/postgresql.conf中修改max_connection和shared_buffers
将
max_connections = 100
shared_buffers = 24MB
修改为
max_connections = 300
shared_buffers = 80MB
max_connections = 100 表示设置了最大连接数为100。这意味着数据库最多同时允许100个客户端连接到服务器。
shared_buffers = 24MB 表示为共享缓存分配了24MB的内存。共享缓存是用来缓存频繁查询的数据块,以便快速响应查询。这个值对数据库系统的性能至关重要,应根据系统的实际情况进行适当调整。
二.如果是docker环境则docker compose可以按如下修改:
command: postgres -c 'max_connections=300'
postgres:
image: postgres:13.5
command: postgres -c 'max_connections=300'
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
volumes:
- postgres_data:/var/lib/postgresql/data
ports:
- '5432:5432'