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

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

 2009-09-30 00:00:00 来源:WEB开发网   
核心提示:引言在不久前我撰写的一篇评论专栏文章中,提供了一些建议,了解用于大型缓存实现的 WebSphere Application Server 选项,提醒大家,除非应用程序需要大型缓存或能够利用 64 位算法,其硬件和软件配置所占用的内存约为 950MB,而其对应的 64 位 JVM 所需的内存量约为 1.9GB,否则需要谨

引言

在不久前我撰写的一篇评论专栏文章中,提供了一些建议,提醒大家,除非应用程序需要大型缓存或能够利用 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 的情况下就没有任何内存供操作系统或系统上运行的其他进程使用。

1 2 3 4 5 6  下一页

Tags:了解 用于 大型

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