服务器内存直接升高
首先确认排查问题的思路:
- 查看日志
- 查看CPU情况
- 查看TCP情况
- 查看java线程,jstack
- 查看java堆,jmap
- 通过VisualVM分析堆文件,寻找无法被回收的对象
产生原因
产生该错误的原因主要包括:
JVM内存过小。
程序不严密,产生了过多的垃圾。
程序体现
一般情况下,在程序上的体现为:
内存中加载的数据量过于庞大,如一次从数据库取出
过多数据。
集合类
中有对对象的引用,使用完后未清空,使得JVM不能回收。
代码中存在死循环
或循环产生过多重复的对象实体。
使用的第三方
软件中的BUG。(AES加密)
启动参数内存值设定的过小。
错误提示
此错误常见的错误提示:
tomcat:java.lang.OutOfMemoryError: PermGen space
tomcat:java.lang.OutOfMemoryError: Java heap space
weblogic:Root cause of ServletException java.lang.OutOfMemoryError
resin:java.lang.OutOfMemoryError
java:java.lang.OutOfMemoryError
转自:http://www.importnew.com/28916.html
https://blog.csdn.net/kl28978113/article/details/53817827
https://www.jianshu.com/p/4548ab7f60e2
https://www.jianshu.com/p/54b5da7c6816 内存泄漏的各种原因