{
  "id": 4115095,
  "title": "Accelerating JVM startup on GKE: How VPA CPU startup boost eliminates ongoing resource waste",
  "url": "https://urgent.news/2026/08/29/accelerating-jvm-startup-on-gke-how-vpa-cpu-startup-boost-eliminates",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-08-29T05:03:06.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/googlecloud/accelerating-jvm-startup-on-gke-how-vpa-cpu-startup-boost-eliminates-ongoing-resource-waste-33i2"
  },
  "original_language": "en",
  "account": "Java and other JVM-based workloads in Kubernetes face infrastructure sizing challenges. During initialization, JVM applications need a large amount of CPU capacity for tasks like class loading, bytecode verification and JIT compilation. After initialization, CPU consumption drops significantly. To prevent slow startups and ensure quick readiness probes, platform teams often over-provision CPU requests permanently, resulting in persistent CPU waste. GKE's VerticalPodAutoscaler (VPA) CPU Startup Boost addresses this trade-off, providing up to 2x faster startup latency and dynamically reclaiming CPU after the application stabilizes.\n\nThe CPU startup boost feature operates through three phases: admission, startup, and unboosting. In the admission phase, the GKE VPA mutating admission webhook intercepts the Pod request, calculates the boosted CPU allocation and adds a tracking annotation. In the startup phase, the container is provisioned with higher CPU allocation to avoid CFS throttling during JVM initialization. The unboosting phase begins once the Pod reaches Ready status, at which point the boosted CPU allocation is reduced back to baseline without interrupting the Pod's operation, thanks to Kubernetes In-Place Pod Resize (IPPR).\n\nTo configure CPU startup boost, you must add it to a VerticalPodAutoscaler Custom Resource. You can use CPU startup boost exclusively or combine it with continuous autoscaling. If you manage steady-state resource requests manually, set updateMode: \"Off\" in the VPA policy. You can target the boost to a specific container using containerPolicies, specifying the boost factor or fixed quantity. Additionally, when pairing startup boost with HPA based on CPU utilization, ensure readinessProbes are defined and durationSeconds is set to 0 to avoid false scale-out events triggered by startup CPU spikes.",
  "summary": "Running Java and other JVM-based workloads in Kubernetes has long presented an infrastructure sizing challenge. During initialization, JVM applications require substantial CPU capacity to perform class loading, bytecode verification, framework dependency injection, and Just-In-Time (JIT) compilation. Once this initialization phase finishes, steady-state CPU consumption frequently drops by 50% to…",
  "key_points": [
    "GKE's VerticalPodAutoscaler (VPA) introduces CPU Startup Boost to reduce initialization overhead.",
    "Startup phase provisions higher CPU allocation to avoid CFS throttling during JVM initialization."
  ],
  "editors_take": "GKE's VerticalPodAutoscaler CPU Startup Boost feature helps eliminate ongoing CPU resource waste by dynamically adjusting JVM application CPU allocation during startup and afterwards.",
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}