mongodb引起内存泄露问题
2016-09-14 14:20
218 查看
好久不见,最近程序上有些问题,需要记录一下.
比如mongodb引起的内存泄露问题.
起因需要开多端口复制一套tomcat程序,来进行负载,和备份.但是free 一看根本内存都吃没了.
本来机器上就没啥大程序,而且4G的内存应该很富裕的,但是却被tomcat占去了将近3G的内存,这让我很疑惑(虽然一个tomcat里的项目很多,但是也不应该这么大内存的消耗.),
然后jmap dump了一份进行分析
分析结果如下图
我去,怎么会有这么多未释放的连接?
让它自己分析一下:
看到了吧,全是mongodb的未释放连接...这真会玩...
好了,转回来.
对于mongodb连接用完就释放的问题,我记得有这么个比喻:
当使用mongodb的连接池时,好比园丁浇水,从井里打了一桶水,然后舀了一勺子水浇花,然后把水给倒回井里...
虽然比喻很恰当,但是不释放的话 内存真的吃不消.所以
用完时候 还是请mongoClient.close();
谢谢.
比如mongodb引起的内存泄露问题.
起因需要开多端口复制一套tomcat程序,来进行负载,和备份.但是free 一看根本内存都吃没了.
本来机器上就没啥大程序,而且4G的内存应该很富裕的,但是却被tomcat占去了将近3G的内存,这让我很疑惑(虽然一个tomcat里的项目很多,但是也不应该这么大内存的消耗.),
然后jmap dump了一份进行分析
分析结果如下图
我去,怎么会有这么多未释放的连接?
让它自己分析一下:
看到了吧,全是mongodb的未释放连接...这真会玩...
好了,转回来.
对于mongodb连接用完就释放的问题,我记得有这么个比喻:
当使用mongodb的连接池时,好比园丁浇水,从井里打了一桶水,然后舀了一勺子水浇花,然后把水给倒回井里...
虽然比喻很恰当,但是不释放的话 内存真的吃不消.所以
用完时候 还是请mongoClient.close();
谢谢.
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- 如何在 Fedora 上安装 MongoDB 服务器
- PHP添加yaf xhprof mongodb 同理
- mongodb安装
- 如何在 Ubuntu 上安装 MongoDB
- 信息安全聚合 Sec-News 的重构之路
- IE7降低内存和降低CPU的几个技巧
- Ruby on Rails框架程序连接MongoDB的教程
- 如何高效的使用内存
- DOS下内存的配置
- perl操作MongoDB报错undefined symbol: HeUTF8解决方法
- XP/win2003下发现1G的内存比512M还慢的解决方法
- PowerShell实现动态获取当前脚本运行时消耗的内存
- C#实现把dgv里的数据完整的复制到一张内存表的方法
- SQL语句实现查询SQL Server内存使用状况
- C语言内存对齐实例详解
- c语言内存泄露示例解析
- 深入学习C语言中memset()函数的用法
- 全局变量与局部变量在内存中的区别详细解析
- C#中使用1.7版本驱动操作MongoDB简单例子