Java 大页面和详细 GC Header

Java Large Pages and Verbose GC Header

我们已使用以下命令在 JBoss 系统上启用大页面:

-XX:+UseLargePages 
-XX:LargePageSizeInBytes=2m

并且我们已经在 OS 级别分配了页面,并为 JBoss 提供了使用这些页面的权限。除了 Verbose GC 日志 header 显示 4k 页面大小外,一切看起来都正常。

Memory: **4k page**, physical 12802068k(7370652k free), swap 4194296k(4194296k free)

我希望这一行显示为“2m page”以匹配我们在 JAVA_OPTS 和 OS 级别定义的大页面大小,但也许 Java 堆"see" 大页面或 GC 日志 header 对这些更改不敏感(例如,此输出检查系统的页面大小,不一定是 [=24= 使用的页面],在本例中为 2m 的大页面(希望如此)。

有谁知道我是否应该期待这个 header 随着大页面的使用而改变?

GC 日志与大页面无关,并打印正常大小的页面大小 os::vm_page_size() which is equal to getconf PAGE_SIZE4kB for x86)。

为了验证一切正常,您可以检查

的输出
java -XX:+UseLargePages \
     -XX:LargePageSizeInBytes=2m \
     -XX:+PrintFlagsFinal -version \
    | grep LargePage