4.3. 激活大型页面

激活 JBoss EAP JVM 的大型页面会导致页面中被锁定,而无法像常规内存一样被交换到磁盘。

对内存密集型应用程序而言,使用大页面的优势在于堆无法分页或交换到磁盘,因此始终可以随时使用。

使用大页面的一个缺点是系统上的其他进程可能无法快速访问内存,这可能会导致这些进程过量分页。

与任何其他性能配置更改一样,建议您在测试环境中测试更改的影响。

先决条件

  • 您的操作系统配置被设置为使用大型页面。

流程

  1. 如果您的操作系统没有配置为将大型页面用于 JBoss EAP 进程,请选择以下选项之一:

    • 对于红帽企业 Linux 系统,您必须明确配置 HugeTLB 页面,以确保 JBoss EAP 进程可以访问大页面。

      有关配置 Red Hat Enterprise Linux 内存选项的详情,请参考 Red Hat Enterprise Linux 性能调优指南中 的内存章节

    • 对于运行 JBoss EAP 的 Windows Server 系统,您必须分配大型页面权限:

      1. 选择 Control PanelAdmin ToolsLocal Security Policy
      2. 选择 Local PoliciesUsertitle Assignment
      3. 双击 内存中的锁定页面
      4. 添加您要使用大页面的 Windows Server 用户和组。
      5. 重新启动 计算机。
  2. 启用或禁用大页面支持:

    • 要显式启用对 JBoss EAP JVM 的大页面支持,请使用以下 JVM 选项:

      -XX:+UseLargePages
    • 要明确禁用对 JBoss EAP JVM 的大页面支持,请使用以下 JVM 选项:

      -XX:-UseLargePages
  3. 在启动 JBoss EAP 时,请确保没有与保留内存相关的警告。

    • 在 Red Hat Enterprise Linux 中,可能会有如下错误:

      OpenJDK 64-Bit Server VM warning: Failed to reserve shared memory. (error = 1)
    • 在 Windows Server 中,错误可能类似如下:

      Java HotSpot(TM) 64-Bit Server VM warning: JVM cannot use large page memory because it does not have enough privilege to lock pages in memory.

    如果您看到警告,请验证您的操作系统配置和 JVM 选项是否已正确配置。

其他资源