SlideShare une entreprise Scribd logo
1  sur  41
Télécharger pour lire hors ligne
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
E2E Performance Testing, Profiling, and
Analysis at Redis
Filipe Oliveira
CMG Atlanta 2024
Filipe Oliveira
Principal Performance Engineer at Redis
> whoami
■ Working on continuous performance analysis
■ Open Source Contributor (C, Go):
● github.com/redis-performance
● github.com/redis/redis
● https://github.com/HdrHistogram/hdrhistogram-go
● https://github.com/RedisBloom/t-digest-c
> whoami
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
Agenda
Performance @Redis
The “old behaviour”
The do’s and dont’s
Our approach
KEY TAKEAWAYS
Performance…
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
Ordinarily, on our companies core products
We have...
● automatic extensive tests to catch functional failures
...but when
● we accidentally commit a performance regression, nothing intercepts it*!
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
> a real case from the past
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
> a real case from the past
1. RediSearch minor version bump
2. Required multiple patch
a. Feedback cycle took us at-least 1 day
b. prioritized over other projects
c. Siloed
d. Jul. 30, Nov. 27, 2019
You can relate to...
● your team run performance tests before releasing
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
> a real case from the past
1. RediSearch minor version bump
2. Required multiple patch
a. Feedback cycle took us at-least 1 day
b. prioritized over other projects
c. Siloed
d. Jul. 30, Nov. 27, 2019
You can relate to...
● your team run performance tests before releasing
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
Ordinarily, on our companies core products
You can state...
● your team run performance tests before releasing
...but solving slowdowns just before releasing is...
● dangerous
● time-consuming
● one of the most difficult tasks to estimate time to
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
Ordinarily, on our companies core products
You can state...
● your team run performance tests before releasing
...doing so is just buffering potential issues!
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
> goal: reduce feedback cycle. avoid silos
Requirements for valid tests
- Stable testing environment
- Deterministic testing tools
- Deterministic outcomes
- Reduced testing/probing overhead
- Reduce tested changes to the minimal
Requirements for acceptance in
products
- Acceptable duration
- No manual work
- Actionable items
- Well defined key performance
indicators
CODE REVIEW
PREVIEW /
UNSTABLE
RELEASE
MANUAL
PERF
CHECK
from:
CODE REVIEW
PREVIEW /
UNSTABLE
RELEASE
ZERO TOUCH
PERF CHECK
ZERO TOUCH
PERF CHECK
ZERO TOUCH
PERF CHECK
to:
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
> this is not new / disruptive
Elastic
https://elasticsearch-benchmarks.elastic.co/#
Lucene
https://home.apache.org/~mikemccand/lucenebench/
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
> this is not new / disruptive
mongoDB
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
> how we’re actually doing it
CODE REVIEW
PREVIEW /
UNSTABLE
RELEASE
ZERO TOUCH
PERF CHECK
ZERO TOUCH
PERF CHECK
ZERO TOUCH
PERF CHECK
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
> how we’re actually doing it
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
> How we’re
actually
doing it…
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
- summary dashboard details for Redis Ltd Performance CI tracking -
> 200 Active steady stable VMs on peak > 100K benchmark runs in ~= 2 years
> how we’re actually doing it
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
> our approach
Vanilla Redis (purely OSS project)
1. Created an OSS SPEC
a. [follow link]
2. Extend the spec and use it
a. for historical data
b. for regression analysis
c. for docs
Redis Developers Group +
(Redis Ltd, AWS, Ericson, Alibaba, …. )
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
> our approach
Redis Ltd
1. Started by the small scale
projects
a. Redis Module’s
2. Initial OSS deployments
3. local and remote triggers
4. Used for testing, profiling
a. Regression analysis
i. and fix
b. Approval of features
c. Proactive optimization
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
by branch
scalability analysis
by version
> our approach
Redis Ltd
1. Started by the small scale
projects
a. Redis Module’s
2. Initial OSS deployments
3. local and remote triggers
4. Used for testing, profiling
a. Regression analysis
i. and fix
b. Approval of features
c. Proactive optimization
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
scalability analysis by branch/version including client and server metrics
> our approach
Redis Ltd
1. Started by the small scale
projects
a. Redis Module’s
2. Initial OSS deployments
3. local and remote triggers
4. Used for testing, profiling
a. Regression analysis
i. and fix
b. Approval of features
c. Proactive optimization
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
> our approach
Redis Ltd
1. Started by the small scale
projects
a. Redis Module’s
2. Initial OSS deployments
3. local and remote triggers
4. Used for testing, profiling
a. Regression analysis
i. and fix
b. Approval of features
c. Proactive optimization
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
nightly:
feature* / perf* / v*:
> our approach
Redis Ltd
1. Started by the small scale
projects
a. Redis Module’s
2. Initial OSS deployments
3. local and remote triggers
4. Used for testing, profiling
a. Regression analysis
i. and fix
b. Approval of features
c. Proactive optimization
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
> our approach
Redis Ltd
1. Started by the small scale
projects
a. Redis Module’s
2. Initial OSS deployments
3. local and remote triggers
4. Used for testing, profiling
a. Regression analysis
i. and fix
b. Approval of features
c. Proactive optimization
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
1. Full process Flame Graph + main thread Flame Graph
2. perf report per dso
3. perf report per dso,sym (w/wout callgraph)
4. perf report per dso,sym,srcline (w/wout callgraph)
5. identical stacks collapsed
6. hotpath callgraph
1
3
2
4
6
> our approach
Redis Ltd
1. Started by the small scale
projects
a. Redis Module’s
2. Initial OSS deployments
3. local and remote triggers
4. Used for testing, profiling
a. Regression analysis
i. and fix
b. Approval of features
c. Proactive optimization
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
> our approach
Redis Ltd
1. Started by the small scale
projects
a. Redis Module’s
2. Initial OSS deployments
3. local and remote triggers
4. Used for testing, profiling
a. Regression analysis
i. and fix
b. Approval of features
c. Proactive optimization
> 300 individual profiles all merged…
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
> our approach
Redis Ltd
1. Started by the small scale
projects
a. Redis Module’s
2. Initial OSS deployments
3. local and remote triggers
4. Used for testing, profiling
a. Regression analysis
i. and fix
b. Approval of features
c. Proactive optimization
> 300 individual profiles all merged…
© 2024 Redis Ltd. All rights reserved. Confidential (Internal use only)
Analysis:
https://github.com/RedisTimeSeries/RedisTimeSeries/issues/793
PR:
https://github.com/RedisTimeSeries/RedisTimeSeries/pull/794
WIP:
https://github.com/RedisTimeSeries/RedisTimeSeries/issues/907
> our approach
Redis Ltd
1. Started by the small scale
projects
a. Redis Module’s
2. Initial OSS deployments
3. local and remote triggers
4. Used for testing, profiling
a. Regression analysis
i. and fix
b. Approval of features
c. Proactive optimization
concrete outcomes…
improved Redis
performance by up to 4x![1]
[1] - https:/
/redis.com/blog/redis-intel-performance-testing/
https:/
/redis.com/blog/redis-7-geographic-commands/
> what we’ve gained (1/4)
● Deeply reduced the feedback cycle ( days -> 1 hour )
● Dev’s can easily add tests (> 300 full suites)
● Scaled + more challenging!
● performance is now everyone’s power/responsibility
> what we’ve gained (2/4)
● A/B test new tech/state-of-the-art HW/SW components
● Continuous up-to-date numbers for use-cases that matter
● Foster openness community/cross-company efforts
> what we’ve gained (3/4)
● Able to commit to reduce overhead per operation on our cloud/SW
● Competitive advantage/Leading
● Shift proactive/reactive + predictiveness
● Reduce costs
○ manual work/detection is at least 17.5X more expensive vs automation detection
> what we’ve gained (4/4)
● ability to reproduce the performance of > 10 years of
development of Redis
■ “go back in time”
what’s next…
● Extend profiler daemon to bpf tooling, vtune
○ off-cpu analysis
○ threading/locking
○ vectorization reports
VISIBILITY for Points of Improvement
> what’s next feature wise (1/2)
> what’s next feature wise (2/2)
● extend tools to characterize further the workload
○ mem bound/cpu bound
○ HW counters
■ stalls on memory
○ % time off-cpu
○ extend partner tooling and HW
■ beta versions of their next gen HW
■ multi-arch comparisons (we do it manually now)
○ extended io statistics
● include low(*er) overhead profilers / tracers
○ call count analysis
○ off cpu flame charts analysis
○ syscall
○ …
> what’s next product wise
● Improve anomaly/regression detection
● Increase OSS / Company adoption
○ expose data on docs
Follow up links
● Redis Performance Group
● Redis Benchmarks Specification
● Making the fast faster blog
Thank you.
ping us at: performance <at> redis <dot> com

Contenu connexe

Similaire à CMG 2024 - Performance Testing, Profiling, and Analysis at Redis

Curiosity and Testery Present: Hitting the right test coverage for CI/CD
Curiosity and Testery Present: Hitting the right test coverage for CI/CDCuriosity and Testery Present: Hitting the right test coverage for CI/CD
Curiosity and Testery Present: Hitting the right test coverage for CI/CD
Curiosity Software Ireland
 
From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]
Dynatrace
 
20141024 AgileDC 2014 Conf How much testing is enough for software that can c...
20141024 AgileDC 2014 Conf How much testing is enough for software that can c...20141024 AgileDC 2014 Conf How much testing is enough for software that can c...
20141024 AgileDC 2014 Conf How much testing is enough for software that can c...
Craeg Strong
 

Similaire à CMG 2024 - Performance Testing, Profiling, and Analysis at Redis (20)

Curiosity and Testery Present: Hitting the right test coverage for CI/CD
Curiosity and Testery Present: Hitting the right test coverage for CI/CDCuriosity and Testery Present: Hitting the right test coverage for CI/CD
Curiosity and Testery Present: Hitting the right test coverage for CI/CD
 
Adopting DevOps for 2-Speed IT
Adopting DevOps for 2-Speed ITAdopting DevOps for 2-Speed IT
Adopting DevOps for 2-Speed IT
 
Continuous Integration to Shift Left Testing Across the Enterprise Stack
Continuous Integration to Shift Left Testing Across the Enterprise StackContinuous Integration to Shift Left Testing Across the Enterprise Stack
Continuous Integration to Shift Left Testing Across the Enterprise Stack
 
IBM Z for the Digital Enterprise - DevOps for Z
IBM Z for the Digital Enterprise - DevOps for Z IBM Z for the Digital Enterprise - DevOps for Z
IBM Z for the Digital Enterprise - DevOps for Z
 
Dev ops for z
Dev ops for z Dev ops for z
Dev ops for z
 
From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]
 
S903 palla
S903 pallaS903 palla
S903 palla
 
Everything You Wanted to Know About JIT Compilation but Were Afraid to Ask [J...
Everything You Wanted to Know About JIT Compilation but Were Afraid to Ask [J...Everything You Wanted to Know About JIT Compilation but Were Afraid to Ask [J...
Everything You Wanted to Know About JIT Compilation but Were Afraid to Ask [J...
 
Continuous Integration for z using Test Data Management and Application D...
Continuous  Integration for z  using  Test Data Management  and Application D...Continuous  Integration for z  using  Test Data Management  and Application D...
Continuous Integration for z using Test Data Management and Application D...
 
Alexyj Kovaliov "Waterfalling to Agile"
Alexyj Kovaliov "Waterfalling to Agile" Alexyj Kovaliov "Waterfalling to Agile"
Alexyj Kovaliov "Waterfalling to Agile"
 
DevOps in the Hybrid Cloud
DevOps in the Hybrid CloudDevOps in the Hybrid Cloud
DevOps in the Hybrid Cloud
 
Live Webinar- Making Test Automation 10x Faster for Continuous Delivery- By R...
Live Webinar- Making Test Automation 10x Faster for Continuous Delivery- By R...Live Webinar- Making Test Automation 10x Faster for Continuous Delivery- By R...
Live Webinar- Making Test Automation 10x Faster for Continuous Delivery- By R...
 
Deployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform EnvironmentsDeployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform Environments
 
Wim Demey - Regression Testing in a Migration Project
Wim Demey - Regression Testing in a Migration Project Wim Demey - Regression Testing in a Migration Project
Wim Demey - Regression Testing in a Migration Project
 
How to Build a DevOps Toolchain
How to Build a DevOps ToolchainHow to Build a DevOps Toolchain
How to Build a DevOps Toolchain
 
Enabling DevOps in the cloud - Federal Cloud Innovation Center
Enabling DevOps in the cloud - Federal Cloud Innovation CenterEnabling DevOps in the cloud - Federal Cloud Innovation Center
Enabling DevOps in the cloud - Federal Cloud Innovation Center
 
Minimize Headaches with Your Postgres Deployment
Minimize Headaches with Your Postgres DeploymentMinimize Headaches with Your Postgres Deployment
Minimize Headaches with Your Postgres Deployment
 
Success Story - Database Testing
Success Story - Database Testing Success Story - Database Testing
Success Story - Database Testing
 
Success Story - Database Testing
Success Story - Database Testing Success Story - Database Testing
Success Story - Database Testing
 
20141024 AgileDC 2014 Conf How much testing is enough for software that can c...
20141024 AgileDC 2014 Conf How much testing is enough for software that can c...20141024 AgileDC 2014 Conf How much testing is enough for software that can c...
20141024 AgileDC 2014 Conf How much testing is enough for software that can c...
 

Dernier

Tembisa Central Terminating Pills +27838792658 PHOMOLONG Top Abortion Pills F...
Tembisa Central Terminating Pills +27838792658 PHOMOLONG Top Abortion Pills F...Tembisa Central Terminating Pills +27838792658 PHOMOLONG Top Abortion Pills F...
Tembisa Central Terminating Pills +27838792658 PHOMOLONG Top Abortion Pills F...
drjose256
 

Dernier (20)

analog-vs-digital-communication (concept of analog and digital).pptx
analog-vs-digital-communication (concept of analog and digital).pptxanalog-vs-digital-communication (concept of analog and digital).pptx
analog-vs-digital-communication (concept of analog and digital).pptx
 
handbook on reinforce concrete and detailing
handbook on reinforce concrete and detailinghandbook on reinforce concrete and detailing
handbook on reinforce concrete and detailing
 
Passive Air Cooling System and Solar Water Heater.ppt
Passive Air Cooling System and Solar Water Heater.pptPassive Air Cooling System and Solar Water Heater.ppt
Passive Air Cooling System and Solar Water Heater.ppt
 
CLOUD COMPUTING SERVICES - Cloud Reference Modal
CLOUD COMPUTING SERVICES - Cloud Reference ModalCLOUD COMPUTING SERVICES - Cloud Reference Modal
CLOUD COMPUTING SERVICES - Cloud Reference Modal
 
Interfacing Analog to Digital Data Converters ee3404.pdf
Interfacing Analog to Digital Data Converters ee3404.pdfInterfacing Analog to Digital Data Converters ee3404.pdf
Interfacing Analog to Digital Data Converters ee3404.pdf
 
engineering chemistry power point presentation
engineering chemistry  power point presentationengineering chemistry  power point presentation
engineering chemistry power point presentation
 
Fuzzy logic method-based stress detector with blood pressure and body tempera...
Fuzzy logic method-based stress detector with blood pressure and body tempera...Fuzzy logic method-based stress detector with blood pressure and body tempera...
Fuzzy logic method-based stress detector with blood pressure and body tempera...
 
15-Minute City: A Completely New Horizon
15-Minute City: A Completely New Horizon15-Minute City: A Completely New Horizon
15-Minute City: A Completely New Horizon
 
Filters for Electromagnetic Compatibility Applications
Filters for Electromagnetic Compatibility ApplicationsFilters for Electromagnetic Compatibility Applications
Filters for Electromagnetic Compatibility Applications
 
History of Indian Railways - the story of Growth & Modernization
History of Indian Railways - the story of Growth & ModernizationHistory of Indian Railways - the story of Growth & Modernization
History of Indian Railways - the story of Growth & Modernization
 
SLIDESHARE PPT-DECISION MAKING METHODS.pptx
SLIDESHARE PPT-DECISION MAKING METHODS.pptxSLIDESHARE PPT-DECISION MAKING METHODS.pptx
SLIDESHARE PPT-DECISION MAKING METHODS.pptx
 
Independent Solar-Powered Electric Vehicle Charging Station
Independent Solar-Powered Electric Vehicle Charging StationIndependent Solar-Powered Electric Vehicle Charging Station
Independent Solar-Powered Electric Vehicle Charging Station
 
Developing a smart system for infant incubators using the internet of things ...
Developing a smart system for infant incubators using the internet of things ...Developing a smart system for infant incubators using the internet of things ...
Developing a smart system for infant incubators using the internet of things ...
 
Intro to Design (for Engineers) at Sydney Uni
Intro to Design (for Engineers) at Sydney UniIntro to Design (for Engineers) at Sydney Uni
Intro to Design (for Engineers) at Sydney Uni
 
Tembisa Central Terminating Pills +27838792658 PHOMOLONG Top Abortion Pills F...
Tembisa Central Terminating Pills +27838792658 PHOMOLONG Top Abortion Pills F...Tembisa Central Terminating Pills +27838792658 PHOMOLONG Top Abortion Pills F...
Tembisa Central Terminating Pills +27838792658 PHOMOLONG Top Abortion Pills F...
 
The Entity-Relationship Model(ER Diagram).pptx
The Entity-Relationship Model(ER Diagram).pptxThe Entity-Relationship Model(ER Diagram).pptx
The Entity-Relationship Model(ER Diagram).pptx
 
What is Coordinate Measuring Machine? CMM Types, Features, Functions
What is Coordinate Measuring Machine? CMM Types, Features, FunctionsWhat is Coordinate Measuring Machine? CMM Types, Features, Functions
What is Coordinate Measuring Machine? CMM Types, Features, Functions
 
5G and 6G refer to generations of mobile network technology, each representin...
5G and 6G refer to generations of mobile network technology, each representin...5G and 6G refer to generations of mobile network technology, each representin...
5G and 6G refer to generations of mobile network technology, each representin...
 
Seismic Hazard Assessment Software in Python by Prof. Dr. Costas Sachpazis
Seismic Hazard Assessment Software in Python by Prof. Dr. Costas SachpazisSeismic Hazard Assessment Software in Python by Prof. Dr. Costas Sachpazis
Seismic Hazard Assessment Software in Python by Prof. Dr. Costas Sachpazis
 
Diploma Engineering Drawing Qp-2024 Ece .pdf
Diploma Engineering Drawing Qp-2024 Ece .pdfDiploma Engineering Drawing Qp-2024 Ece .pdf
Diploma Engineering Drawing Qp-2024 Ece .pdf
 

CMG 2024 - Performance Testing, Profiling, and Analysis at Redis

  • 1. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) E2E Performance Testing, Profiling, and Analysis at Redis Filipe Oliveira CMG Atlanta 2024
  • 2. Filipe Oliveira Principal Performance Engineer at Redis > whoami
  • 3. ■ Working on continuous performance analysis ■ Open Source Contributor (C, Go): ● github.com/redis-performance ● github.com/redis/redis ● https://github.com/HdrHistogram/hdrhistogram-go ● https://github.com/RedisBloom/t-digest-c > whoami
  • 4. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) Agenda Performance @Redis The “old behaviour” The do’s and dont’s Our approach KEY TAKEAWAYS
  • 6. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) Ordinarily, on our companies core products We have... ● automatic extensive tests to catch functional failures ...but when ● we accidentally commit a performance regression, nothing intercepts it*!
  • 7. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) > a real case from the past
  • 8. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) > a real case from the past 1. RediSearch minor version bump 2. Required multiple patch a. Feedback cycle took us at-least 1 day b. prioritized over other projects c. Siloed d. Jul. 30, Nov. 27, 2019 You can relate to... ● your team run performance tests before releasing
  • 9. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) > a real case from the past 1. RediSearch minor version bump 2. Required multiple patch a. Feedback cycle took us at-least 1 day b. prioritized over other projects c. Siloed d. Jul. 30, Nov. 27, 2019 You can relate to... ● your team run performance tests before releasing
  • 10. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) Ordinarily, on our companies core products You can state... ● your team run performance tests before releasing ...but solving slowdowns just before releasing is... ● dangerous ● time-consuming ● one of the most difficult tasks to estimate time to
  • 11. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) Ordinarily, on our companies core products You can state... ● your team run performance tests before releasing ...doing so is just buffering potential issues!
  • 12. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) > goal: reduce feedback cycle. avoid silos Requirements for valid tests - Stable testing environment - Deterministic testing tools - Deterministic outcomes - Reduced testing/probing overhead - Reduce tested changes to the minimal Requirements for acceptance in products - Acceptable duration - No manual work - Actionable items - Well defined key performance indicators CODE REVIEW PREVIEW / UNSTABLE RELEASE MANUAL PERF CHECK from: CODE REVIEW PREVIEW / UNSTABLE RELEASE ZERO TOUCH PERF CHECK ZERO TOUCH PERF CHECK ZERO TOUCH PERF CHECK to:
  • 13. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) > this is not new / disruptive Elastic https://elasticsearch-benchmarks.elastic.co/# Lucene https://home.apache.org/~mikemccand/lucenebench/
  • 14. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) > this is not new / disruptive mongoDB
  • 15. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) > how we’re actually doing it CODE REVIEW PREVIEW / UNSTABLE RELEASE ZERO TOUCH PERF CHECK ZERO TOUCH PERF CHECK ZERO TOUCH PERF CHECK
  • 16. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) > how we’re actually doing it
  • 17. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) > How we’re actually doing it…
  • 18. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) - summary dashboard details for Redis Ltd Performance CI tracking - > 200 Active steady stable VMs on peak > 100K benchmark runs in ~= 2 years > how we’re actually doing it
  • 19. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) > our approach Vanilla Redis (purely OSS project) 1. Created an OSS SPEC a. [follow link] 2. Extend the spec and use it a. for historical data b. for regression analysis c. for docs Redis Developers Group + (Redis Ltd, AWS, Ericson, Alibaba, …. )
  • 20. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) > our approach Redis Ltd 1. Started by the small scale projects a. Redis Module’s 2. Initial OSS deployments 3. local and remote triggers 4. Used for testing, profiling a. Regression analysis i. and fix b. Approval of features c. Proactive optimization
  • 21. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) by branch scalability analysis by version > our approach Redis Ltd 1. Started by the small scale projects a. Redis Module’s 2. Initial OSS deployments 3. local and remote triggers 4. Used for testing, profiling a. Regression analysis i. and fix b. Approval of features c. Proactive optimization
  • 22. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) scalability analysis by branch/version including client and server metrics > our approach Redis Ltd 1. Started by the small scale projects a. Redis Module’s 2. Initial OSS deployments 3. local and remote triggers 4. Used for testing, profiling a. Regression analysis i. and fix b. Approval of features c. Proactive optimization
  • 23. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) > our approach Redis Ltd 1. Started by the small scale projects a. Redis Module’s 2. Initial OSS deployments 3. local and remote triggers 4. Used for testing, profiling a. Regression analysis i. and fix b. Approval of features c. Proactive optimization
  • 24. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) nightly: feature* / perf* / v*: > our approach Redis Ltd 1. Started by the small scale projects a. Redis Module’s 2. Initial OSS deployments 3. local and remote triggers 4. Used for testing, profiling a. Regression analysis i. and fix b. Approval of features c. Proactive optimization
  • 25. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) > our approach Redis Ltd 1. Started by the small scale projects a. Redis Module’s 2. Initial OSS deployments 3. local and remote triggers 4. Used for testing, profiling a. Regression analysis i. and fix b. Approval of features c. Proactive optimization
  • 26. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) 1. Full process Flame Graph + main thread Flame Graph 2. perf report per dso 3. perf report per dso,sym (w/wout callgraph) 4. perf report per dso,sym,srcline (w/wout callgraph) 5. identical stacks collapsed 6. hotpath callgraph 1 3 2 4 6 > our approach Redis Ltd 1. Started by the small scale projects a. Redis Module’s 2. Initial OSS deployments 3. local and remote triggers 4. Used for testing, profiling a. Regression analysis i. and fix b. Approval of features c. Proactive optimization
  • 27. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) > our approach Redis Ltd 1. Started by the small scale projects a. Redis Module’s 2. Initial OSS deployments 3. local and remote triggers 4. Used for testing, profiling a. Regression analysis i. and fix b. Approval of features c. Proactive optimization > 300 individual profiles all merged…
  • 28. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) > our approach Redis Ltd 1. Started by the small scale projects a. Redis Module’s 2. Initial OSS deployments 3. local and remote triggers 4. Used for testing, profiling a. Regression analysis i. and fix b. Approval of features c. Proactive optimization > 300 individual profiles all merged…
  • 29. © 2024 Redis Ltd. All rights reserved. Confidential (Internal use only) Analysis: https://github.com/RedisTimeSeries/RedisTimeSeries/issues/793 PR: https://github.com/RedisTimeSeries/RedisTimeSeries/pull/794 WIP: https://github.com/RedisTimeSeries/RedisTimeSeries/issues/907 > our approach Redis Ltd 1. Started by the small scale projects a. Redis Module’s 2. Initial OSS deployments 3. local and remote triggers 4. Used for testing, profiling a. Regression analysis i. and fix b. Approval of features c. Proactive optimization
  • 31. improved Redis performance by up to 4x![1] [1] - https:/ /redis.com/blog/redis-intel-performance-testing/ https:/ /redis.com/blog/redis-7-geographic-commands/
  • 32. > what we’ve gained (1/4) ● Deeply reduced the feedback cycle ( days -> 1 hour ) ● Dev’s can easily add tests (> 300 full suites) ● Scaled + more challenging! ● performance is now everyone’s power/responsibility
  • 33. > what we’ve gained (2/4) ● A/B test new tech/state-of-the-art HW/SW components ● Continuous up-to-date numbers for use-cases that matter ● Foster openness community/cross-company efforts
  • 34. > what we’ve gained (3/4) ● Able to commit to reduce overhead per operation on our cloud/SW ● Competitive advantage/Leading ● Shift proactive/reactive + predictiveness ● Reduce costs ○ manual work/detection is at least 17.5X more expensive vs automation detection
  • 35. > what we’ve gained (4/4) ● ability to reproduce the performance of > 10 years of development of Redis ■ “go back in time”
  • 37. ● Extend profiler daemon to bpf tooling, vtune ○ off-cpu analysis ○ threading/locking ○ vectorization reports VISIBILITY for Points of Improvement > what’s next feature wise (1/2)
  • 38. > what’s next feature wise (2/2) ● extend tools to characterize further the workload ○ mem bound/cpu bound ○ HW counters ■ stalls on memory ○ % time off-cpu ○ extend partner tooling and HW ■ beta versions of their next gen HW ■ multi-arch comparisons (we do it manually now) ○ extended io statistics ● include low(*er) overhead profilers / tracers ○ call count analysis ○ off cpu flame charts analysis ○ syscall ○ …
  • 39. > what’s next product wise ● Improve anomaly/regression detection ● Increase OSS / Company adoption ○ expose data on docs
  • 40. Follow up links ● Redis Performance Group ● Redis Benchmarks Specification ● Making the fast faster blog
  • 41. Thank you. ping us at: performance <at> redis <dot> com