Enabling use of hugepages with java

Richard Achmatowicz rachmato at redhat.com
Wed Feb 28 15:20:22 UTC 2018


I hope that I am directing this question to the correct mailing list.

I have a question concerning the OS setup on Linux required for correct 
use of the java option -XX:+UseLargePages in JDK 8.

Official Oracle documentation 
suggests that in order to make use of large memory pages, in addition to 
setting the flag -XX:+UseLargePages, an OS option shmmax needs to be 
tuned to be larger than the java heap size.

 From looking at the java documentation, there are various ways of 
enabling the use of huge pages: -XX:+UseHugeTLBFS, 
-XX:+UseTransparentHugePages, -XX:+UseSHM and, if I understand 
correctly, these correspond in part to making use of different OS-level 
APIs for accessing huge pages (via shared memory, hugetlbfs, and other 

My question is this: is setting the shmmax OS value only relevant if we 
are using -XX:+UseSHM? In other words, if we are using -XX:+UseHugeTLBFS 
to enable use of hugepages by the JVM, is it the case that setting the 
shmmax OS setting has no effect on the use of hugepages by the JVM?

Thanks in advance


More information about the jdk-dev mailing list