PostgreSQL AWS RDS中未释放/关闭空闲(事务中不空闲)的连接

时间:2018-08-04 05:00:27

标签: postgresql amazon-web-services amazon-rds postgresql-9.3 c3p0

我在AWS RDS中使用C3P0连接池和PostgreSQL(10.3)。

我在低TPS(1 TPS)下进行了2分钟的负载测试,负载测试完成后,根据AWS RDS中的监视板,连接数并未丢失。 (见下文)。 CPU利用率也没有。

enter image description here

我还是数据库新手,不确定是否可以预期?似乎正在达到RDS实例的max_connection。我从select进行了pg_stat_activity,有99%的连接是idle,大多数查询是SHOW TRANSACTION ISOLATION LEVELSELECT 1

这是我的C3P0配置:

maxConnection: 100
initialPoolSize: 1
minPoolSize: 1
acquireIncrement: 1
idleConnectionTestPeriod: 40
maxIdleTime: 20
maxConnectionAge: 30
maxStatements:0
numHelperThread:5
preferredTestQuery: SELECT 1
propertyCycle: 0
testConnectionOnCheckIn: false
testConnectionOnCheckOut: false
debugUnreturnedConnectionStacktraces: false
unreturnedConnectionTimeout: 60
acquireRetryAttempts: 10
acquireRetryDelay: 1000
checkoutTimeout: 10000

任何帮助将不胜感激!预先感谢!


负载测试工具:这是公司内部的负载测试工具。一般来说,它正在为服务(5个以上的主机)创建负载以命中我的API,该API会与连接池对话,以连接到connectionPool.getDataSource()。getConnection()(ComboPooledDataSource)。连接池是服务中的一个单例实例,而对API的每次调用都在其自己的线程中。

0 个答案:

没有答案