最大jvm堆的大小是否达到或接近机器上的最大物理内存的原因是什么?

时间:2013-12-06 17:21:46

标签: java performance jvm-hotspot

我有一台64位机器,理论上地址空间是2 ^ 64字节,它有32 G的物理RAM。

这是一台具有16个核心的服务器规模机器,是一个生产服务器。

由于没有其他正在运行的进程消耗大量内存而且服务器jvm是唯一运行的应用程序,有没有理由不将jvm堆设置为非常大的数量?

我看到它被设置为不到10场演出,没有任何解释,我可以想到这可能是。

正如我在帖子前面提到的那样: 我知道内核,缓存和其他进程需要共享RAM。但除了任何其他进程和操作系统本机的东西,没有别的事情发生。  这台机器是一台生产机器,仅适用于这种特定的jvm。

是否有任何理由不设置为20演出/ 32克(物理撞击)?

从下面的评论中看来,除了需要快速失败之外,它似乎不是......  感谢您的意见

1 个答案:

答案 0 :(得分:1)

因为操作系统还需要RAM,缓存,守护进程,如syslogd,页表,内核数据结构等。

此外,JVM设计人员不知道在 JVM启动后您可能想要启动的其他应用程序。因此,JVM默认不占用所有RAM是明智的。