OpenLiberty / ci.docker

Eclipse Public License 1.0
42 stars 59 forks source link

Use `-XX:+IProfileDuringStartupPhase` in `populate_scc.sh` scripts #482

Closed rmnattas closed 6 months ago

rmnattas commented 8 months ago

Add -XX:+IProfileDuringStartupPhase option to the populate scc script

When populating the SCC during the build of both the Liberty and app containers, the JVM can disable the IProfiler collection during JVM startup to enhance startup time, but this limits the amount of IProfiler information that can be stored into the SCC.

OpenJ9 can now support -XX:+IProfileDuringStartupPhase to enforce collecting IProfiler information during startup and better populate the SCC, which can be used in the populate_scc.sh script.

The option will be ignored if the used OpenJ9 build does not have the new option implemented.

Effect is larger amount of JIT Data in the SCC after a populate_scc run. There’s no functional implications on Liberty, and performance effect is application dependent.

In AcmeAir micro-services we see a jump in the amount of JIT Data stored in the SCC when using this option in the populate_scc.sh script, from 140KB to 524KB (and from 132KB to 388KB for the Liberty container layer). Performance effect shows around 1.5% better throughput with default setup, and no noticeable rampup change. I don’t have results on startup effect, but warm/production-runs won’t use the option.

Other than OpenJ9 testing, we have used the option in the populate_scc.sh script during the CI process of building the containers.

OpenJ9 PR: https://github.com/eclipse-openj9/openj9/pull/18381

rmnattas commented 8 months ago

@leochr

rmnattas commented 6 months ago

Updated the PR as requested (changing version 23.0.0.12 and latest only in vNext). The OpenLiberty version is at https://github.com/OpenLiberty/ci.docker/pull/482.

rmnattas commented 6 months ago

Does this need to be updated for 24.0.0.1 @leochr ? Similarly for https://github.com/WASdev/ci.docker/pull/564

leochr commented 6 months ago

@rmnattas Just catching up after the vacation. Yes, please update 24.0.0.1 (and latest folders) instead. Thank you.

rmnattas commented 6 months ago

@leochr Updated the PR to modify 24.0.0.1 and latest instead. Similarly for https://github.com/WASdev/ci.docker/pull/564

leochr commented 6 months ago

@rmnattas Thanks for the update. Looks good to me.

@mpirvu could you please take a look as well? Thanks.