David Abrahams
David Abrahams

Reputation: 151

How to interpret "evicted_keys" from Redis Info

We are using ElastiCache for Redis, and are confused by its Evictions metric.

I'm curious what the unit is on the evicted_keys metric from Redis Info? The ElastiCache docs say it is a count: https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheMetrics.Redis.html but for our application we have observed the "Evictions" metric (which is derived from evicted_keys) fluctuates up and down, indicating it's not a count. I would expect a count to never decrease, since we cannot "un-evict" a key. I'm wondering if evicted_keys is actually a rate (eg, evictions/sec), which would explain why it can fluctuate.

Thanks you in advance for any responses!

Upvotes: 0

Views: 946

Answers (1)

LeoMurillo
LeoMurillo

Reputation: 6764

From INFO command:

evicted_keys: Number of evicted keys due to maxmemory limit

To learn more about evictions see Using Redis as an LRU cache - Eviction policies

This counter is zero when the server starts, and it is only reset if you issue the CONFIG RESETSTAT command. However, on ElastiCache, this command is not available.

That said, ElastiCache derives the metric from this value, by calculating the difference between data-points.

Redis evicted_keys      0    5    12     18     22    ....
CloudWatch Evictions    0    5     7      6      4    ....

This is the usual pattern in CloudWatch metrics. This allows you to use SUM if you want the cumulative value, but also to detect rate changes or spikes easily.

Think for example you want to alarm if evictions are more than 10,000 over one minute period. If ElastiCache stores the cumulative value from Redis straight as a metric, this would be hard to accomplish.

Also, by committing the metric only as evicted keys for the period, you are protected of the data distortion of a server-reset or a value overflow. While the Redis INFO value would go back to zero, on ElastiCache you still get the value for the period and you can still do running sum over any period.

Upvotes: 2

Related Questions