Original link: Shenandoah GC fixes Java 8 memory issues on GKE / Mohamed Samir / LinkedIn.
Interesting point.
G1 is doing the right thing for performance - it fill up most of memory before running GC - that minimizes GC overhead.
But if filling up most of memory causes k8s autoscaling (GKE autopilot in this case) to start another instance, then it cost money.