Calculating Che resource requirements
The Che Operator, Dev Workspace 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
components
section of the devfile.-
Here is an example devfile with the following components:
Example 1.tools
The
tools
component of the devfile defines the following requests and limits:memoryLimit: 6G memoryRequest: 512M cpuRequest: 1000m cpuLimit: 4000m
Example 2.postgresql
The
postgresql
component does not define any requests and limits and therefore falls back on the defaults for the dedicated container:memoryLimit: 128M memoryRequest: 64M cpuRequest: 10m cpuLimit: 1000m
-
During the workspace startup, an internal
che-gateway
container is implicitly provisioned with the following requests and limits:memoryLimit: 256M memoryRequest: 64M cpuRequest: 50m cpuLimit: 500m
-
-
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 3. Workspace requirements for the example devfile in the previous stepPurpose Pod Container name Memory limit Memory request CPU limit CPU request Developer tools
workspace
tools
6 GiB
512 MiB
4000 m
1000 m
Database
workspace
postgresql
128 MiB
64 MiB
1000 m
10 m
Che gateway
workspace
che-gateway
256 MiB
64 MiB
500 m
50 m
Total
6.4 GiB
640 MiB
5500 m
1060 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 Dev Workspace Controller.
Table 1. Default requirements for the Che Operator, Operands, and Dev Workspace Controller Purpose Pod name Container names Memory limit Memory request CPU limit CPU request Che operator
che-operator
che-operator
256 MiB
64 MiB
500 m
100 m
Che Server
che
che-server
1 GiB
512 MiB
1000 m
100 m
Che Dashboard
che-dashboard
che-dashboard
256 MiB
32 MiB
500 m
100 m
Che Gateway
che-gateway
traefik
4 GiB
128 MiB
1000 m
100 m
Che Gateway
che-gateway
configbump
256 MiB
64 MiB
500 m
50 m
Che Gateway
che-gateway
oauth-proxy
512 MiB
64 MiB
500 m
100 m
Che Gateway
che-gateway
kube-rbac-proxy
512 MiB
64 MiB
500 m
100 m
Devfile registry
devfile-registry
devfile-registry
256 MiB
32 MiB
500 m
100 m
Plugin registry
plugin-registry
plugin-registry
256 MiB
32 MiB
500 m
100 m
Dev Workspace Controller Manager
devworkspace-controller-manager
devworkspace-controller
1 GiB
100 MiB
1000 m
250 m
Dev Workspace Controller Manager
devworkspace-controller-manager
kube-rbac-proxy
N/A
N/A
N/A
N/A
Dev Workspace webhook server
devworkspace-webhook-server
webhook-server
300 MiB
20 MiB
200 m
100 m
Dev Workspace Operator Catalog
devworkspace-operator-catalog
registry-server
N/A
50 MiB
N/A
10 m
Dev Workspace Webhook Server
devworkspace-webhook-server
webhook-server
300 MiB
20 MiB
200 m
100 m
Dev Workspace Webhook Server
devworkspace-webhook-server
kube-rbac-proxy
N/A
N/A
N/A
N/A
Total
9 GiB
1.2 GiB
6.9
1.3