我有一个带有16G内存的Linux机器,并运行带有应用程序的JBoss 7.1.0 EAP服务器。我们得到80%的内存警报使用率。通过分析MAT中的堆转储,我们发现保留的堆为3GB,无法访问的对象为7GB。我的JVM的配置为Xms = 4G XmX = 12G我真的需要担心吗?我应该专注于哪一部分分析?
要在Java虚拟机中运行垃圾收集器:
System.gc();
或
Runtime.getRuntime().gc();
调用{[[[gc]>}方法表明,Java虚拟机将努力回收未使用的对象,以使它们当前占用的内存可供Java虚拟机重新使用。当控件从方法调用返回时,Java虚拟机将尽最大努力从所有未使用的对象中回收空间。无法保证此工作将回收任何特定数量的未使用对象,回收任何特定数量的空间,或在方法返回之前或之前在任何特定时间(如果有的话)完成。
另请参见: