WEB开发网
开发学院软件开发Java 了解用于大型缓存实现的 WebSphere Application S... 阅读

了解用于大型缓存实现的 WebSphere Application Server 选项

 2009-09-30 00:00:00 来源:WEB开发网   
核心提示: 除了添加 RAM(或至少确保拥有 64 位 JVM 所需的足够 RAM)外,还将需要花时间调整所使用的 JDK 的垃圾回收 (GC) 算法,了解用于大型缓存实现的 WebSphere Application Server 选项(2),IBM 为 WebSphere Application Ser

除了添加 RAM(或至少确保拥有 64 位 JVM 所需的足够 RAM)外,还将需要花时间调整所使用的 JDK 的垃圾回收 (GC) 算法。IBM 为 WebSphere Application Server 开发的 J5SE 实现 (Java™ 5)(即在 Windows®、Linux®、AIX®、iSeries® 和 System z 上运行的 J5SE)提供了两个 GC 内存模型,缺省为“平”内存模型,此模型一直在 IBM 开发的 Java 实现之前的版本(JDK 1.4.x 和更早的版本)中使用;另一个模型为分代 GC 内存模型。

考虑到性能因素,在处理大型堆时,将要使用分代 GC 内存模型(在 Sun™ 和 HP 上,JDK 仅提供分代 GC 内存模型),此模型在 IBM JDK 上通过命令行参数设置:

-Xgcpolicy:gencon

之所以首选分代 GC 内存模型,是因为大型 JVM 必须尽可能减少执行 GC 的时间。在分代 GC 内存模型中,对象最初在年轻代 (young generation) 空间(通常称为“保育室”(nursery))中创建,如果对象在多次 GC 操作之后仍然存在,然后会将其移动到年老代 (old generation) 空间中。另外,在分代 GC 中会涉及两种类型的 GC 操作:

小回收 (Minor Collection) 仅在年轻代中进行,这通常通过直接复制进行,因此非常高效(迅速)。

大回收 (Major Collection) 在年老代中进行,将使用通常的标记与清除算法。

正如您可能已经猜到的,正确地确定“保育室”和年老代空间的大小是减少小回收或大回收操作所耗时间的关键;对于大型缓存的情况,您会希望调整年老代空间的大小,以保存所有缓存内容和其他长时间存在的对象。年老代太小将会导致 GC 操作过多,甚至出现内存不足的情况。要确定年老代空间大小,最佳方法可能是在每次采用缺省模式进行 GC 操作之后查看可用堆的量(可用堆百分比乘以总堆大小)。还应该分析 GC 日志,以了解年老代空间回收的频率;最优的分代应用程序进行年老代空间回收操作的频率应该非常低。

上一页  1 2 3 4 5 6  下一页

Tags:了解 用于 大型

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接