用 verbose GC 分析 IBM WebSphere Portal 的内存问题
2010-06-23 00:00:00 来源:WEB开发网如您所见,在这个实例中有足够的空闲内存:
<GC(2836): freed 227346312 bytes, 78% free (1267968024/1610611200), in 1600 ms>
但要求分配空间的对象也相当大:
<AF[2474]: Allocation Failure. need 16777232 bytes, 114 ms since lastAF>
有两种方式可以应对这类内存不足的情况:一个方式是使用 k-cluster (-Xk),另一种方式是为较大的对象定义一个 heap 段(–Xloratio),其中 loratio 意思是 large object ratio。
-Xkn
此参数为要存储的类对象在 heap 内留出了一个空间。正如在之前的例子中看到的,使用中的引用不能被移动或清除。因此它们被 “钉” 在了 heap 内的这个位置,如果有足够多的对象被钉在了 heap 内的不同位置,那么这个 heap 就会变得破碎。
为了解决这种分裂问题,可以使用参数 –Xkn,它为类对象专门提供了 heap 的一个段。n 的一个比较好的开始值是参数 40,000,即便需要使用 WebSphere Portal Support 进行系统调优分析。
如果我们将这个参数设为 40,000,JVM 就会允许在这个 k-cluster 中最多存储 40,000 个类对象。如果这个 k-cluster 已满,系统会正常继续并会使用 heap 的其余部分进行处理。
为了在管理控制台内将 –Xk 添加给原生的 JVM 参数,需遵循如下步骤:
在 WebSphere Application Server V6.0 上,选择 Servers - Application Servers - server_name - Java and Process Management - Process definition - Java Virtual Machine - Generic JVM Arguments。
或
在 WebSphere Application Server V5.0 and V5.1 上,选择 Servers - Application Servers - server_name - Process Definition - Java Virtual Machine - Generic JVM Arguments。
更多精彩
赞助商链接