在 CentOS 中启用 HugePage 支持

在 CentOS 中启用 HugePage 支持

我正在尝试通过添加 +UseLargePages 参数来调整 JVM 性能。由于它抛出了错误,我认为我的操作系统不支持它。我正在使用CentOS(5.10)——Linux 2.6.16.33-xenU 64位分布。这是我运行以下 java 命令时得到的结果。


java -Xmx400m -XX:+UseLargePages -version
Java HotSpot(TM) 64-Bit Server VM warning: Failed to reserve shared memory (errno = 38).
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)

grep -i 巨大的 /proc/meminfo不显示任何信息。这清楚地表明不支持 HugePages。我安装了,如果现在运行rpm -qi libhugetlbfs,我得到以下信息。

Name        : libhugetlbfs                 Relocations: (not relocatable)
Version     : 1.3                               Vendor: CentOS
Release     : 8.2.el5                       Build Date: Thu Jan 20 20:36:26 2011
Install Date: Fri Mar  7 18:44:57 2014         Build Host: builder10.centos.org
Group       : System Environment/Libraries   Source RPM: libhugetlbfs-1.3-8.2.el5.src.rpm
Size        : 111296                           License: LGPLv2+
Signature   : DSA/SHA1, Mon Mar 21 19:35:33 2011, Key ID a8a447dce8562897
URL         : http://libhugetlbfs.sourceforge.net
Summary     : Library to access the Huge TLB Filesystem
Description :
The libhugetlbfs library interacts with the Linux hugetlbfs to make large pages
available to applications in a transparent manner.
Name        : libhugetlbfs                 Relocations: (not relocatable)
Version     : 1.3                               Vendor: CentOS
Release     : 8.2.el5                       Build Date: Thu Jan 20 20:42:35 2011
Install Date: Fri Mar  7 18:44:57 2014         Build Host: builder10.centos.org
Group       : System Environment/Libraries   Source RPM: libhugetlbfs-1.3-8.2.el5.src.rpm
Size        : 108116                           License: LGPLv2+
Signature   : DSA/SHA1, Mon Mar  7 09:43:30 2011, Key ID a8a447dce8562897
URL         : http://libhugetlbfs.sourceforge.net
Summary     : Library to access the Huge TLB Filesystem
Description :
The libhugetlbfs library interacts with the Linux hugetlbfs to make large pages
available to applications in a transparent manner.
HugePages 支持仍然没有进展。

只是想知道我是否遗漏了什么或者这个版本的 Linux 根本不支持这个功能。

任何指示都将受到赞赏。

谢谢

答案1

要检查您的内核是否支持 HugePage,请使用以下命令。如果您得到这样的输出,则您的内核支持 HugePage。

[root@prashant sa]# grep HUGETLB /boot/config-$(uname -r)

CONFIG_HUGETLBFS=y

CONFIG_HUGETLB_PAGE=y

安装新内核

yum install kernel

答案2

我知道这并不能解决您的问题,但是 CentOS 5 已经过时了,并且自 2017 年 3 月 31 日起就停止使用(即不再提供任何更新和支持)。

您确实应该尽快迁移到 CentOS 6 或 7。

相关内容