SlideShare a Scribd company logo
Performance testing of
microservices
IN ACTION
Alexander Kachur
Lead QA Automation Engineer
at Waverley Software

alexander.kachur[at]gmail.com
Julien Dupre
1. Consideration points on picking load generator
2. How to use CPU flame graph to identify bottleneck
3. Issues with the Cloud and Docker
4. How to use perf to figure out what happened
5. Links
Take Aways
Performance testing of microservices in Action
Performance testing of microservices in Action
Performance testing of microservices in Action
Containers
Performance testing of microservices in Action
Simple Queueing Model
Service
center
Response
time
Input
Output
Queue
Performance testing of microservices in Action
Performance testing of microservices in Action
Performance testing of microservices in Action
P is for Profiling
Service Map
Jeremy Cook
Performance testing of microservices in Action
Performance testing of microservices in Action
Reporting
Reporting
Performance testing of microservices in Action
Performance testing of microservices in Action
Performance testing of microservices in Action
Round 1
Round 1
Flame Graphs
main()
create()find()
query() init() print()
main()
find()
main()
init()
create()
main()
create()
query() print()
Flame Graphs
Flame Graphs
Round 1
DNS
Round 2
Round 2
Flame Graphs
Flame Graphs
Flame Graphs
Round 2
TTY stdout
Round 3
Round 3
Flame Graphs
Flame Graphs
Flame Graphs
Round 3
keep-alive
Final Round
Final Round
Flame Graphs with Docker
0. [sudo sysctl kernel.perf_event_paranoid=0]
1. perf record -F 99 -g -p ${PID}
2. docker exec -it ${container_ID} top
3. docker exec ${container_ID} cat /tmp/perf-${internal_PID}.map > /tmp/perf-
${PID}.map
4. perf script -f > out.perf
5. ./FlameGraph/stackcollapse-perf.pl out.perf > out.folded
6. ./FlameGraph/flamegraph.pl --hash out.folded > out.svg
Flame Graphs with Docker
0. [sudo sysctl kernel.perf_event_paranoid=0]
1. perf record -F 99 -g -p ${PID}
2. docker exec -it ${container_ID} top
3. docker exec ${container_ID} cat /tmp/perf-${internal_PID}.map > /tmp/perf-
${PID}.map
4. perf script -f > out.perf
5. ./FlameGraph/stackcollapse-perf.pl out.perf > out.folded
6. ./FlameGraph/flamegraph.pl --hash out.folded > out.svg
Flame Graphs with Docker
0. [sudo sysctl kernel.perf_event_paranoid=0]
1. perf record -F 99 -g -p ${PID}
2. docker exec -it ${container_ID} top
3. docker exec ${container_ID} cat /tmp/perf-${internal_PID}.map > /tmp/perf-
${PID}.map
4. perf script -f > out.perf
5. ./FlameGraph/stackcollapse-perf.pl out.perf > out.folded
6. ./FlameGraph/flamegraph.pl --hash out.folded > out.svg
Flame Graphs with Docker
0. [sudo sysctl kernel.perf_event_paranoid=0]
1. perf record -F 99 -g -p ${PID}
2. docker exec -it ${container_ID} top
3. docker exec ${container_ID} cat /tmp/perf-${internal_PID}.map > /tmp/perf-$
{PID}.map
OR
4. perf script | perl ./FlameGraph/stackcollapse-perf.pl |gzip | curl --data-binary
@- -H "Content-Tye: gzip" -H "Accept-Encoding: gzip" flamegraph-
generator.herokuapp.com/api/generate
https://github.com/olka/flamegraph-generator
RPC problem
RPC solutions
Performance in the Cloud
Performance in the Cloud
Performance in the Cloud
Drill Down
Drill Down
Drill Down
Drill Down
Drill Down
Conclusion
1. Why?
2. Why?
3. Why?
4. Why?
5. Why?
Gurus
Brendan Gregg - brendangregg.com | FlameGraph
Baron Schwartz - xaprb.com
Rob Harrop - robharrop.github.io
Neil J. Gunther - perfdynamics.com/Manifesto/USLscalability.html
Aleksey Shipilëv- shipilev.net
Sasha Goldshtein - blog.sashag.net
Nitsan Wakart - psy-lob-saw.blogspot.co.il
Aleksey Lavrenyuk - events.yandex.ru/lib/people/302066
Vladimir Sitnikov- lektorium.tv/speaker/27401
Performance testing of microservices in Action

More Related Content

PDF
Why is a[1] fast than a.get(1)
PDF
Programação Assíncrona com Asyncio
PPTX
JavaScript Event Loop
PDF
Data structure programs in c++
PDF
Device-specific Clang Tooling for Embedded Systems
PDF
Introduction to RevKit
PDF
GoLang & GoatCore
PDF
Kubernetes Tutorial
Why is a[1] fast than a.get(1)
Programação Assíncrona com Asyncio
JavaScript Event Loop
Data structure programs in c++
Device-specific Clang Tooling for Embedded Systems
Introduction to RevKit
GoLang & GoatCore
Kubernetes Tutorial

What's hot (20)

PDF
R and cpp
PDF
JavaScript Event Loop
PDF
Building a DSL with GraalVM (VoxxedDays Luxembourg)
PDF
Reversible Logic Synthesis and RevKit
PDF
Basicsof c make and git for a hello qt application
PDF
Ntp cheat sheet
PDF
Concurrency in Python4k
PDF
Scaling FastAGI Applications with Go
PPTX
Cyclone + Eventsource (realtime push-сообщения)
PDF
[OpenInfra Days Korea 2018] (Track 4) - Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
PDF
Cypher for Gremlin
PPTX
Using Grafana with InfluxDB 2.0 and Flux Lang by Jacob Lisi
RTF
ODP
libpcap
ODP
ocelot
PDF
Building a DSL with GraalVM (CodeOne)
DOCX
Lab loop
DOCX
Exercice.docx
PPTX
Streams for the Web
R and cpp
JavaScript Event Loop
Building a DSL with GraalVM (VoxxedDays Luxembourg)
Reversible Logic Synthesis and RevKit
Basicsof c make and git for a hello qt application
Ntp cheat sheet
Concurrency in Python4k
Scaling FastAGI Applications with Go
Cyclone + Eventsource (realtime push-сообщения)
[OpenInfra Days Korea 2018] (Track 4) - Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Cypher for Gremlin
Using Grafana with InfluxDB 2.0 and Flux Lang by Jacob Lisi
libpcap
ocelot
Building a DSL with GraalVM (CodeOne)
Lab loop
Exercice.docx
Streams for the Web
Ad

Similar to Performance testing of microservices in Action (20)

PDF
Proposalforootconf
PDF
Things I've learned working with Docker Support
PDF
Tensorflow in Docker
PDF
Beyond Golden Containers: Complementing Docker with Puppet
PDF
Profiling your Applications using the Linux Perf Tools
PPT
Happy porting x86 application to android
PPTX
2012 coscup - Build your PHP application on Heroku
PDF
ContainerDayVietnam2016: Django Development with Docker
PPT
101 3.5 create, monitor and kill processes v2
PDF
Functional Programming inside OOP? It’s possible with Python
PDF
Performance Profiling in Rust
PDF
Cloud RPI4 tomcat ARM64
PDF
Kernel Recipes 2015 - Kernel dump analysis
PPTX
Дмитрий Демчук. Кроссплатформенный краш-репорт
PDF
JavaCro'15 - Conquer the Internet of Things with Java and Docker - Johan Jans...
PDF
Docker Essentials Workshop— Innovation Labs July 2020
PDF
Delivering Docker & K3s worloads to IoT Edge devices
PDF
New Docker Features for Orchestration and Containers
PPT
101 3.4 use streams, pipes and redirects v2
PDF
Linux Security APIs and the Chromium Sandbox
Proposalforootconf
Things I've learned working with Docker Support
Tensorflow in Docker
Beyond Golden Containers: Complementing Docker with Puppet
Profiling your Applications using the Linux Perf Tools
Happy porting x86 application to android
2012 coscup - Build your PHP application on Heroku
ContainerDayVietnam2016: Django Development with Docker
101 3.5 create, monitor and kill processes v2
Functional Programming inside OOP? It’s possible with Python
Performance Profiling in Rust
Cloud RPI4 tomcat ARM64
Kernel Recipes 2015 - Kernel dump analysis
Дмитрий Демчук. Кроссплатформенный краш-репорт
JavaCro'15 - Conquer the Internet of Things with Java and Docker - Johan Jans...
Docker Essentials Workshop— Innovation Labs July 2020
Delivering Docker & K3s worloads to IoT Edge devices
New Docker Features for Orchestration and Containers
101 3.4 use streams, pipes and redirects v2
Linux Security APIs and the Chromium Sandbox
Ad

Recently uploaded (20)

PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Electronic commerce courselecture one. Pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Empathic Computing: Creating Shared Understanding
PDF
Approach and Philosophy of On baking technology
PPTX
Cloud computing and distributed systems.
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Machine learning based COVID-19 study performance prediction
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Encapsulation theory and applications.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
sap open course for s4hana steps from ECC to s4
Electronic commerce courselecture one. Pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Understanding_Digital_Forensics_Presentation.pptx
Empathic Computing: Creating Shared Understanding
Approach and Philosophy of On baking technology
Cloud computing and distributed systems.
Per capita expenditure prediction using model stacking based on satellite ima...
Spectral efficient network and resource selection model in 5G networks
Dropbox Q2 2025 Financial Results & Investor Presentation
Machine learning based COVID-19 study performance prediction
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Encapsulation_ Review paper, used for researhc scholars
MIND Revenue Release Quarter 2 2025 Press Release
Building Integrated photovoltaic BIPV_UPV.pdf
Chapter 3 Spatial Domain Image Processing.pdf
Encapsulation theory and applications.pdf

Performance testing of microservices in Action