Druid连接池未关闭导致内存泄漏问题
Druid连接池未关闭导致内存泄漏
莫名奇妙的部署在tomcat上的小幺鸡挂掉了。
看了日志,一大堆相似的错误。
又是连接池的问题,我记得上次还是C3p0的错误
原因主要是无法注销jdbc.driver。
导致内存泄漏,无法gc连接源
解决的方案
百度了很多。感觉都是在扯淡。没毛线用,实操之后。发现还是在Linux上关闭Socket更实用
1、ps tomcat正在运行
2、用netstat 查看8080连接情况,有大量的close-wait,还有一些等待连接的状态
3、查看服务器的使用情况,没有过多的消耗内存和CPU4、重新加载界面,没有报错,只是显示加载失败5、加载时看到tomcat 日志报错 out of memary
特别是有大量得CLOSE_WAIT得情况下解决方案:先把链接数据库的Session全部关掉
第二解决方案3:
修改linux的TCP超时时间(socket生命周期)限制
vi /etc/sysctl.conf
Decrease the time default value for tcp_fin_timeout connectionnet.ipv4.tcp_fin_timeout = 30# Decrease the time default value for tcp_keepalive_time connectionnet.ipv4.tcp_keepalive_time = 1800# 探测次数net.ipv4.tcp_keepalive_probes=2# 探测间隔秒数net.ipv4.tcp_keepalive_intvl=2 编辑完 /etc/sysctl.conf,要重启network 才会生效[root@temp /]# /etc/rc.d/init.d/network restart
这个是参考的连接写的很详细
//www.jb51.net/server/308224150.htm

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Java 线程安全与 volatile与单例模式问题及解决方案
文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字可同时解决内存可见性和指令重排问题,并结合单例模式中的饿汉与懒汉实现方式分析线程安全的处理,感兴趣的朋友一起看看吧2025-06-06
spring framework体系结构及模块jar依赖关系详解
在本篇文章里小编给大家整理的是关于spring framework体系结构及模块jar依赖关系,对此有兴趣的朋友们可以学习下。2019-09-09


最新评论