Skip to content

Resources

Each component of the application is assigned a default set of resources. These resources dictate how Kubernetes schedules the application pods by setting requests and limits. This ensures the application components are given a minimum amount of resources while protecting against any rogue workloads over-consuming. These resource requests and limits can be tuned according to the size of your workload.

Kubernetes container resources

The install values file snippet below shows an example of resources for the keycloak component.

It is configured to request a minimum CPU of 100m (0.1 CPUs) and a limit of 500m (0.5 CPUs). Similarly it's configured with a memory request of 1024 Mib and a limit of 3072Mib.

keycloak:
  resources:
    requests:
      cpu: 100m
      memory: 1024Mi
    limits:
      cpu: 500m
      memory: 3072Mi

The kdb Insights Enterprise application consists of a base deployment, and dynamic assemblies.

The base components can be configured as above by copying the structure above and using the chart name instead of keycloak.

Each assembly can define the resources for its components, however you may want to configure the defaults across all assemblies. These would be used if an assembly is deployed without any. kdb Insights Enterprise is delivered with a set of indicative install sizes (starter, small, medium, large). Configuring the default assembly resources is applied by setting the default install size. The appropriate resources will then be picked from that install size.

installSize: "medium"

Sidecar resources

Some components are deployed with a sidecar container for discovery or metrics integrations. If you need to configure the sidecar resources, you can set them globally using the snippet below.

global:
  sidecar:
    resources:
      requests:
        cpu: 0.1
        memory: 128Mi
      limits:
        cpu: 0.1
        memory: 128Mi

Scratchpad resources

The scratchpad CPU and memory can be configured with the following snippet within your values.yaml:

kxi-scratchpad:
  resources:
    limits:
      cpu: 0.1
      memory: 8Gi
    requests:
      cpu: 1
      memory: 8Gi

Query resources

Illustrative purposes

The numbers for limits used on this page are not suggestions, and are meant to demonstrate how to use these settings, not recommend values.

The default values for components related to the query path are:

component cpu requests cpu limits memory requests memory limits
resource-coordinator 100m 1000m 128Mi 256Mi
aggregator 500m 2000m 1024Mi 2048Mi
sg-gateway 250m 1000m 512Mi 4096Mi
dap 100m 100m 128Mi 128Mi
sm 1000m 1000m 4000Mi 4000Mi

To set resource limits for the resource-coordinator, aggregators, and service gateway, set resources in your install configuration.

service-gateway:
  aggregator:
    resources:
      requests:
        memory: "64Mi"
        cpu: "250m"
      limits:
        memory: "128Mi"
        cpu: "500m"
  sg-gateway:
    resources:
      requests:
        memory: "64Mi"
        cpu: "250m"
      limits:
        memory: "128Mi"
        cpu: "500m"
  resource-coordinator:
    resources:
      requests:
        memory: "64Mi"
        cpu: "250m"
      limits:
        memory: "128Mi"
        cpu: "500m"

Storage manager and data access processes

To set requests and limits for your databases set a k8sPolicy for the SM and DAP elements of your assemblies.

spec:
  elements:
    sm:
      eoi:
        resources:
          requests:
            memory: "64Mi"
            cpu: "100m"
          limits:
            memory: "2Gi"
            cpu: "200m"
      eod:
        resources:
          requests:
            memory: "64Mi"
            cpu: "100m"
          limits:
            memory: "2Gi"
            cpu: "200m"
      dbm:
        resources:
          requests:
            memory: "64Mi"
            cpu: "100m"
          limits:
            memory: "500Mi"
            cpu: "200m"
      k8sPolicy:
        resources:
          requests:
            memory: "64Mi"
            cpu: "100m"
          limits:
            memory: "500Mi"
            cpu: "200m"
    dap:
      instances:
        hdb:
          k8sPolicy:
            resources:
              requests:
                memory: "64Mi"
                cpu: "250m"
              limits:
                memory: "128Mi"
                cpu: "500m"

Query environments

Resources for query environments are set to match the resource limits of the DAP instances.

For example, the query environment hdb pod hdb-qe will get the same limits as the hdb pod.

spec:
  queryEnvironment:
    enabled: true
    size: 1
  dap:
    instances:
      hdb:
        k8sPolicy:
          resources:
            requests:
              memory: "64Mi"
              cpu: "250m"
            limits:
              memory: "128Mi"
              cpu: "500m"