Trying To Use UseLargePages Option
843829Dec 7 2005 — edited Dec 8 2005I am using the J2se 1.5.0_05 release of the JVM. I have customers that should get a lot of benefit from this feature. So, I have devised a test program to give us an idea of how much benefit will be derived and so that we can give our customers detailed instructions on how to use the feature.
I am trying to test the JVM and the test program using both the Windows XP Professional and the Suse Linux 10.0 operating systems.
First Windows XP. The user code that runs the Java program has been granted the lock pages in memory. But regardless of whether the program is run with the -XX:+UseLargePages option is set on the Java command line, the program always seems to perform about the same. The Java command line also calls for a minimum and maximum heap size of 256M.
Second Suse Linux. The test machine has 3.8G of memory, the /proc/sys/vm/nr_hugepages parameter has been set to 524, the /proc/sys/kernel/shmmax amd /proc/sys/kernel/shmall parameters have been set to 4294967295, and the /proc/sys/kernel/shmmni parameter has been set to 100. The Java command line calls for a minimum and maximum heap size of 256M. Again regardless of whether the program is run with the -XX:+UseLargePages argument, the program always seems to perform about the same.
The test program simulates thousands of messages being sent back and forth between the various entities of a large enterprise, and is very math dependent to calculate the numbers of items that the various enterprise entities are to manufacture, order, and deliver to customers.
The statistics on how long it takes the various enterprise entities to repsond to various types of messages is used to guage the performance of the JVM.
Our expectations are that if the JVM is keeping the entire heap in large pages and those large pages are pinned in memory, that the test program will perform orders of magnitude faster than when large pages are not used.
But all of our tests seem to indicate that the test program always performs about the same regardless of whether or not large pages are being used. We know that the test program does a good job of testing the performance of the JVM. For instance, changing the size of the JVM heap will, in fact, increase the performance of the JVM and the test program.
Has anyone been able to make the -XX:+UseLargePages option to work in Windows and or Linus in either the 1.5.0_05, or 1.5.0_06 version of the JVM?
If so, have we done all that is necessary in both the two OSes and then in the JVM itself, to make the feature work? Or is there other OS and/or JVM options that must also be included in order to make the feature work?
Thank you in advance for any help,