4.3. 启用大页面
为 JBoss EAP JVM 启用大页面会导致内存锁定且无法像常规内存交换到磁盘的页面。
对内存密集型应用程序而言,使用大页面的优势在于堆无法分页或交换到磁盘,因此始终可以随时使用。
使用大页面的一个缺点是系统上的其他进程可能无法快速访问内存,这可能会导致这些进程过量分页。
与任何其他性能配置更改一样,建议您在测试环境中测试更改的影响。
您必须确保您的操作系统配置允许进程使用大页面。
对于红帽企业 Linux 系统,您必须明确配置
HugeTLB
页面,以确保 JBoss EAP 进程可以访问大页面。有关配置 Red Hat Enterprise Linux 内存选项的详情,请参考 Red Hat Enterprise Linux 性能调优指南中 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html-single/Performance_Tuning_Guide/index.html#sect-Red_Hat_Enterprise_Linux-Performance_Tuning_Guide-Considerations-Page_size 的内存章节。
对于 Windows Server 系统,运行 JBoss EAP 的用户必须分配有大页面权限:
-
选择 Control Panel
Admin Tools Local Security Policy。 -
选择 Local Policies
Usertitle Assignment。 - 双击内存中的锁定页面。
- 添加您要使用大页面的 Windows Server 用户和组。
- 重新启动 计算机。
-
选择 Control Panel
启用或禁用大页面支持:
要显式启用对 JBoss EAP JVM 的大页面支持,请使用以下 JVM 选项:
-XX:+UseLargePages
-XX:+UseLargePages
Copy to Clipboard Copied! 要明确禁用对 JBoss EAP JVM 的大页面支持,请使用以下 JVM 选项:
-XX:-UseLargePages
-XX:-UseLargePages
Copy to Clipboard Copied!
在启动 JBoss EAP 时,请确保没有与保留内存相关的警告。
在 Red Hat Enterprise Linux 中,可能会有如下错误:
OpenJDK 64-Bit Server VM warning: Failed to reserve shared memory. (error = 1)
OpenJDK 64-Bit Server VM warning: Failed to reserve shared memory. (error = 1)
Copy to Clipboard Copied! 在 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.
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.
Copy to Clipboard Copied!
如果您看到警告,请验证您的操作系统配置和 JVM 选项是否已正确配置。