我有一个Postgresql 9.4服务器似乎限制连接到少于我在max_connections中定义的连接.
我将max_connections设置为300.
SHOW max_connections; max_connections ----------------- 300
但是,我发现一旦我的活动连接达到100,我就会开始新的连接超时,这是通过pg_stat_activity的SELECT count(*)来衡量的;
只要该数字低于100,新连接就可以工作.一旦达到100,新连接就会失败:PG :: ConnectionBad:无法连接到服务器:连接超时(Ruby pg库)
超级用户连接似乎有一个例外(即我通过PgAdmin连接),因为我可以通过这种方式超过100门限,尽管不使用超级用户的应用程序会继续超时.
我不知道究竟根本原因是什么.
一些配置设置:
max_connections = 300 superuser_reserved_connections = 2 shared_buffers = 1024MB effective_cache_size = 2048MB work_mem = 8MB maintenance_work_mem = 256MB
其他详情:
> Ubuntu 14.04 64位
> 4GB Linode VPS
> Postgresql 9.4.1
>在Postgresql 9.2上基本上没有相同配置的问题.
>数据库通过pg_dumpall从Postgres 9.2迁移
>内存使用似乎不是问题,免费显示2.1 GB免费,3.5 GB包括缓冲区/缓存.
>这些连接适用于许多不同数据库的许多不同角色,没有单个数据库具有超过5或6个活动连接,并且每个数据库都由其自己的单独角色访问.似乎没有与单个DB或角色的任何连接限制相冲突.
你是否也提高了内核最大段大小?
尝试:
sysctl -w kernel.shmmax=1258291200