Configure memory, CPU, and storage for OpenHands Enterprise components
This guide explains how to configure resource limits for OpenHands Enterprise
components. Proper resource configuration ensures stable operation and prevents
issues like OOMKills and pod evictions.
All configuration examples in this guide show keys that belong in your site-values.yaml
file. The examples show the complete path from the root of the file.
Create a site-values.yaml file to store your custom configuration. Pass it to Helm
with -f site-values.yaml when installing or upgrading.
Requests: The minimum resources guaranteed to a pod. The scheduler uses this
to place pods on nodes with sufficient capacity.
Limits: The maximum resources a pod can use. Exceeding memory limits causes
an OOMKill; exceeding CPU limits causes throttling.
If a pod uses significantly more memory than its request (but below its limit),
it becomes a candidate for eviction during node pressure. Set requests close to
actual usage for production workloads.
The OpenHands application server (deployment name: openhands) handles the UI, API,
and agent orchestration. Configure its resources under the deployment section in
your values file.
# site-values.yaml# ============================================================================# Application Server (OpenHands deployment)# ============================================================================# Root-level key: deployment# Controls the main OpenHands server pod resources# ============================================================================deployment: replicas: 1 resources: requests: memory: 1200Mi cpu: 100m limits: memory: 3Gi
Sandboxes (also called runtimes) are the isolated containers where agents execute code.
Each conversation runs in its own sandbox pod. Configure these via environment variables
in the runtime-api.env section.
# site-values.yaml# ============================================================================# Runtime API (Sandbox Manager)# ============================================================================# Root-level key: runtime-api# This is a subchart that manages sandbox pod lifecycle.# The env section passes environment variables to the runtime-api container,# which uses them when creating sandbox pods.# ============================================================================runtime-api: env: MEMORY_REQUEST: "3072Mi" MEMORY_LIMIT: "3072Mi" CPU_REQUEST: "500m" EPHEMERAL_STORAGE_SIZE: "10Gi"
Edit site-values.yaml with your desired configuration:
# site-values.yaml## This file contains your custom overrides for the OpenHands Helm chart.# All keys shown here are root-level keys in the values hierarchy.# ============================================================================# Application Server Resources# ============================================================================deployment: replicas: 2 resources: requests: memory: 2560Mi cpu: 100m limits: memory: 4Gi# ============================================================================# Sandbox Resources (via Runtime API subchart)# ============================================================================runtime-api: env: MEMORY_REQUEST: "8192Mi" MEMORY_LIMIT: "8192Mi" CPU_REQUEST: "2000m" CPU_LIMIT: "4000m" EPHEMERAL_STORAGE_SIZE: "50Gi"