我们有一个产品,目前运行在32位1.6 JRE上。我们使用Berkeley DB,它占用了4GB地址空间中约2.5GB的RAM。这使得我们在JVM地址空间中只剩下大约750MB的内存。
目前,我们的设置已经出现了OutOfMemory问题。我们希望将JVM堆大小增加到1.5GB,同时仍保留Berkeley DB的2.5GB空间。是否有办法在32位JVM中访问超过4GB RAM/堆?我考虑了以下解决方案: 1)使用更好的GC的JVM--这将给我较小的结果--可以获得大约50-100MB的工作内存; 2)类似memcached或“out of process ehcache”的东西--这会为我提供尽可能多的硬件资源,但需要IPC/序列化的开销。
有没有其他解决方案可以增加应用程序的可寻址内存?
该解决方案应该适用于运行sparc的solaris 10系统。
*更新:由于使用了本地共享库,所以我们目前无法切换到64位JVM,即使操作系统是64位*
谢谢!
目前,我们的设置已经出现了OutOfMemory问题。我们希望将JVM堆大小增加到1.5GB,同时仍保留Berkeley DB的2.5GB空间。是否有办法在32位JVM中访问超过4GB RAM/堆?我考虑了以下解决方案: 1)使用更好的GC的JVM--这将给我较小的结果--可以获得大约50-100MB的工作内存; 2)类似memcached或“out of process ehcache”的东西--这会为我提供尽可能多的硬件资源,但需要IPC/序列化的开销。
有没有其他解决方案可以增加应用程序的可寻址内存?
该解决方案应该适用于运行sparc的solaris 10系统。
*更新:由于使用了本地共享库,所以我们目前无法切换到64位JVM,即使操作系统是64位*
谢谢!