SlideShare a Scribd company logo
Yandex.Tank: a performance
measurement tool
Alexey Lavrenuke, HighLoadStrategy, 2015
Yandex.Tank
10 years of development
Full of features
Proven practical usefulness
3
Yandex.Tank
〉10 years of development
Full of features
Proven practical usefulness
4
A Story of a Programmer and his Creature
Phantom: a fast web-server
Coroutine-based
There was no tool to test it
5
shutterstock.com
The Beast Beats Itself
OK, why, let’s use phantom to test phantom
Phantom-benchmark was written
6
shutterstock.com
Phantom and Friends
Scripts in Bash and Perl to simplify
testers’ daily routine
Web-service that keeps the data
together
7
shutterstock.com
Tank grows big
Unified toolset for common tasks
Modular structure to be flexible and
extensible
Tank became a dedicated project
8
shutterstock.com
Yandex.Tank today
An open source project under
LGPL license
Mostly python, some js.
Default load gen is in C++
(external project)
9
shutterstock.com
Meta tool
Yandex.Tank is a meta tool
Tank: common workflow for
different load generators
Load gen: generate load and
measure response
characteristics accurately
10
Yandex.Tank
10 years of development
〉Full of features
Proven practical usefulness
11
Features list
Monitoring tool included
HTML reports with interactive charts
Auto stop your test on different conditions
High speed
Convenient configuration system
Extensibility
12
The fast, the furious
Phantom: 100 000 requests per
second
This is about 8 000 000 000
requests per day
13
shutterstock.com
Configure that
Configuration in .ini files
Good defaults and you can redefine them
Redefine on multiple levels
14
shutterstock.com
How to configure, load.ini
[phantom]
15
Add section header:
How to configure, load.ini
[phantom]
address = my.service.com
16
Add server’s address:
How to configure, load.ini
[phantom]
address = my.service.com
uris = /
/mypage.html
/my/query?param=1
headers = [Host: my.service.com]
[Connection: Keep-Alive]
17
Add URI list and HTTP headers:
How to configure, load.ini
[phantom]
address = my.service.com
uris = /
/mypage.html
/my/query?param=1
headers = [Host: my.service.com]
[Connection: Keep-Alive]
rps_schedule = line(1, 30000, 40s) const(30000, 5m)
18
Last one, the schedule. Put it all to ‘load.ini’:
Shoot it down!
yandex-tank -c ./load.ini
19
Save the file as load.ini and shoot:
21
Percentiles and times
distribution for current
load level
22
HTTP and network errors
for current load level
23
Cumulative percentiles and
request/response average
sizes
24
Progress, ETA and
metainfo
25
Progress, ETA and
metainfo
How to configure, command line
26
yandex-tank -c ./load.ini -o
"phantom.rps_schedule=line(1, 30, 40s) const(30, 5m)"
Vary the load schedule by adding command line option:
How to configure defaults
27
〉Machine defaults at /etc/yandex-tank
〉User defaults at ~/.yandex-tank
[autostop]
autostop = http(4xx,25%,10)
Extensible
Open-source
Modular by design
Write a reader for custom log format
Write a wrapper for your favorite tool
28
shutterstock.com
A fun part =)
Drummers contest at an IT conference:
who makes more hits in a minute?
One hit = one request to the server
More then a hundred competitors in
one day
29
Yandex.Tank
10 years of development
Full of features
〉Proven practical usefulness
30
Why automate?
Humans are expensive
And robots are not
31*Bender, a character from Futurama
*
CI
Use Tank with Jenkins
HTTP API
One test — one click (or no clicks
at all)
32
lrp.it
Jenkins: tank startup script
Download ammo via scp, shoot with
parameters
33
scp srv1:/var/log/access.log ./
yandex-tank -c ./load.ini
-o"phantom.rps_schedule=const($rps, 10m)"
Reports
HTML, and you can change the template
Interactive JS-based graphics
Easy to share
34
shutterstock.com
35
Yandex.Tank
10 years of development
Full of features
Proven practical usefulness
〉And one more thing…
36
Try it at home!
Install from PPA:
sudo add-apt-repository ppa:yandex-load/main
sudo apt-get update
sudo apt-get install yandex-load-tank-base
37
Use a Docker container with Yandex.Tank + TankAPI:
sudo docker run -d -p 8080:8888
"direvius/yandex-tank-api:v0.0.1"
shutterstock.com
Some useful links
About Yandex.Tank project: http://yandex.github.io/yandex-tank/
Yandex.Tank on github: https://github.com/yandex/yandex-tank
Yandex Tank API on github: https://github.com/yandex-load/yandex-tank-api
phantom on github: https://github.com/mamchits/phantom
Read the docs on ReadTheDocs: https://yandextank.readthedocs.org/
Ask questions in a gitter chat room: https://gitter.im/yandex/yandex-tank
My twitter is @direvius. Yandex.Tank’s tag is #yandextank
39
Thank you!
Alexey Lavrenuke, HighLoadStrategy, 2015
direvius@yandex.ru

More Related Content

What's hot

Flink Forward San Francisco 2019: Scaling a real-time streaming warehouse wit...
Flink Forward San Francisco 2019: Scaling a real-time streaming warehouse wit...Flink Forward San Francisco 2019: Scaling a real-time streaming warehouse wit...
Flink Forward San Francisco 2019: Scaling a real-time streaming warehouse wit...
Flink Forward
 
Flink Forward Berlin 2017: Dominik Bruhn - Deploying Flink Jobs as Docker Con...
Flink Forward Berlin 2017: Dominik Bruhn - Deploying Flink Jobs as Docker Con...Flink Forward Berlin 2017: Dominik Bruhn - Deploying Flink Jobs as Docker Con...
Flink Forward Berlin 2017: Dominik Bruhn - Deploying Flink Jobs as Docker Con...
Flink Forward
 
Scaling metrics
Scaling metricsScaling metrics
Scaling metrics
Vladimir Varfolomeev
 
Object Compaction in Cloud for High Yield
Object Compaction in Cloud for High YieldObject Compaction in Cloud for High Yield
Object Compaction in Cloud for High Yield
ScyllaDB
 
What's new with serverless on google cloud
What's new with serverless on google cloud What's new with serverless on google cloud
What's new with serverless on google cloud
GDG Cloud Bengaluru
 
Boosting command line experience with python and awk
Boosting command line experience with python and awkBoosting command line experience with python and awk
Boosting command line experience with python and awk
Kirill Pavlov
 
Flink Forward Berlin 2017: Piotr Wawrzyniak - Extending Apache Flink stream p...
Flink Forward Berlin 2017: Piotr Wawrzyniak - Extending Apache Flink stream p...Flink Forward Berlin 2017: Piotr Wawrzyniak - Extending Apache Flink stream p...
Flink Forward Berlin 2017: Piotr Wawrzyniak - Extending Apache Flink stream p...
Flink Forward
 
Flink Forward Berlin 2017: Andreas Kunft - Efficiently executing R Dataframes...
Flink Forward Berlin 2017: Andreas Kunft - Efficiently executing R Dataframes...Flink Forward Berlin 2017: Andreas Kunft - Efficiently executing R Dataframes...
Flink Forward Berlin 2017: Andreas Kunft - Efficiently executing R Dataframes...
Flink Forward
 
Python Streaming Pipelines on Flink - Beam Meetup at Lyft 2019
Python Streaming Pipelines on Flink - Beam Meetup at Lyft 2019Python Streaming Pipelines on Flink - Beam Meetup at Lyft 2019
Python Streaming Pipelines on Flink - Beam Meetup at Lyft 2019
Thomas Weise
 
Dynamic pricing of Lyft rides using streaming
Dynamic pricing of Lyft rides using streamingDynamic pricing of Lyft rides using streaming
Dynamic pricing of Lyft rides using streaming
Amar Pai
 
Flink Forward Berlin 2017: Ruben Casado Tejedor - Flink-Kudu connector: an op...
Flink Forward Berlin 2017: Ruben Casado Tejedor - Flink-Kudu connector: an op...Flink Forward Berlin 2017: Ruben Casado Tejedor - Flink-Kudu connector: an op...
Flink Forward Berlin 2017: Ruben Casado Tejedor - Flink-Kudu connector: an op...
Flink Forward
 
gRPC: Beyond REST
gRPC: Beyond RESTgRPC: Beyond REST
gRPC: Beyond REST
Domingo Suarez Torres
 
Stream Processing Live Traffic Data with Kafka Streams
Stream Processing Live Traffic Data with Kafka StreamsStream Processing Live Traffic Data with Kafka Streams
Stream Processing Live Traffic Data with Kafka Streams
Tim Ysewyn
 
Flink Forward Berlin 2017: Maciek Próchniak - TouK Nussknacker - creating Fli...
Flink Forward Berlin 2017: Maciek Próchniak - TouK Nussknacker - creating Fli...Flink Forward Berlin 2017: Maciek Próchniak - TouK Nussknacker - creating Fli...
Flink Forward Berlin 2017: Maciek Próchniak - TouK Nussknacker - creating Fli...
Flink Forward
 
Observability and Product Release
Observability and Product ReleaseObservability and Product Release
Observability and Product Release
Sneha Inguva
 

What's hot (16)

Flink Forward San Francisco 2019: Scaling a real-time streaming warehouse wit...
Flink Forward San Francisco 2019: Scaling a real-time streaming warehouse wit...Flink Forward San Francisco 2019: Scaling a real-time streaming warehouse wit...
Flink Forward San Francisco 2019: Scaling a real-time streaming warehouse wit...
 
Flink Forward Berlin 2017: Dominik Bruhn - Deploying Flink Jobs as Docker Con...
Flink Forward Berlin 2017: Dominik Bruhn - Deploying Flink Jobs as Docker Con...Flink Forward Berlin 2017: Dominik Bruhn - Deploying Flink Jobs as Docker Con...
Flink Forward Berlin 2017: Dominik Bruhn - Deploying Flink Jobs as Docker Con...
 
Scaling metrics
Scaling metricsScaling metrics
Scaling metrics
 
Object Compaction in Cloud for High Yield
Object Compaction in Cloud for High YieldObject Compaction in Cloud for High Yield
Object Compaction in Cloud for High Yield
 
What's new with serverless on google cloud
What's new with serverless on google cloud What's new with serverless on google cloud
What's new with serverless on google cloud
 
Boosting command line experience with python and awk
Boosting command line experience with python and awkBoosting command line experience with python and awk
Boosting command line experience with python and awk
 
Flink Forward Berlin 2017: Piotr Wawrzyniak - Extending Apache Flink stream p...
Flink Forward Berlin 2017: Piotr Wawrzyniak - Extending Apache Flink stream p...Flink Forward Berlin 2017: Piotr Wawrzyniak - Extending Apache Flink stream p...
Flink Forward Berlin 2017: Piotr Wawrzyniak - Extending Apache Flink stream p...
 
Flink Forward Berlin 2017: Andreas Kunft - Efficiently executing R Dataframes...
Flink Forward Berlin 2017: Andreas Kunft - Efficiently executing R Dataframes...Flink Forward Berlin 2017: Andreas Kunft - Efficiently executing R Dataframes...
Flink Forward Berlin 2017: Andreas Kunft - Efficiently executing R Dataframes...
 
Python Streaming Pipelines on Flink - Beam Meetup at Lyft 2019
Python Streaming Pipelines on Flink - Beam Meetup at Lyft 2019Python Streaming Pipelines on Flink - Beam Meetup at Lyft 2019
Python Streaming Pipelines on Flink - Beam Meetup at Lyft 2019
 
Dynamic pricing of Lyft rides using streaming
Dynamic pricing of Lyft rides using streamingDynamic pricing of Lyft rides using streaming
Dynamic pricing of Lyft rides using streaming
 
OLAP Architecture
OLAP ArchitectureOLAP Architecture
OLAP Architecture
 
Flink Forward Berlin 2017: Ruben Casado Tejedor - Flink-Kudu connector: an op...
Flink Forward Berlin 2017: Ruben Casado Tejedor - Flink-Kudu connector: an op...Flink Forward Berlin 2017: Ruben Casado Tejedor - Flink-Kudu connector: an op...
Flink Forward Berlin 2017: Ruben Casado Tejedor - Flink-Kudu connector: an op...
 
gRPC: Beyond REST
gRPC: Beyond RESTgRPC: Beyond REST
gRPC: Beyond REST
 
Stream Processing Live Traffic Data with Kafka Streams
Stream Processing Live Traffic Data with Kafka StreamsStream Processing Live Traffic Data with Kafka Streams
Stream Processing Live Traffic Data with Kafka Streams
 
Flink Forward Berlin 2017: Maciek Próchniak - TouK Nussknacker - creating Fli...
Flink Forward Berlin 2017: Maciek Próchniak - TouK Nussknacker - creating Fli...Flink Forward Berlin 2017: Maciek Próchniak - TouK Nussknacker - creating Fli...
Flink Forward Berlin 2017: Maciek Próchniak - TouK Nussknacker - creating Fli...
 
Observability and Product Release
Observability and Product ReleaseObservability and Product Release
Observability and Product Release
 

Viewers also liked

Нагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаНагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаAleksandr Boichenko
 
Conciliacion al ingreso y alta en la UGC de Farmacia de Granada. Ponencia de ...
Conciliacion al ingreso y alta en la UGC de Farmacia de Granada. Ponencia de ...Conciliacion al ingreso y alta en la UGC de Farmacia de Granada. Ponencia de ...
Conciliacion al ingreso y alta en la UGC de Farmacia de Granada. Ponencia de ...
UGC Farmacia Granada
 
Perlbeginnes 9 lt_ytnobody
Perlbeginnes 9 lt_ytnobodyPerlbeginnes 9 lt_ytnobody
Perlbeginnes 9 lt_ytnobodyazuma satoshi
 
Study space times
Study space timesStudy space times
Study space times
stoliros
 
Dosier personalbrandingplan
Dosier personalbrandingplanDosier personalbrandingplan
Dosier personalbrandingplan
Soymimarca
 
大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向
azuma satoshi
 
Anastasi Lecture 2008
Anastasi Lecture 2008Anastasi Lecture 2008
Anastasi Lecture 2008
behnke3791
 
Lectionline Santissima Trinità anno A
Lectionline Santissima Trinità anno ALectionline Santissima Trinità anno A
Lectionline Santissima Trinità anno AMaike Loes
 
Diabetes 2011, Spring Seminar
Diabetes 2011, Spring  SeminarDiabetes 2011, Spring  Seminar
Diabetes 2011, Spring Seminar
Sonja Upham
 
Imovie tutorial
Imovie tutorial Imovie tutorial
Imovie tutorial stoliros
 
Cancer 2011
Cancer  2011Cancer  2011
Cancer 2011
Sonja Upham
 
Lectionline XXVI domenica del t o 28 settembre 2014
Lectionline XXVI domenica del t o 28 settembre 2014Lectionline XXVI domenica del t o 28 settembre 2014
Lectionline XXVI domenica del t o 28 settembre 2014Maike Loes
 
Social Media Marketing Solution for Dentists
Social Media Marketing Solution for DentistsSocial Media Marketing Solution for Dentists
Social Media Marketing Solution for Dentists
socialraver
 
Rabies
RabiesRabies
Characteristics of Effective Health Curricula
Characteristics of Effective Health CurriculaCharacteristics of Effective Health Curricula
Characteristics of Effective Health Curricularmchpe
 
Leading research in technoscience institutttseminar-281010
Leading research in technoscience institutttseminar-281010Leading research in technoscience institutttseminar-281010
Leading research in technoscience institutttseminar-281010
NTNU
 
11° Domingo Ordinario, Ciclo C
11° Domingo Ordinario, Ciclo C11° Domingo Ordinario, Ciclo C
11° Domingo Ordinario, Ciclo C
Maike Loes
 

Viewers also liked (20)

Нагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаНагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.Танка
 
Conciliacion al ingreso y alta en la UGC de Farmacia de Granada. Ponencia de ...
Conciliacion al ingreso y alta en la UGC de Farmacia de Granada. Ponencia de ...Conciliacion al ingreso y alta en la UGC de Farmacia de Granada. Ponencia de ...
Conciliacion al ingreso y alta en la UGC de Farmacia de Granada. Ponencia de ...
 
Perlbeginnes 9 lt_ytnobody
Perlbeginnes 9 lt_ytnobodyPerlbeginnes 9 lt_ytnobody
Perlbeginnes 9 lt_ytnobody
 
Study space times
Study space timesStudy space times
Study space times
 
Dosier personalbrandingplan
Dosier personalbrandingplanDosier personalbrandingplan
Dosier personalbrandingplan
 
大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向
 
Anastasi Lecture 2008
Anastasi Lecture 2008Anastasi Lecture 2008
Anastasi Lecture 2008
 
Lectionline Santissima Trinità anno A
Lectionline Santissima Trinità anno ALectionline Santissima Trinità anno A
Lectionline Santissima Trinità anno A
 
Diabetes 2011, Spring Seminar
Diabetes 2011, Spring  SeminarDiabetes 2011, Spring  Seminar
Diabetes 2011, Spring Seminar
 
Latitude Africa
Latitude AfricaLatitude Africa
Latitude Africa
 
Vlada menshosti
Vlada menshostiVlada menshosti
Vlada menshosti
 
Heather
Heather     Heather
Heather
 
Imovie tutorial
Imovie tutorial Imovie tutorial
Imovie tutorial
 
Cancer 2011
Cancer  2011Cancer  2011
Cancer 2011
 
Lectionline XXVI domenica del t o 28 settembre 2014
Lectionline XXVI domenica del t o 28 settembre 2014Lectionline XXVI domenica del t o 28 settembre 2014
Lectionline XXVI domenica del t o 28 settembre 2014
 
Social Media Marketing Solution for Dentists
Social Media Marketing Solution for DentistsSocial Media Marketing Solution for Dentists
Social Media Marketing Solution for Dentists
 
Rabies
RabiesRabies
Rabies
 
Characteristics of Effective Health Curricula
Characteristics of Effective Health CurriculaCharacteristics of Effective Health Curricula
Characteristics of Effective Health Curricula
 
Leading research in technoscience institutttseminar-281010
Leading research in technoscience institutttseminar-281010Leading research in technoscience institutttseminar-281010
Leading research in technoscience institutttseminar-281010
 
11° Domingo Ordinario, Ciclo C
11° Domingo Ordinario, Ciclo C11° Domingo Ordinario, Ciclo C
11° Domingo Ordinario, Ciclo C
 

Similar to Yandex.tank

Why is this ASP.NET web app running slowly?
Why is this ASP.NET web app running slowly?Why is this ASP.NET web app running slowly?
Why is this ASP.NET web app running slowly?
Mark Friedman
 
Monitoring web application response times, a new approach
Monitoring web application response times, a new approachMonitoring web application response times, a new approach
Monitoring web application response times, a new approach
Mark Friedman
 
Flexible and Real-Time Stream Processing with Apache Flink
Flexible and Real-Time Stream Processing with Apache FlinkFlexible and Real-Time Stream Processing with Apache Flink
Flexible and Real-Time Stream Processing with Apache Flink
DataWorks Summit
 
Velocity 2010 - ATS
Velocity 2010 - ATSVelocity 2010 - ATS
Velocity 2010 - ATS
Leif Hedstrom
 
Monitoring web application response times^lj a hybrid approach for windows
Monitoring web application response times^lj a hybrid approach for windowsMonitoring web application response times^lj a hybrid approach for windows
Monitoring web application response times^lj a hybrid approach for windows
Mark Friedman
 
Unified Stream Processing at Scale with Apache Samza by Jake Maes at Big Data...
Unified Stream Processing at Scale with Apache Samza by Jake Maes at Big Data...Unified Stream Processing at Scale with Apache Samza by Jake Maes at Big Data...
Unified Stream Processing at Scale with Apache Samza by Jake Maes at Big Data...
Big Data Spain
 
Systematic Load Testing of Web Applications
Systematic Load Testing of Web ApplicationsSystematic Load Testing of Web Applications
Systematic Load Testing of Web Applications
Jürg Stuker
 
Hp Loadrunner
Hp LoadrunnerHp Loadrunner
Hp Loadrunner
guestb3416f
 
The Next Generation of Data Processing and Open Source
The Next Generation of Data Processing and Open SourceThe Next Generation of Data Processing and Open Source
The Next Generation of Data Processing and Open Source
DataWorks Summit/Hadoop Summit
 
Qtp not just for gui anymore
Qtp   not just for gui anymoreQtp   not just for gui anymore
Qtp not just for gui anymorePragya Rastogi
 
Flink Streaming Hadoop Summit San Jose
Flink Streaming Hadoop Summit San JoseFlink Streaming Hadoop Summit San Jose
Flink Streaming Hadoop Summit San JoseKostas Tzoumas
 
Ginsbourg.com - Performance and Load Test Report Template LTR 1.5
Ginsbourg.com - Performance and Load Test Report Template LTR 1.5Ginsbourg.com - Performance and Load Test Report Template LTR 1.5
Ginsbourg.com - Performance and Load Test Report Template LTR 1.5
Shay Ginsbourg
 
Loadrunner vs Jmeter
Loadrunner vs JmeterLoadrunner vs Jmeter
Loadrunner vs Jmeter
Atul Pant
 
Demystifying Web Vitals
Demystifying Web VitalsDemystifying Web Vitals
Demystifying Web Vitals
Samar Panda
 
Unified Stream Processing at Scale with Apache Samza - BDS2017
Unified Stream Processing at Scale with Apache Samza - BDS2017Unified Stream Processing at Scale with Apache Samza - BDS2017
Unified Stream Processing at Scale with Apache Samza - BDS2017
Jacob Maes
 
Reactive streams and components on OSGi - C Schneider
Reactive streams and components on OSGi - C SchneiderReactive streams and components on OSGi - C Schneider
Reactive streams and components on OSGi - C Schneider
mfrancis
 
What's New in Apache Spark 2.3 & Why Should You Care
What's New in Apache Spark 2.3 & Why Should You CareWhat's New in Apache Spark 2.3 & Why Should You Care
What's New in Apache Spark 2.3 & Why Should You Care
Databricks
 
JMeter_ Cubet Seminar ppt
JMeter_ Cubet Seminar pptJMeter_ Cubet Seminar ppt
JMeter_ Cubet Seminar ppt
Cubet Techno Labs
 
Load Speed PSI development of webcore vitals
Load Speed PSI development of webcore vitalsLoad Speed PSI development of webcore vitals
Load Speed PSI development of webcore vitals
rahmathidayat471220
 
Flink Streaming Berlin Meetup
Flink Streaming Berlin MeetupFlink Streaming Berlin Meetup
Flink Streaming Berlin Meetup
Márton Balassi
 

Similar to Yandex.tank (20)

Why is this ASP.NET web app running slowly?
Why is this ASP.NET web app running slowly?Why is this ASP.NET web app running slowly?
Why is this ASP.NET web app running slowly?
 
Monitoring web application response times, a new approach
Monitoring web application response times, a new approachMonitoring web application response times, a new approach
Monitoring web application response times, a new approach
 
Flexible and Real-Time Stream Processing with Apache Flink
Flexible and Real-Time Stream Processing with Apache FlinkFlexible and Real-Time Stream Processing with Apache Flink
Flexible and Real-Time Stream Processing with Apache Flink
 
Velocity 2010 - ATS
Velocity 2010 - ATSVelocity 2010 - ATS
Velocity 2010 - ATS
 
Monitoring web application response times^lj a hybrid approach for windows
Monitoring web application response times^lj a hybrid approach for windowsMonitoring web application response times^lj a hybrid approach for windows
Monitoring web application response times^lj a hybrid approach for windows
 
Unified Stream Processing at Scale with Apache Samza by Jake Maes at Big Data...
Unified Stream Processing at Scale with Apache Samza by Jake Maes at Big Data...Unified Stream Processing at Scale with Apache Samza by Jake Maes at Big Data...
Unified Stream Processing at Scale with Apache Samza by Jake Maes at Big Data...
 
Systematic Load Testing of Web Applications
Systematic Load Testing of Web ApplicationsSystematic Load Testing of Web Applications
Systematic Load Testing of Web Applications
 
Hp Loadrunner
Hp LoadrunnerHp Loadrunner
Hp Loadrunner
 
The Next Generation of Data Processing and Open Source
The Next Generation of Data Processing and Open SourceThe Next Generation of Data Processing and Open Source
The Next Generation of Data Processing and Open Source
 
Qtp not just for gui anymore
Qtp   not just for gui anymoreQtp   not just for gui anymore
Qtp not just for gui anymore
 
Flink Streaming Hadoop Summit San Jose
Flink Streaming Hadoop Summit San JoseFlink Streaming Hadoop Summit San Jose
Flink Streaming Hadoop Summit San Jose
 
Ginsbourg.com - Performance and Load Test Report Template LTR 1.5
Ginsbourg.com - Performance and Load Test Report Template LTR 1.5Ginsbourg.com - Performance and Load Test Report Template LTR 1.5
Ginsbourg.com - Performance and Load Test Report Template LTR 1.5
 
Loadrunner vs Jmeter
Loadrunner vs JmeterLoadrunner vs Jmeter
Loadrunner vs Jmeter
 
Demystifying Web Vitals
Demystifying Web VitalsDemystifying Web Vitals
Demystifying Web Vitals
 
Unified Stream Processing at Scale with Apache Samza - BDS2017
Unified Stream Processing at Scale with Apache Samza - BDS2017Unified Stream Processing at Scale with Apache Samza - BDS2017
Unified Stream Processing at Scale with Apache Samza - BDS2017
 
Reactive streams and components on OSGi - C Schneider
Reactive streams and components on OSGi - C SchneiderReactive streams and components on OSGi - C Schneider
Reactive streams and components on OSGi - C Schneider
 
What's New in Apache Spark 2.3 & Why Should You Care
What's New in Apache Spark 2.3 & Why Should You CareWhat's New in Apache Spark 2.3 & Why Should You Care
What's New in Apache Spark 2.3 & Why Should You Care
 
JMeter_ Cubet Seminar ppt
JMeter_ Cubet Seminar pptJMeter_ Cubet Seminar ppt
JMeter_ Cubet Seminar ppt
 
Load Speed PSI development of webcore vitals
Load Speed PSI development of webcore vitalsLoad Speed PSI development of webcore vitals
Load Speed PSI development of webcore vitals
 
Flink Streaming Berlin Meetup
Flink Streaming Berlin MeetupFlink Streaming Berlin Meetup
Flink Streaming Berlin Meetup
 

Recently uploaded

Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
ShamsuddeenMuhammadA
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
Roshan Dwivedi
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 

Recently uploaded (20)

Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 

Yandex.tank

  • 1.
  • 2. Yandex.Tank: a performance measurement tool Alexey Lavrenuke, HighLoadStrategy, 2015
  • 3. Yandex.Tank 10 years of development Full of features Proven practical usefulness 3
  • 4. Yandex.Tank 〉10 years of development Full of features Proven practical usefulness 4
  • 5. A Story of a Programmer and his Creature Phantom: a fast web-server Coroutine-based There was no tool to test it 5 shutterstock.com
  • 6. The Beast Beats Itself OK, why, let’s use phantom to test phantom Phantom-benchmark was written 6 shutterstock.com
  • 7. Phantom and Friends Scripts in Bash and Perl to simplify testers’ daily routine Web-service that keeps the data together 7 shutterstock.com
  • 8. Tank grows big Unified toolset for common tasks Modular structure to be flexible and extensible Tank became a dedicated project 8 shutterstock.com
  • 9. Yandex.Tank today An open source project under LGPL license Mostly python, some js. Default load gen is in C++ (external project) 9 shutterstock.com
  • 10. Meta tool Yandex.Tank is a meta tool Tank: common workflow for different load generators Load gen: generate load and measure response characteristics accurately 10
  • 11. Yandex.Tank 10 years of development 〉Full of features Proven practical usefulness 11
  • 12. Features list Monitoring tool included HTML reports with interactive charts Auto stop your test on different conditions High speed Convenient configuration system Extensibility 12
  • 13. The fast, the furious Phantom: 100 000 requests per second This is about 8 000 000 000 requests per day 13 shutterstock.com
  • 14. Configure that Configuration in .ini files Good defaults and you can redefine them Redefine on multiple levels 14 shutterstock.com
  • 15. How to configure, load.ini [phantom] 15 Add section header:
  • 16. How to configure, load.ini [phantom] address = my.service.com 16 Add server’s address:
  • 17. How to configure, load.ini [phantom] address = my.service.com uris = / /mypage.html /my/query?param=1 headers = [Host: my.service.com] [Connection: Keep-Alive] 17 Add URI list and HTTP headers:
  • 18. How to configure, load.ini [phantom] address = my.service.com uris = / /mypage.html /my/query?param=1 headers = [Host: my.service.com] [Connection: Keep-Alive] rps_schedule = line(1, 30000, 40s) const(30000, 5m) 18 Last one, the schedule. Put it all to ‘load.ini’:
  • 19. Shoot it down! yandex-tank -c ./load.ini 19 Save the file as load.ini and shoot:
  • 20.
  • 21. 21 Percentiles and times distribution for current load level
  • 22. 22 HTTP and network errors for current load level
  • 26. How to configure, command line 26 yandex-tank -c ./load.ini -o "phantom.rps_schedule=line(1, 30, 40s) const(30, 5m)" Vary the load schedule by adding command line option:
  • 27. How to configure defaults 27 〉Machine defaults at /etc/yandex-tank 〉User defaults at ~/.yandex-tank [autostop] autostop = http(4xx,25%,10)
  • 28. Extensible Open-source Modular by design Write a reader for custom log format Write a wrapper for your favorite tool 28 shutterstock.com
  • 29. A fun part =) Drummers contest at an IT conference: who makes more hits in a minute? One hit = one request to the server More then a hundred competitors in one day 29
  • 30. Yandex.Tank 10 years of development Full of features 〉Proven practical usefulness 30
  • 31. Why automate? Humans are expensive And robots are not 31*Bender, a character from Futurama *
  • 32. CI Use Tank with Jenkins HTTP API One test — one click (or no clicks at all) 32 lrp.it
  • 33. Jenkins: tank startup script Download ammo via scp, shoot with parameters 33 scp srv1:/var/log/access.log ./ yandex-tank -c ./load.ini -o"phantom.rps_schedule=const($rps, 10m)"
  • 34. Reports HTML, and you can change the template Interactive JS-based graphics Easy to share 34 shutterstock.com
  • 35. 35
  • 36. Yandex.Tank 10 years of development Full of features Proven practical usefulness 〉And one more thing… 36
  • 37. Try it at home! Install from PPA: sudo add-apt-repository ppa:yandex-load/main sudo apt-get update sudo apt-get install yandex-load-tank-base 37 Use a Docker container with Yandex.Tank + TankAPI: sudo docker run -d -p 8080:8888 "direvius/yandex-tank-api:v0.0.1"
  • 39. Some useful links About Yandex.Tank project: http://yandex.github.io/yandex-tank/ Yandex.Tank on github: https://github.com/yandex/yandex-tank Yandex Tank API on github: https://github.com/yandex-load/yandex-tank-api phantom on github: https://github.com/mamchits/phantom Read the docs on ReadTheDocs: https://yandextank.readthedocs.org/ Ask questions in a gitter chat room: https://gitter.im/yandex/yandex-tank My twitter is @direvius. Yandex.Tank’s tag is #yandextank 39
  • 40. Thank you! Alexey Lavrenuke, HighLoadStrategy, 2015 direvius@yandex.ru