Redis troubleshooting (Windows)
Redis is temporary storage for certain Informer processes (importing and exporting files, sample queries, flow steps, UI logs, progress monitors, and OAuth). These load data into Redis and remove it when finished. Sometimes a system error leaves orphaned data in Redis, growing its memory usage and degrading performance. Use this article to troubleshoot Redis performance issues.
Nothing stored in Redis is critical to Informer. Stop the Informer service while doing Redis maintenance.
Check and flush Redis memory
With Redis running:
-
Open an elevated PowerShell and change to the Redis root directory (by default
C:\Program Files\Redis). -
Run
redis-cliand check memory usage:info memory -
Clear all memory Redis is using:
flushall -
Close the window and restart Informer.
Disable snapshot persistence
Informer does not need this. With Redis and Informer stopped, edit redis.windows-service.conf in the Redis root directory and set:
stop-writes-on-bgsave-error no
The default is yes. Save, then restart the Redis and Informer services.
Disable snapshots saving to disk
Informer does not need this, and disabling it removes potentially high disk I/O (a cost and performance win in cloud hosting).
-
Stop the Redis and Informer services.
-
In
redis.windows-service.conf, comment out these entries with#:#save 900 1#save 300 10#save 60 10000 -
Save and restart the Redis and Informer services.
Full Redis memory purge
Occasionally you may need to wipe all of Redis's memory.
-
Stop the Informer and Redis services.
-
Open an elevated PowerShell and change to the Redis root directory.
-
Remove all Redis dump files:
rm *.rdb -
Restart the Redis and Informer services.
Advanced key troubleshooting
To find problematic keys that persist after flushing, with Redis running:
-
Open an elevated PowerShell and change to the Redis root directory.
-
Run
redis-cliand list the active keys (keys beginning withlog,upload, anddownloadare normal and can be ignored):info memorykeys * -
For other keys, check their time to live:
ttl <keyName>The integer is the time remaining for the key, in seconds.
-
Delete an outlying key and recheck memory usage, repeating for other outliers:
del <keyName>info memory