Skip to content
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

Update workshop to include containers #27

Open
cchesser opened this issue Dec 9, 2020 · 3 comments
Open

Update workshop to include containers #27

cchesser opened this issue Dec 9, 2020 · 3 comments

Comments

@cchesser
Copy link
Owner

cchesser commented Dec 9, 2020

It is common where Java workloads are within a Linux container, and they aren't aware of all the sizing that can occur which feeds into the overall container size. Furthermore, using some of the available tooling requires making adaptations to use these and connect it to the container.

  • Provide prerequisite for running the service workload as a container locally (ex. Docker)
  • Simulate an example: OutOfMemoryError: Unable to create native thread
  • Share common tooling to understand to inspect contents of the container to understand the Java process and OS resource usage
  • Share differences and JVM options to acknowledge, like Metaspace limits (diff from PermGen -> Metaspace where it is unlimited by default). Also share documentation on what influences this (classloading).
@AnEmortalKid
Copy link
Collaborator

Share common tooling to understand to inspect contents of the container to understand the Java process and OS resource usage

@cchesser is there any opensource tooling you use besides the provided Docker Dashboard ?

@cchesser
Copy link
Owner Author

Yeah, it may be good to highlight memory settings that previously would spend time calculating with approaches like in java-buildpack-memory-calculator but that can be minimized with many of the JVM improvements since Java 8u191+ that auto-calculates this limits based on cgroup limitations being set.

Another tool which can be used to then look at the image to then make sense of its composition is dive. This could be used if we want to highlight the latency of container spin-ups that can be optimized with Class Data Sharing, which could show how to including the jsa file via -XX:SharedArchiveFile=.

@cchesser
Copy link
Owner Author

cchesser commented Sep 4, 2021

I'm going to close this out as a result of #48. Will create a new one for the Docker setup, which currently refers to Docker's documentation that will use Docker Desktop (which will no longer be available for free use).

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

No branches or pull requests

2 participants