Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java LargePageHeapSizeThreshold是否在JVM中激活UseTransparentThugePage?_Java_Linux_Jvm_Huge Pages - Fatal编程技术网

Java LargePageHeapSizeThreshold是否在JVM中激活UseTransparentThugePage?

Java LargePageHeapSizeThreshold是否在JVM中激活UseTransparentThugePage?,java,linux,jvm,huge-pages,Java,Linux,Jvm,Huge Pages,最近我注意到,在Linux发行版中,我们有巨大的页面内存,可以将其设置为始终,以允许系统始终使用巨大的页面,madvise让应用程序确定是否要使用巨大的页面,或者从不 此功能有时会降低应用程序性能 在JVM中,我们可以激活两个参数来控制操作系统的功能 LargePageHeapSizeThreshold:如果此值小于MaxHeapSize,JVM将使用较大的页面大小 UseTransparentHugePages:它是一个布尔值,可以为真也可以为假 我的问题是,是否将LargePageHeapS

最近我注意到,在Linux发行版中,我们有巨大的页面内存,可以将其设置为始终,以允许系统始终使用巨大的页面,madvise让应用程序确定是否要使用巨大的页面,或者从不

此功能有时会降低应用程序性能

在JVM中,我们可以激活两个参数来控制操作系统的功能

LargePageHeapSizeThreshold:如果此值小于MaxHeapSize,JVM将使用较大的页面大小

UseTransparentHugePages:它是一个布尔值,可以为真也可以为假

我的问题是,是否将LargePageHeapSizeThreshold设置为小于MaxHeapSize的值,即使UseTransparentThagePages=false也会激活巨大的页面

在linux中,将大页面大小设置为是否总是会激活JVM以使用大页面,即使useTransparentThugePages=false

正在将LargePageHeapSizeThreshold设置为小于的值 MaxHeapSize会激活巨大的页面,即使 UseTransparentHugePages=假

不,它可以工作:如果最大堆大小小于
LargePageHeapSizeThreshold
,则默认情况下禁用大页面

然而,这只适用于“客户机”VM,它没有C2或Graal编译器(现在是一种非常奇特的情况)。因此,在最流行的JVM版本中,标志
LargePageHeapSizeThreshold
完全不起作用

在linux中将“大页面大小”设置为“始终”是否会激活JVM以使用大页面,即使UseTransparentThugePages=false

我假定您指的是以下设置:

echo always >/sys/kernel/mm/transparent_hugepage/enabled
在这种模式下,Linux试图为匿名内存映射分配巨大的页面(包括Java堆和代码缓存),而应用程序甚至不知道巨大的页面。因此,是的,JVM可能会从这个选项中受益,即使它不关心巨大的页面本身

另一方面,不能保证Java堆在这种模式下总是使用巨大的页面。如果Linux无法为一个内存区域分配巨大的页面(例如,由于碎片),它将自动返回到使用普通页面