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 terms of CPU and RAM limits and requests. Learn how to calculate resources, such as memory and CPU, required to run Eclipse Che.

Che Operator requirements

The Che Operator manages six operands running in six distinct pods. The following table presents the default resource requirements of each of these operands.

Table 1. Che operator operands
Pod Container names Default memory limit Default memory request

Che Server

Che

1 Gi

512 MiB

Che Gateway

gateway, configbump, oauth-proxy, kube-rbac-proxy

4 Gi, 256Mi, 512Mi, 512Mi

128 Mi, 64Mi, 64Mi, 64Mi

Che Dashboard

Che-dashboard

256 Mi

32 Mi

PostgreSQL

postgres

1 Gi

512 Mi

Devfile registry

che-devfile-registry

256 Mi

32 Mi

Plug-in registry

che-plugin-registry

256 Mi

32 Mi

The Che Operator, which powers all the operands, consists of a single container with the 64Mi memory request and 256Mi limit. These default values are sufficient when the Che Operator manages a relatively big amount of Che workspaces. For even larger deployments, consider increasing the defaults.

Additional resources

Dev Workspace Operator requirements

The Dev Workspace Operator consists of 3 pods. The following table presents the default resource requirements of each of these pods.

Table 2. Dev Workspace Operator Pods
Pod Container name Default memory limit Default memory request

Dev Workspace Controller Manager

Dev Workspace-controller, kube-rbac-proxy

1 Gi

100 Mi

Dev Workspace Operator Catalog

registry-server

N/A

50 Mi

Dev Workspace Webhook Server

webhook-server}, kube-rbac-proxy

300 Mi

20 Mi

These default values are sufficient when the Dev Workspace Controller manages a relatively big amount of Che workspaces. For larger deployments, consider increasing the defaults.

Additional resources

Workspaces requirements

This section describes how to calculate the resources required for a workspace. That is the sum of the resources required for each container of the workspace.

Procedure
  1. Identify the workspace components explicitly specified in the components section of the devfile.

  2. Identify the implicit workspace components.

Che implicitly loads the default theia-ide, che-machine-exec, che-gateway containers.
  1. Calculate the requirements for each component.

Additional resources

A workspace example

This section describes a Che workspace example.

The following devfile defines the Che workspace:

schemaVersion: 2.1.0
metadata:
  name: bash
components:
  - name: tools
    container:
      image: quay.io/devfile/universal-developer-image:ubi8-0e189d9
      memoryLimit: 4Gi

commands:
  - id: run-main-script
    exec:
      label: "Run main.sh script"
      component: tools
      workingDir: '${PROJECT_SOURCE}'
      commandLine: |
        ./main.sh
      group:
        kind: run
        isDefault: true

This table provides the memory requirements for each workspace component:

Table 3. Total workspace memory requirement and limit
Pod Container name Default memory limit Default memory request

Workspace

theia-ide

512 Mi

64 Mi

Workspace

machine-exec

128 Mi

32 Mi

Workspace

tools

4 Gi

64 Mi

Workspace

che-gateway

256 Mi

64 Mi

Total

4.9 Gi

224 Mi