-
Bug
-
Resolution: Unresolved
-
P3
-
26
-
System under test:
16 core AMD Rome, 128 GB RAM, Linux OS, JDK version 26 build 10.Test was also run in a configuration with Pet Clinic on 16 core AMD Rome, 128 GB RAM, Linux OS, JDK version 26 build 10, and oha http load generator running on a Mac OS M1 desktop with 32 GB RAM. Regression observed in this configuration using the same command line options, 8% - 10%.
Similar observation with G1. Did not run tests with Serial or ZGC.
System under test: 16 core AMD Rome, 128 GB RAM, Linux OS, JDK version 26 build 10. Test was also run in a configuration with Pet Clinic on 16 core AMD Rome, 128 GB RAM, Linux OS, JDK version 26 build 10, and oha http load generator running on a Mac OS M1 desktop with 32 GB RAM. Regression observed in this configuration using the same command line options, 8% - 10%. Similar observation with G1. Did not run tests with Serial or ZGC.
Observing a regression in requests / second on Spring Pet Clinic app when loading testing with oha (HTTP load generator).
Regression ranges from 8% - 10% when running oha remote from the Pet Clinic app, (oha on one machine, Pet Clinic app on remote machine — full network stack). The regression is much larger (~ 30%) when running both oha and Pet Clinic on the same machine but isolating each in processor id sets using numactl.
Steps to reproduce:
1.) Grab a copy of Spring Pet Clinic (https://github.com/spring-projects/spring-petclinic). Follow instructions to build it. Instructions on how to launch Pet Clinic can also be found at previously mentioned download URL.
2.) Grab a copy of oha, a http load generator, (https://sourceforge.net/projects/oha.mirror/)
3.) Start Pet Clinic. The following command line was used to test with +UseCompactObjectHeaders on a 16 core AMD Rome machine running Linux:
$ JAVA=$HOME/jdks/jdk-26-b10/bin/java
$ numactl --physcpubind 8-15,24-31 ${JAVA} -Xmx16g -Xms16g -Xmn12g -XX:MetaspaceSize=128m -XX:ReservedCodeCacheSize=256m -XX:+UseParallelGC -Xlog:gc*:file=/tmp/coh-parallel-petclinic-gc.log -XX:+UseTransparentHugePages -XX:+AlwaysPreTouch -XX:-UseCompactObjectHeaders -jar ./target/spring-petclinic-3.5.0-SNAPSHOT.jar
* Note, you may have to adjust the range of processor ids for the machine you are running on.
For a baseline test without compact object headers, change -XX:+UseCompactObjectHeaders to -XX:-UseCompactObjectHeaders
4.) Start the http load generator oha with the following command line:
$ OHA=<path to the oha http load generator>
$ numactl --physcpubind=1-7,17-23 ${OHA} -n 500000 --no-tui http://localhost:8080/vets.html
* Note: you may need to adjust the range of processor ids for the machine you are running on.
The oha http load generator will report statistics when it finishes. In its “Summary” section the last line is “Requests/sec:”
Averaging 5 runs with -UseCompactObjectHeaders, the system under test does 1086 requests / second.
Averaging 5 runs with +UseCompactObjectHeaders, the system under test does 688 requests / second.
Regression ranges from 8% - 10% when running oha remote from the Pet Clinic app, (oha on one machine, Pet Clinic app on remote machine — full network stack). The regression is much larger (~ 30%) when running both oha and Pet Clinic on the same machine but isolating each in processor id sets using numactl.
Steps to reproduce:
1.) Grab a copy of Spring Pet Clinic (https://github.com/spring-projects/spring-petclinic). Follow instructions to build it. Instructions on how to launch Pet Clinic can also be found at previously mentioned download URL.
2.) Grab a copy of oha, a http load generator, (https://sourceforge.net/projects/oha.mirror/)
3.) Start Pet Clinic. The following command line was used to test with +UseCompactObjectHeaders on a 16 core AMD Rome machine running Linux:
$ JAVA=$HOME/jdks/jdk-26-b10/bin/java
$ numactl --physcpubind 8-15,24-31 ${JAVA} -Xmx16g -Xms16g -Xmn12g -XX:MetaspaceSize=128m -XX:ReservedCodeCacheSize=256m -XX:+UseParallelGC -Xlog:gc*:file=/tmp/coh-parallel-petclinic-gc.log -XX:+UseTransparentHugePages -XX:+AlwaysPreTouch -XX:-UseCompactObjectHeaders -jar ./target/spring-petclinic-3.5.0-SNAPSHOT.jar
* Note, you may have to adjust the range of processor ids for the machine you are running on.
For a baseline test without compact object headers, change -XX:+UseCompactObjectHeaders to -XX:-UseCompactObjectHeaders
4.) Start the http load generator oha with the following command line:
$ OHA=<path to the oha http load generator>
$ numactl --physcpubind=1-7,17-23 ${OHA} -n 500000 --no-tui http://localhost:8080/vets.html
* Note: you may need to adjust the range of processor ids for the machine you are running on.
The oha http load generator will report statistics when it finishes. In its “Summary” section the last line is “Requests/sec:”
Averaging 5 runs with -UseCompactObjectHeaders, the system under test does 1086 requests / second.
Averaging 5 runs with +UseCompactObjectHeaders, the system under test does 688 requests / second.
- blocks
-
JDK-8360700 Implement Compact Object Headers enabled by default
-
- Open
-