使用jvisualVm 诊断java程序故障

最近一段时间,在线上环境的导出excel文件功能老是出现问题,在程序响应一段时间后,程序就中断了。 但是查看日志文件,没有报任何的堆栈信息。最后经过问题排查很诊断,应该是跟内存有关,所以在网上搜索了一些资料,发现jvisualVM 是一款比较好的监控工具。 通过jvisualVM 发现,在程序运行下,堆基本上达到了峰值。如下图:
这里写图片描述

由此可以推断出堆设的有点小,解决方案,调整tomcat 内存大小。tomcat 作为应用服务器,不能直接运行,需要java虚拟机环境,也就是说tomcat 启动的时候,JVM会分配一个初始内存以及最大内存给tomcat,所以要提高tomcat 的jvm 内存,需要在启动的时候,进行配置。
1. 进入tomgcat/bin 目录下
这里写图片描述
2. 编辑 catalina.sh 文件,在cygwin= false 添加:
JAVA_OPTS=’-Xms256m -Xmx512m
这里写图片描述
JAVA_OPTS 这个参数是java 启动的时候,需要的启动参数,-Xms256m -Xmx512m 表示初始化分配内存为512MB,可以使用的最大内存为1024MB。
相关参数请参考以下文章:
http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html

总结:通过这次故障的排查,让我学到了怎样更好的使用JVM监控工具来进行诊断程序故障。

猜你喜欢

转载自blog.csdn.net/huo_yun/article/details/71130867