Container Friendly Java 9
summary
Explains that containers are just Linux cgroups and namespaces and shows how Docker/containerd and Kubernetes map to them, with concrete commands (cgcreate, cgclassify, cgget, cgtop, journalctl -k) for debugging OOM kills and resource accounting. Demonstrates memory pitfalls (metaspace can grow until container is OOM killed), Java 9 reads cgroup memory limits and uses schedule_getaffinity for CPUs, GC and fork‑join threads scale to visible cores, and notes defaults like CPU shares = 1024 and ~0.5–1MB thread stack per thread.
AI-written summary · about
chapters (8)
- 0:00Introduction and agenda
- 1:16What is a container
- 13:19Containers vs virtual machines
- 22:34Control groups deep dive
- 34:26Namespaces explained
- 44:05Java memory in containers
- 53:12Java and container constraints
- 57:49Summary and resources
related talks
42mContainers & Java: What I wish I have been told!
35mNO ONE PUTS Java IN THE CONTAINER
50mJVM and Kubernetes walk into the bar...
46mJava in a container: operational specifics
05mtalks to
50mWhy you’re going to FAIL running Java on docker!
15mDocker, JVM and CPU
02h 41mCures for OOMKills, Warm-ups, and Slowness in JVM Containers
