Performance degradation after Redis upgrade from v3.2.12 to v7.0.4

Centos 7.7
I have tested many times with
redis-benchmark -n 1000000
And have results like this:
Why performance degraded after upgrade?

@Anton assuming you’re seeing ~10% performance degradation even without benchmarking both version I can tell you that there is an expected overhead due to payload sanitization and also due some features/fixes that were added in the between.
You can see in the comment of the following link the overhead of this required feature. That one is present as of version 6.2.
Furthermore, on version 7.0, we’ve added some extra features that as expected cost us some more CPU:
The following 7.0 features are know to take some CPU as explained in issue 10981

Funtion %CPU time Note
updateClientMemUsage 1.50% (after the improvement of [#10401])
ACLCheckAllUserCommandPerm 1.20% [#9974]
updateCommandLatencyHistogram (can be disabled) 0.80% [#9462]

Notice that in the same manner that we’re adding more logic to Redis we’re also trying to optimize as well whever we can. There are use-cases in which the performance deeply improved from old to new version ( like streams, lists, etc… ). With that said:

  • what exactly is the most important use-case for you for the upgrade.
  • Are you doing just a “overall check”? Or is there any command that would interest you more?
  • what deployment are you using? If not using cluster and performance is a must than I would propose bumping the version and the topology used as well?

Please be more detailed on your exact usage and problem that you’re aiming to solve and we can iterate further on it :slight_smile: