The NextGen Gateway uses Redis as a caching layer to improve data access performance for SDK applications. When multiple SDK applications are deployed on a gateway or when the gateway experiences sustained load, the default Redis resource configuration may be insufficient.

This document explains how to modify Redis CPU and memory limits to ensure stable gateway operation.

Problem

You may experience one or more of the following issues:

  • Redis pod restarts or crashes intermittently
  • Gateway performance degradation under load
  • Alerts indicating memory pressure or OutOfMemory (OOM) conditions
  • SDK applications failing to cache or retrieve data reliably

Resolution

Increase (or decrease, if required) the Redis resource limits by updating the Redis resource preset in the NextGen Gateway Helm chart.
This procedure includes:

  • Identifying the installed NextGen Gateway Helm chart version
  • Updating the Redis resource preset using Helm
  • Verifying that the updated limits are applied

Procedure

Step 1: Identify the NextGen Gateway Helm Chart Version

Run the following command to list Helm releases in the gateway namespace and find the NextGen Gateway chart version:

helm list -n <gateway namespace> | grep nextgen

Example output:

NAME        NAMESPACE   REVISION UPDATED                 STATUS   CHART                 APP VERSION
nextgen-gw  default     1        2026-02-18 11:55:23 UTC deployed nextgen-gw-18.0.5    18.0.5

In this example, the chart version is 18.0.5 (taken from the CHART column: nextgen-gw-18.0.5).

Step 2: Update Redis Resource Preset via Helm

You can change Redis resource limits by setting global.redisResourcesPreset during a Helm upgrade.

Command:

helm upgrade nextgen-gw \
  oci://us-docker.pkg.dev/opsramp-registry/gateway-cluster-charts/nextgen-gw \
  --version <chart_version> \
  -n <gateway namespace> \
  --set global.redisResourcesPreset=<preset> \
  --reuse-values

Replace:

  • <chart_version> with the version from Step 1 (e.g., 18.0.5)
  • <preset> with one of the supported presets: nano, micro, small, medium, large, xlarge, 2xlarge
  • <gateway namespace> with your namespace

Choose the preset based on the number of SDK devices and overall gateway load. In the example below, we use medium.

Example:

helm upgrade nextgen-gw \
  oci://us-docker.pkg.dev/opsramp-registry/gateway-cluster-charts/nextgen-gw \
  --version 18.0.5 \
  -n default \
  --set global.redisResourcesPreset=medium \
  --reuse-values

Step 3: Redis Resource Presets (CPU & Memory)

The following table shows available values for global.redisResourcesPreset and their corresponding resource limits:

"nano"    -> cpu: 150m   memory: 192Mi    ephemeral-storage: 2Gi
"micro"   -> cpu: 375m   memory: 384Mi    ephemeral-storage: 2Gi
"small"   -> cpu: 750m   memory: 768Mi    ephemeral-storage: 2Gi
"medium"  -> cpu: 750m   memory: 1536Mi   ephemeral-storage: 2Gi
"large"   -> cpu: 1.5    memory: 3072Mi   ephemeral-storage: 2Gi
"xlarge"  -> cpu: 3.0    memory: 6144Mi   ephemeral-storage: 2Gi
"2xlarge" -> cpu: 6.0    memory: 12288Mi  ephemeral-storage: 2Gi
  • Start with medium if you see OutOfMemory (OOM) issues with the default nano preset and have multiple SDK applications.
  • Move to large or higher only if you continue to experience resource pressure.

Step 4: Verify the Updated Redis Limits

After running the Helm upgrade, verify that the Redis pod is using the new limits.

Command:

kubectl describe pod nextgen-gw-redis-master-0 -n <gateway namespace>

Example:

kubectl describe pod nextgen-gw-redis-master-0 -n default

Sample output (relevant section):

Name:             nextgen-gw-redis-master-0
Namespace:        default
...
Containers:
  redis:
    ...
    Limits:
      cpu:                750m
      ephemeral-storage:  2Gi
      memory:             1536Mi
    Requests:
      cpu:                500m
      ephemeral-storage:  50Mi
      memory:             1Gi

In this example:

  • cpu = 750m
  • memory = 1536Mi
  • ephemeral-storage = 2Gi

These values match the medium preset, confirming that the new limits have been successfully applied.