12

We are using AWS ElastiCache for Redis for our application, and we need some help in understanding the metrics. During high load, we saw a CPU utilization of 30%, But Engine CPU Utilization was showing almost 80%. Could someone please elaborate on the difference between these metrics and what are the optimum limits for those metrics for a better performance.

Thanks in advance.

LeoMurillo
  • 6,048
  • 1
  • 19
  • 34
techy
  • 331
  • 2
  • 12

2 Answers2

19

Now I got a better understanding of both the metrics. When it is CPU Utilization, it is total cpu utilization of that system. And Engine Utilization is specific to the redis process thread which handles all the redis queries. So in a system with 4 cores, as we all know redis processing happens in a single thread, only one core will be used by the redis for processing the queries. So in that case the maximum CPU Utilization by redis will be 25 %.

techy
  • 331
  • 2
  • 12
  • 2
    Official explanation here: https://aws.amazon.com/about-aws/whats-new/2018/04/amazon-elastiCache-for-redis-introduces-new-cpu-utilization-metric-for-better-visibility-into-redis-workloads/ – kenske Sep 18 '20 at 21:15
0

The engine CPU utilization show you the entire value of the CPU resources being consumed by the host. Whereas the Engine CPU utilization shows you the value of the CPU resource consumed for a particular core. In this case as Redis is single thread and assuming that there are two cores. If the threshold for CPU utilization is 90% then the actual threshold per core would 90/2 or 45%. For reference, you can check out: https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheMetrics.WhichShouldIMonitor.html