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

tre*_*rog 7 java performance jvm-hotspot

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

这是一台具有16个内核的服务器级机器,是一个生产服务器.

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

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

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

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

从下面的评论看 - 它似乎不是......除了需要快速失败,感谢您的投入

Rob*_*een 1

因为操作系统也需要 RAM,用于缓存、缓冲区、syslogd 等守护进程、页表、内核数据结构等。

此外,JVM 设计者不知道JVM 启动后您可能还想启动哪些其他应用程序。因此,JVM 默认情况下不占用所有 RAM 是明智的。