用 verbose GC 分析 IBM WebSphere Portal 的内存问题
2010-06-23 00:00:00 来源:WEB开发网在本例中,我们用的是 action=1。在这类 GC 内,只运行 GC 的 mark 和 sweep 阶段。
此行还包括了:
(0/585421800) (29966688/30811672)
此行特定于 AIX® JVM。正如您看到的,这里有两个基础数字,如果二者加起来,就表示 heap 被扩展到的大小。其中一个较小,会被自动用于大型对象的分配。
注意:大型对象指的是大于 64 K 的对象。
所有其他对象均被放在 heap 的其他部分。如果大型对象部分已满且有另一个大型对象请求分配,那么这个对象就被放在 heap 的另一个主要部分上。这个对象可以是其他多平台 JVM 内的一个有用的调优参数,称为 -Xloratio。
下一行是:
<GC(177): GC cycle started Fri Sep 21 23:48:29 2007
此行报告了 GC 循环开始的时间以及我们所处的是哪个循环,即 GC(177)。这是自 JVM 开启以来运行的第 177 个 GC。
随后的一行:
<GC(177): freed 218620376 bytes, 40% free (248587064/616233472), in 459 ms>
表明在此 GC 循环期间,有多少字节被释放,在本例中,JVM 能够释放 218620376 字节。
并且,我们还能看出这个 heap 现在有 40% 是空闲的,即在这个 heap 总共 616,233,472 字节中有 248,587,064 字节是空闲的:
(248587064/616233472)
最后,这个 GC 循环的完成花了 459 ms。
这一行非常有用,因为它告诉我们这个 heap 有多少是空闲的,而且有一些对象正在被清理且不会占用这个 heap。
接下来的一行是:
<GC(177): mark: 422 ms, sweep: 37 ms, compact: 0 ms>
这一行对于我们稍候为了使 GC 运行得更快而进行的 GC 配置调优非常有用(参见 -Xgcpolicy:optavgpause),但现在,我们只需知道:
更多精彩
赞助商链接