我们正在使用postgres 9.3版本。我们正在获得像“set extra_float_digits = 3”这样的连接作为空闲的最小40个连接。即使我在conf文件中禁用该参数仍然会获得太多连接,我感到很惊讶。
任何人都可以建议我在不使用pgbouncer的情况下在postgres 9.3中避免这些连接。
答案 0 :(得分:0)
https://www.postgresql.org/docs/current/static/runtime-config-client.html:
extra_float_digits(整数)
此参数调整数量 为浮点值显示的数字,包括float4,float8, 和几何数据类型。参数值将添加到标准中 位数(适当时为FLT_DIG或DBL_DIG)。价值可以是 设置为3,包括部分有效数字;这是 特别适用于转储需要恢复的浮点数据 究竟。或者可以将其设置为负值以抑制不需要的数字。看到 第8.1.3节。
extra_float_digits与空闲连接无关。要摆脱idle
连接,请关闭会话。
答案 1 :(得分:0)
您可以使用属性文件配置控制活动和空闲连接创建的数量。例如,下面是Spring Boot Project和Postgres DB的配置。
注意:此配置是Yaml文件
datasource:
driverClassName: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/db
username: test
password: test
tomcat:
# default value is 100 but postgres' default is 100 as well. To prevent "PSQLException: FATAL: sorry, too many
# clients already", we decrease the max-active value here. Which should be sufficient, by the way
max-active: 10
max-idle: 10
min-idle: 5
max-wait: 30000
time-between-eviction-runs-millis: 5000
min-evictable-idle-time-millis: 60000
jmx-enabled: true
jmx-enabled: true
在此配置中,第一次创建连接时将有10个空闲连接。经过1分钟的时间(根据共同点),将有5个空闲连接。
在这种情况下,您可以控制空闲连接的创建次数。
如果您在数据库中执行以下查询,则可以看到连接列表
select * from pg_stat_activity;
select datname, count(*) from pg_stat_activity where state = 'idle' group by datname;
SELECT count(*), state FROM pg_stat_activity GROUP BY 2;