在文档(jbossperformancetuning.pdf)中,它建议我们为JVM启用大页面内存。
但实际上我将以下内容添加到命令行/脚本启动后: “-XX:+ UseLargePages”
它不起作用,所以我调查了更多,首先在操作系统上启用了大页面内存,然后在启动脚本中添加了“-XX:+ UseLargePages -XX:LargePageSizeInBytes = 2m”。
但不幸的是,它既不起作用,那么有人可以给我们一些关于如何成功为JVM启用大页面内存的建议吗?
[root @ localhost~] #cat / proc / meminfo
MemTotal: 37033340 kB
MemFree: 318108 kB
Buffers: 179452 kB
Cached: 5934940 kB
SwapCached: 0 kB
...
HugePages_Total: 10251
HugePages_Free: 10251
HugePages_Rsvd: 0
Hugepagesize: 2048 kB
[root @ localhost~] #ps aux | grep java
root 22525 0.2 20.3 28801756 7552420 ? Sl Nov03 31:54 java -Dprogram.name=run.sh -server -Xms1303m -Xmx24g -XX:MaxPermSize=512m -XX:+UseLargePages -XX:LargePageSizeInBytes=2m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dsun.lang.ClassLoader.allowArraySyntax=true -verbose:gc -Xloggc:/tmp/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Djava.net.preferIPv4Stack=true -Djava.endorsed.dirs=/opt/jboss-as/lib/endorsed -classpath /opt/jboss-as/bin/run.jar org.jboss.Main -c default -b 0.0.0.0
root 31962 0.0 0.0 61200 768 pts/2 S+ 22:46 0:00 grep java
[root @ localhost~] #cat /etc/sysctl.conf
...
# JBoss is running as root, so the group id is 0
vm.hugetlb_shm_group = 0
# The pages number
vm.nr_hugepages = 12288
答案 0 :(得分:2)
最后我修复了这个问题,首先将大页面内存设置为大于JVM堆大小,然后重新启动服务器,因为除非你将内核升级到新版本,否则无法使其工作 - 在RHEL 6.0中