I’m running self-hosted Redash using Docker-compose. It’s taking about 650MB of RAM while sitting idle, which seems excessive. We have less than 10 queries defined in our instance, though some of them are on a 5m refresh schedule.
- Redash version: 4.0.1+b4038
- Docker version: 18.06.1-ce
- Docker-compose version: 1.22.0
This is the output of docker stats
:
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
812087c136d6 redash_server_1 0.01% 447.8MiB / 1.953GiB 22.39% 1.27MB / 1.19MB 9.73MB / 0B 0
7cb0f3c7febe redash_redis_1 0.09% 10.21MiB / 1.953GiB 0.51% 494kB / 1.26MB 2.44MB / 2.47MB 0
7be78faee516 redash_worker_1 0.00% 183.5MiB / 1.953GiB 9.17% 234kB / 319kB 48.1MB / 36.9kB 0
5f90bb9204d6 redash_postgres_1 0.00% 8.578MiB / 1.953GiB 0.43% 122kB / 141kB 16.3MB / 475kB 0
If I change the REDASH_WEB_WORKERS
config variable from 4 to 1, then redash_server_1
's RAM usage goes to 118MB, but redash_worker_1
's goes to 252MB.
Is this expected, or an anomaly? Why are gunicorn and celery so much more intensive than postgres and redis? Where should I begin looking into it?