如何避免postgres中的空闲连接9.3

时间:2017-05-04 08:26:06

标签: postgresql postgresql-9.3

我们正在使用postgres 9.3版本。我们正在获得像“set extra_float_digits = 3”这样的连接作为空闲的最小40个连接。即使我在conf文件中禁用该参数仍然会获得太多连接,我感到很惊讶。

任何人都可以建议我在不使用pgbouncer的情况下在postgres 9.3中避免这些连接。

2 个答案:

答案 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;