Java 如何跟踪和调整压缩类空间



我们正在使用 JDK 8,我们的一些进程为 OOM 提供了"压缩类空间"。我们正在记录 GC 和我们的 jvm 统计信息.log文件当前提供以下类型的日志条目

2017-06-30 03:57:07,944 信息 - 堆 - [用法:1678.7,免费:986.7,总计:2665.5,最大:2665.5];烫发 - [用法: 不适用, 免费: 不适用, 最大: 不适用];类 - [加载: 1832624, 卸载: 637, 左: 1831987];线程 - [计数: 92]

我们想知道添加标志"-XX:+TraceClassUnloading -XX:+TraceClassLoad"是否会让我们知道我们应该为"压缩类空间"(-XX:压缩类空间大小(设置什么值?如果是,我们如何从跟踪日志中确定大小?

您可以使用-XX:-UseCompressedClassPointers来禁用压缩类空间,该空间应允许 JVM 加载尽可能多的类到内存中,而不是有限的压缩类虚拟内存区域。缺点是对象标头中的类指针较大。

但正如@Holger注释中提到的,您应该确保您的应用程序不会随着时间的推移泄漏类,否则内存消耗将继续增长。

最新更新