Skip to content

RC-1: Configure Redis memory limit and eviction policy #78

Description

@szachovy

Problem

Redis starts with zero configuration — no redis.conf, no command-line arguments. Default maxmemory is 0 (unlimited). Redis is used as Celery broker, results backend, and filter state cache. A spike in SQL Lab queries can consume all available memory, OOM-killing Redis and any co-located containers.

File: src/container.py (Redis class, lines 376–390)

Impact

Redis OOM → Celery broker dies → all async queries fail → Superset appears frozen.

Fix

Create services/superset/redis.conf:

maxmemory 512mb
maxmemory-policy allkeys-lru
tcp-backlog 511
timeout 300

Mount into Redis container. Also apply Redis admin guide recommendations in the entrypoint:

echo never > /sys/kernel/mm/transparent_hugepage/enabled
sysctl vm.overcommit_memory=1

Acceptance Criteria

  • services/superset/redis.conf created with maxmemory=512mb, maxmemory-policy=allkeys-lru, timeout=300
  • Redis container mounts redis.conf and starts with redis-server /etc/redis/redis.conf
  • Transparent huge pages disabled and vm.overcommit_memory=1 set in container entrypoint

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions