JVM如何使用超过4GB的内存

时间:2010-06-29 18:23:37

标签: java performance configuration

我有一个安装Linux服务器的请求(最好是Ubuntu 64bit服务器), 和以下机器上的Java(64位):

  • Intel Core2Quad Q8200 - 2.33 GHz
  • 8gb DDR2 ram
  • 软RAID1镜像(镜像)中的2x 320GB SATA HDD

问题是如何配置系统和Java,因为我需要JVM使用超过4GB的内存。

它无法在许多虚拟机上分发。有超过4GB的数据 它必须在内存中,因为硬盘速度慢,性能至关重要。

这是一个配置和性能问题,如果有人有经验,我对评论感兴趣吗?

非常感谢你帮助我...

4 个答案:

答案 0 :(得分:10)

64位JVM应该没有任何问题,因为巨型堆肯定比可用内存大得多。只需在启动JVM时增加堆大小,例如:

java -Xmx6g

您曾经必须指定64位标志(使用-d64),但我不认为这是必要的。

32位JVM可以管理3GB的堆。

答案 1 :(得分:1)

skaffman的回答提供了分配6GB内存所需的标志是正确的。如果'g'没有做到这一点,你可能想尝试6000米(查看下面的链接了解有关标志/平台的详细信息)

对于其他选项,您可以在此处找到有关Java HotSpot VM的所有可用选项的有用信息。

http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp

(可提供行为和表现选项。此页面也提供平台特定链接)

答案 2 :(得分:0)

JVM(尤其是64位)毫不犹豫地占用了所有内存,4Gb不是问题。只需安装64位Ubuntu,default-jre包也将是64位。

还要特别注意数据如何存储在内存中。同样,由于指针等的开销较高,64位JDK非常渴望内存。所以如果你在一些数据结构中以小块分配这些4Gb,那么8Gb是不够的。

答案 3 :(得分:-1)

如果您安装了64位Ubuntu,我相信

sudo apt-get install sun-java6-jdk

为您提供64位Java。


编辑:64位Java可以通过适当的开关为您提供所需的内存。限制是使用32位JVM,根据操作系统的不同,它不能超过2-4 Gb。