上个月赶工上线的门户网站,由于种种原因导致部署到线上服务器后每隔一段时间后就会导致tomcat内存溢出,今天我就要来直面这个棘手的问题。
要解决的问题对我来说还是有点难度的,原因有二:
- 代码不是我写的;
- 我对java并不熟悉。
废话不多说,就由我这个小白依靠GG带领大家来启程吧!
凭借我多年的编程经验,我认为首先要找到趁手的工具,那么,问题就来了,挖掘机技术到底哪家强?……
好吧,GG一下,可以很容易查到很多用来监控jvm实时状态的工具,我们以jconsole为第一款尝试的工具吧。
jconsole
这里要说明的是,我们需要搭建的监控环境是在win桌面机上远程监控一台centos服务器。按照网上说的,搭建起这么一个环境没有多大难度,大家可以参考这里:传送门。
如果你像我一样碰到了timeout提示,那多半就是centos防火墙拦截导致的,可以暂时关闭防火墙再尝试一下:
/etc/init.d/iptables stop
好的,终于有了一个监控界面了,是不是感觉心里敞亮了不少呢?不过我感觉还是太笼统了,只能大概知道jvm的状况,而对于我们要排查代码导致的内存泄露问题似乎并没有帮到太大的忙~~
不过可以通过提供的一些信息来判断是否配置了比较合理的参数,比方说可以通过G