Companion code for "Deploying Spring Boot 4 on Kubernetes: Probes, Graceful Shutdown, Limits and JVM Ergonomics". A dependency outage under three probe-group setups, a rolling restart under load four ways (three runs each), the JVM's ergonomic choices for nine pod shapes, one GC-heavy load under five CPU limits with throttling counters, and an HPA driven by a Micrometer gauge through prometheus-adapter. Measured on k3s v1.36.4. Co-Authored-By: Claude Opus 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01C3TETMrqVUWeFkNtz3Jbo3
35 lines
1.5 KiB
Plaintext
35 lines
1.5 KiB
Plaintext
# JVM ergonomics per pod resources. Image: sbd/k8s-demo:1, no JVM options. Node: 2 CPUs.
|
|
# cgroup v1 node; see docs/03-jvm-ergonomics.md for the v2 equivalents.
|
|
|
|
cpu.req cpu.lim mem.req mem.lim | CPUs GC MaxHeap PGCThr CGCThr JITThr
|
|
100m none 256Mi 2Gi | 2 G1GC 512M 2 1 2
|
|
100m 500m 256Mi 512Mi | 1 SerialGC 128M 0 0 2
|
|
100m 1 256Mi 1Gi | 1 SerialGC 256M 0 0 2
|
|
100m 1 256Mi 2Gi | 1 SerialGC 512M 0 0 2
|
|
100m 1500m 256Mi 2Gi | 2 G1GC 512M 2 1 2
|
|
100m 2 256Mi 1Gi | 2 SerialGC 256M 0 0 2
|
|
100m 2 256Mi 1700Mi | 2 SerialGC 426M 0 0 2
|
|
100m 2 256Mi 1800Mi | 2 G1GC 450M 2 1 2
|
|
100m 2 256Mi 4Gi | 2 G1GC 1024M 2 1 2
|
|
|
|
# java -XshowSettings:system for the 1500m case:
|
|
Operating System Metrics:
|
|
Provider: cgroupv1
|
|
Effective CPU Count: 2
|
|
CPU Period: 100000us
|
|
CPU Quota: 150000us
|
|
CPU Shares: 102us
|
|
List of Processors, 2 total:
|
|
0 1
|
|
List of Effective Processors, 2 total:
|
|
0 1
|
|
List of Memory Nodes, 1 total:
|
|
0
|
|
List of Available Memory Nodes, 1 total:
|
|
0
|
|
Memory Limit: 2.00G
|
|
Memory Soft Limit: Unlimited
|
|
Memory & Swap Limit: 2.00G
|
|
Maximum Processes Limit: Unlimited
|
|
|