了解用于大型缓存实现的 WebSphere Application Server 选项
2009-09-30 00:00:00 来源:WEB开发网除了添加 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 日志,以了解年老代空间回收的频率;最优的分代应用程序进行年老代空间回收操作的频率应该非常低。
- ››了解Windows Mobile文件结构
- ››大型网站的域名分布策略
- ››了解 IBM Smart Business Development and Test o...
- ››用于监控DB2实例和数据库的新的DB2 UDB工具
- ››了解 Apache Click:使用轻量模型快速编写 Web 应...
- ››了解 IBM Data Studio Version 2 软件打包方式
- ››了解微软Office 2010数字签名的新特性
- ››了解Sybase IQ服务剑桥天文观测台
- ››了解 Eclipse 中的 JFace 数据绑定,第 1 部分: 数...
- ››了解 Eclipse 中的 JFace 数据绑定,第 2 部分: 绑...
- ››了解 Eclipse 中的 JFace 数据绑定,第 3 部分: 使...
- ››了解 Tapestry,第 1 部分:启动 Tapestry 并在 J...
更多精彩
赞助商链接