什么是' MaxRAM' JVM参数表示?

时间:2015-01-07 09:30:29

标签: java linux jvm

我正在查看在linux服务器上运行的JVM的配置。我跑的时候

java -XX:+PrintFlagsFinal | less | grep -iE 'MaxRam'

这似乎基本上打印出JDK知道的每个参数

我看到了

uint64_t MaxRAM = 137438953472  {pd product}

但我似乎无法找到关于此标志的大量文档。

我发现"{pd product}"表示"Platform Dependent Product: An officially supported, internal JVM option"

任何人都知道这个参数的确切含义,或者我可以在哪里详细了解特定于平台的JVM标志?

其他详细信息:

Java -version:  

  

java版" 1.6.0_35"   Java(TM)SE运行时环境(版本1.6.0_35-b10)   Java HotSpot(TM)64位服务器VM(版本20.10-b01,混合模式)

uname -a

  

Linux [SERVERNAME] 2.6.32-431.17.1.el6.x86_64#1 [日期] x86_64 x86_64 x86_64 GNU / Linux

1 个答案:

答案 0 :(得分:6)

根据Standard Edition HotSpot Virtual Machine Garbage Collection Tuning Guide文档,如果没有指定初始堆大小和最大堆大小并且包含先前发布的

,则使用MaxRAM中的值来计算默认堆大小
  

默认堆大小
  除非在命令行中指定了初始和最大堆大小,否则将根据计算机上的内存量计算它们。用于堆的内存比例由命令行选项InitialRAMFraction和MaxRAMFraction
控制   [...]
  MaxRAM的值取决于平台。

参考The Java Virtual 机器规格堆的大小可以更改,具体取决于JVM的实现。

  

堆可以是固定大小,也可以扩展为   计算所需的,如果更大的堆变为可能会收缩   不必要。堆的内存不需要是连续的。   Java虚拟机实现可以提供程序员或用户控件   超过堆的初始大小,以及堆是否可以动态扩展或   收缩,控制最大和最小堆大小。

并回答您的平台特定的JVM标志问题:
Java HotSpot VM Options