了解用于大型缓存实现的 WebSphere Application Server 选项
2009-09-30 00:00:00 来源:WEB开发网引言
在不久前我撰写的一篇评论专栏文章中,提供了一些建议,提醒大家,除非应用程序需要大型缓存或能够利用 64 位算法,否则需要谨慎对待过渡到 64 位 JVM 的方案。到目前为止,我曾工作过的一些公司事实上都在尝试管理具有大型缓存的应用程序,因此都考虑了此建议。他们现在都计划从 32 位 JVM 过渡到 64 位 JVM。
我之前没有提到的是,至少有一个可用于处理大型缓存的 32 位选项:IBM WebSphere Extended Deployment 的 ObjectGrid 组件(也称为 Data Grid)。因此,如果尝试管理的应用程序由于使用大型缓存而需要大型 JVM,则在开始过渡到 64 位 JVM 之前,您应该考虑 64 位 JVM 和 ObjectGrid 各自的优缺点,然后决定最适合您环境的选项。
在我的讨论中,将最大堆容量超过 2GB 的任何 JVM 都视为“大型 JVM”。
64 位 JVM 是否适合您?
在那篇专栏文章中,我指出:
“请记住,很多从 32 位迁移到 64 位的人并没有实现性能的优势,相反带来了更大的内存占用,因为 64 位地址所占用的空间是 32 位地址所占用空间的两倍。”
占用较大的空间就意味着计划向服务器添加更多 RAM 的可能性极大。所需的额外 RAM 的具体量将取决于您当前所使用的 RAM 量以及当前具有的可用内存的量,但最后会毫不意外地发现,最终必须在服务器上使用双倍的 RAM 才能运行与当前 32 位 JVM 具有相同堆大小的 64 位 JVM。例如,最近的一个客户以前在 RAM 为 2GB 的系统上运行正常运行最大堆大小为 768 MB 的 32 位应用服务器 JVM,但过渡到 64 位 JVM 时,最终需要 4GB 的 RAM 才能使用相同大小的应用服务器 JVM。
您可能会想“最大堆大小为 768 MB 的 JVM 怎么会导致进程占用内存超过 768MB 呢?这完全没有道理嘛!”堆只是 JVM 的一个部分,另外还有解释程序;根据操作系统、JVM 和堆大小的不同,解释程序在进程内存占用方面会在最大堆大小上增加 20% 到 50%。因此,对于此客户,对于最大堆大小为 768 MB 的 32 位 JVM,其硬件和软件配置所占用的内存约为 950MB,而其对应的 64 位 JVM 所需的内存量约为 1.9GB,而在只有 2GB 的 RAM 的情况下就没有任何内存供操作系统或系统上运行的其他进程使用。
- ››了解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...
赞助商链接