我正在尝试通过添加 +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。