Calculate Che resource requirements
Calculate the CPU and memory requirements for the Che Operator, DevWorkspace Controller, and user workspaces. Accurate resource estimates ensure your cluster can handle the expected number of concurrent users without performance issues.
The Che Operator, DevWorkspace Controller, and user workspaces consist of a set of pods. The pods contribute to the resource consumption in CPU and memory limits and requests.
-
Identify the workspace resource requirements from the devfile
componentssection. The following example uses the Quarkus API example devfile.-
The
toolscomponent of the devfile defines the following requests and limits:memoryLimit: 6G memoryRequest: 512M cpuRequest: 1000m cpuLimit: 4000m -
During workspace startup, an internal
che-gatewaycontainer is implicitly provisioned with the following requests and limits:memoryLimit: 256M memoryRequest: 64M cpuRequest: 50m cpuLimit: 500m -
Additional memory and CPU are added implicitly for the Visual Studio Code - Open Source ("Code - OSS") editor:
memoryLimit: 1024M memoryRequest: 256M cpuRequest: 30m cpuLimit: 500m -
Additional memory and CPU are added implicitly for a JetBrains IDE, for example IntelliJ IDEA Ultimate:
memoryLimit: 6144M memoryRequest: 2048M cpuRequest: 1500m cpuLimit: 2000m
-
-
Calculate the sums of the resources required for each workspace. If you intend to use multiple devfiles, repeat this calculation for every expected devfile.
Table 1. Workspace requirements for the example devfile in the previous step Purpose Pod Container name Memory limit Memory request CPU limit CPU request Developer tools
workspacetools6 GiB
512 MiB
4000 m
1000 m
Che gateway
workspaceche-gateway256 MiB
64 MiB
500 m
50 m
Visual Studio Code
workspacetools1024 MiB
256 MiB
500 m
30 m
Total
7.3 GiB
832 MiB
5000 m
1080 m
-
Multiply the resources calculated per workspace by the number of workspaces that you expect all of your users to run simultaneously.
-
Calculate the sums of the requirements for the Che Operator, Operands, and DevWorkspace Controller.
Table 2. Default requirements for the Che Operator, Operands, and DevWorkspace Controller Purpose Pod name Container names Memory limit Memory request CPU limit CPU request Che operator
che-operatorche-operator256 MiB
64 MiB
500 m
100 m
Che Server
cheche-server1 GiB
512 MiB
1000 m
100 m
Che Dashboard
che-dashboardche-dashboard256 MiB
32 MiB
500 m
100 m
Che Gateway
che-gatewaytraefik4 GiB
128 MiB
1000 m
100 m
Che Gateway
che-gatewayconfigbump256 MiB
64 MiB
500 m
50 m
Che Gateway
che-gatewayoauth-proxy512 MiB
64 MiB
500 m
100 m
Che Gateway
che-gatewaykube-rbac-proxy512 MiB
64 MiB
500 m
100 m
Plugin registry
plugin-registryplugin-registry256 MiB
32 MiB
500 m
100 m
DevWorkspace Controller Manager
devworkspace-controller-managerdevworkspace-controller5 GiB
100 MiB
3000 m
250 m
DevWorkspace Controller Manager
devworkspace-controller-managerkube-rbac-proxyN/A
N/A
N/A
N/A
DevWorkspace Operator Catalog
devworkspace-operator-catalogregistry-serverN/A
50 MiB
N/A
10 m
DevWorkspace Webhook Server
devworkspace-webhook-serverwebhook-server300 MiB
20 MiB
200 m
100 m
DevWorkspace Webhook Server
devworkspace-webhook-serverkube-rbac-proxyN/A
N/A
N/A
N/A
Total
12.3 GiB
1.1 GiB
8.2
1.1
-
Add the workspace resources from step 3 and the operator resources from step 4 to determine total cluster resource requirements.
-
Verify that the total resource requirements account for all Che Operator components, DevWorkspace Controller components, and the expected number of concurrent workspaces.