我有一个PostgreSQL 9.4服务器似乎是限制连接less于我在max_connections中定义的。
我有max_connections设置为300。
SHOW max_connections; max_connections ----------------- 300
但是,我发现,一旦我的活动连接数达到100,我就开始获取新的连接,按照SELECT count(*) from pg_stat_activity;
只要这个数字低于100,新的连接就可以工作。 一旦达到100,新的连接失败: PG::ConnectionBad: could not connect to server: Connection timed out (Ruby pg库)
超级用户连接似乎是个例外(即通过PgAdmin进行连接),因为我可以超过100个门限,但不使用超级用户的应用程序将继续超时。
我很茫然地找出根本原因可能是什么。
一些configuration设置:
max_connections = 300 superuser_reserved_connections = 2 shared_buffers = 1024MB effective_cache_size = 2048MB work_mem = 8MB maintenance_work_mem = 256MB
我已经尝试了一些修改这些值,没有任何效果。
其他详情:
free显示2.1 GB免费,3.5 GB,包括缓冲区/caching。 你有没有提高内核最大段的大小呢?
尝试:
sysctl -w kernel.shmmax=1258291200
是否有可能限制了最大用户连接? angular色权限
你可以改变这个
ALTERangular色rolename CONNECTION LIMIT 300;