Skip to content

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

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jan 5, 2024

Conversation

rmnattas
Copy link
Contributor

@rmnattas rmnattas commented Nov 7, 2023

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: eclipse-openj9/openj9#18381

Corresponding OpenLiberty PR: OpenLiberty/ci.docker#482

@CLAassistant
Copy link

CLAassistant commented Nov 7, 2023

CLA assistant check
All committers have signed the CLA.

@rmnattas
Copy link
Contributor Author

rmnattas commented Nov 7, 2023

@leochr

@rmnattas rmnattas force-pushed the scc_IProfileDuringStartupPhase branch from fcf55a1 to f52d768 Compare November 23, 2023 15:16
@leochr
Copy link
Member

leochr commented Dec 8, 2023

@rmnattas Thanks for the PR. The change itself looks fine. Few comments:

  • please target the vNext branch as that's used for dev
  • since there could be some impact to applications, it'll be good to deliver the change to upcoming releases of Liberty only and not update existing releases
  • does Open Liberty also require similar PR? https://github.com/OpenLiberty/ci.docker

@rmnattas rmnattas force-pushed the scc_IProfileDuringStartupPhase branch from f52d768 to b6232c7 Compare December 8, 2023 21:26
@rmnattas rmnattas changed the base branch from main to vNext December 8, 2023 21:26
@rmnattas
Copy link
Contributor Author

rmnattas commented Dec 8, 2023

Thanks @leochr, updated the PR as requested (changing version 23.0.0.12 and latest only in vNext).
The OpenLiberty version is at OpenLiberty/ci.docker#482.

Make use of `-XX:+IProfileDuringStartupPhase` in the `populate_scc.sh`
script to enforce collecting IProfile information during JVM startup
phase and have more information to store into the SCC.

Signed-off-by: Abdulrahman Alattas <[email protected]>
@rmnattas rmnattas force-pushed the scc_IProfileDuringStartupPhase branch from b6232c7 to 3957a24 Compare January 3, 2024 19:55
@rmnattas
Copy link
Contributor Author

rmnattas commented Jan 3, 2024

@leochr Updated the PR to modify 24.0.0.1 and latest instead. Similarly for OpenLiberty/ci.docker#482

@leochr leochr merged commit 3d2c3c2 into WASdev:vNext Jan 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants