alibaba / druid

阿里云计算平台DataWorks(https://help.aliyun.com/document_detail/137663.html) 团队出品,为监控而生的数据库连接池
https://github.com/alibaba/druid/wiki
Apache License 2.0
27.94k stars 8.57k forks source link

使用中发现druid很占内存 #1374

Open majinju opened 8 years ago

majinju commented 8 years ago

我通过jvisualvm分析,看到resultsetproxyImpl占用内存最多,内存占用最高5个druid占了3个,不知是不是我哪里没有配置对

wenshao commented 8 years ago

是ResultSetProxyImpl引用的jdbc driver的resultset占内存,你再仔细看看是不是这样

majinju commented 8 years ago

https://yunpan.cn/cMJdrpIbhkwrK 编辑器不能发图很麻烦,不要直接点,拷贝地址打开。

wenshao commented 8 years ago

实例数量这么多啊,用的是什么版本?

majinju commented 8 years ago

druid版本有点高,前段时间我自己用源码master打的包,到是没改什么。这个情况让我已经换掉了druid,太猛了,今天最大那个占用内存达2g了。有没什么配置能解决这个问题?下周我换一个官方发布的版本试试。

majinju commented 8 years ago

https://yunpan.cn/cMZ8EwUa9DNjM 访问密码 6a99,又一次把程序给我整死了。 之前没留意,项目中同时放了两个版本druid:druid-1.0.17-SNAPSHOT、druid-1.0.19-SNAPSHOT。 下面是我的数据源配置。

#ds=main
main/converter=com.alibaba.druid.pool.DruidDataSourceConverter
main/type=javax.sql.DataSource
main/url=jdbc:oracle:thin:@127.0.0.1:1521:mydb
main/username=testdb
main/password=RhzNOGCwN0JC95TEtW/wqy1gMXfdo4n6yboU6+G0LjWHcJPKvrVerms6MnNlkMb8M1o12SovF7orjrxZDRKhgw==
main/maxActive=50
main/minIdle=10
main/initialSize=5
main/validationQuery=select 1 from dual
main/maxWait=10000
main/removeabandoned=true
main/removeabandonedtimeout=60
main/logabandoned=false
main/filters=stat,config,log4j
main/connectionProperties=druid.log.stmt.executableSql=true;druid.stat.logSlowSql=true;config.decrypt=true;config.decrypt.key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMDAk9VPUD2jtioeqr4PXPVtL7XKbC/fJTNMDbcJyB1KlemQZfu4SJW7v76OXMjEw4hj2o3EoswlB0Tt0cAmBe8CAwEAAQ==
wenshao commented 8 years ago

快照版本不知道是什么状态,能不能用最新正式版本1.0.24。druid是阿里集团唯一的连接池,都没有这种情况的,升级到最新版本试试看

majinju commented 8 years ago

已经测试你说的版本,问题还是存在,具体我还需要进一步测试分析,看你有没有要收集的信息用于判断问题。

majinju commented 8 years ago

通过对比测试,确定druid确实有问题,使用druid 45小时内存使用近3g,不使用druid(用的simple-jndi的默认实现,我看了一下源码,相当于没用连接池) 65小时,内存还在300m左右。十倍的差距。