美文网首页
jvm和linux hugepage

jvm和linux hugepage

作者: ckxx | 来源:发表于2016-08-25 18:54 被阅读0次

    在linux中启动huge page:

    1.查看/proc/meminfo的 Hugepagesize配置,默认是是2m

    2.计算jvm堆需要的huge page个数,因为huge page是linux中全局使用的,最好保留10%给其他情况使用

    3.将计算出来的值写入 /proc/sys/vm/nr_hugepages

    4.修改 /etc/sysctl.conf的sys.nr_hugepages 在重启后仍然生效

    5.在jvm启动参数中加入-XX:+UserLargePages

    linux上支持的hugepage的大小,依赖于cpu 处理器的支持。目前Intel支持 4K、8K、2M、256M等。jvm的LargePageSizeInBytes依赖系统的配置。

    在Solaris上,jvm可以随意设置LargePageSizeInBytes。


    在linux 2.6.32之后,系统默认启用transparent_hugepage透明大页

    通过/sys/kernel/mm/transparent_hugepage/enabled 查看启动情况,默认值是madvise:只有程序明确使用transparent_hugepage时,才会使用transparent_hugepage。但是JVM不会明确使用transparent_hugepage,需要将值设置为always。

    对于JVM参数UserLargePages,如果在启动了transparent_hugepage后,不需要再设置了。

    如果仍然设置了UserLargePages:

    1.系统配置了hugepages,就使用系统配置

    2.系统没有配置hugepages,就使用正常page,不再使用hugepage

    在Redhat上可以通过命令查看transparent_hugepage的使用:

    总的使用量:grep AnonHugePages /proc/meminfo 

    每个线程的使用量:grep -e AnonHugePages  /proc/*/smaps | awk  '{ if($2>4) print $0} ' |  awk -F "/"  '{print $0; system("ps -fp " $3)} '

    相关文章

      网友评论

          本文标题:jvm和linux hugepage

          本文链接:https://www.haomeiwen.com/subject/mxyasttx.html