Java:非堆内存分析

前端之家收集整理的这篇文章主要介绍了Java:非堆内存分析前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们遇到的问题是我们的非堆内存一直在增长.所以我们必须每隔3天重启我们的jee( java8) – webapp(正如你在这里截图所示: screenshot from non-heap- and heap-memory)

我已经试图找出填满非堆的东西了.但我找不到任何工具来创建非堆转储.你有什么想法我可以调查一下,找出哪些元素越来越多?

Java的版本

java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14,mixed mode)

Tomcat的版本

Apache Tomcat Version 7.0.59

解决方法

MemoryPoolMXBean提供的非堆内存使用情况计算以下内存池:

> Metaspace
>压缩类空间
>代码缓存

换句话说,标准的非堆内存统计信息包括已编译方法和已加载类占用的空间.最有可能的是,增加的非堆内存使用量表明类加载器泄漏.

使用

> jmap -clstats PID转储类加载器统计信息;> jcmd PID GC.class_stats用于打印有关每个已加载类的内存使用情况的详细信息.后者需要-XX:UnlockDiagnosticVMOptions.

猜你在找的Java相关文章