Calculating Che resource requirements
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 which depend on the devfile that is used for defining the development environment. This includes identifying the workspace components explicitly specified in the
componentssection of the devfile.-
Here is an example devfile with the following components:
Example 1.toolsThe
toolscomponent of the devfile defines the following requests and limits:memoryLimit: 6G memoryRequest: 512M cpuRequest: 1000m cpuLimit: 4000m -
During the workspace startup, an internal
che-gatewaycontainer is implicitly provisioned with the following requests and limits:memoryLimit: 256M memoryRequest: 64M cpuRequest: 50m cpuLimit: 500m -
IMPORTANT: Additional memory and CPU will be added implicitly for the Visual Studio Code - Open Source ("Code - OSS"):
memoryLimit: 1024M memoryRequest: 256M cpuRequest: 30m cpuLimit: 500m -
IMPORTANT: Additional memory and CPU will be 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.
Example 2. Workspace requirements for the example devfile in the previous stepPurpose 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 1. 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 webhook server
devworkspace-webhook-serverwebhook-server300 MiB
20 MiB
200 m
100 m
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
13 GiB
1.2 GiB
8.4
1.2