SlideShare a Scribd company logo
1 of 41
Download to read offline
© 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

More Related Content

Similar to 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/CDCuriosity Software Ireland
 
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 StackDevOps.com
 
Dev ops for z
Dev ops for z Dev ops for z
Dev ops for z bamadhu
 
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
 
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...David Buck
 
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...DevOps for Enterprise Systems
 
Alexyj Kovaliov "Waterfalling to Agile"
Alexyj Kovaliov "Waterfalling to Agile" Alexyj Kovaliov "Waterfalling to Agile"
Alexyj Kovaliov "Waterfalling to Agile" Agile Lietuva
 
DevOps in the Hybrid Cloud
DevOps in the Hybrid CloudDevOps in the Hybrid Cloud
DevOps in the Hybrid CloudRichard Irving
 
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...RapidValue
 
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 EnvironmentsIBM UrbanCode Products
 
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 TEST Huddle
 
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 CenterSanjeev Sharma
 
Minimize Headaches with Your Postgres Deployment
Minimize Headaches with Your Postgres DeploymentMinimize Headaches with Your Postgres Deployment
Minimize Headaches with Your Postgres DeploymentEDB
 
Success Story - Database Testing
Success Story - Database Testing Success Story - Database Testing
Success Story - Database Testing Indium Software
 
Success Story - Database Testing
Success Story - Database Testing Success Story - Database Testing
Success Story - Database Testing Indium Software
 
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
 

Similar to 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...
 

Recently uploaded

SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 

Recently uploaded (20)

SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 

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