Top Banner
80

Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Mar 15, 2018

Download

Documents

vuongnhan
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load
Page 2: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Load Testing at Yandex

Alexey Lavrenuke

Page 3: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

What is Yandex

Load Testing at Yandex

Page 4: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Yet another indexer

Page 5: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Yet another indexer

Page 6: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Yandex

Page 7: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load
Page 8: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Yandex’s mission is to help people discover new opportunities in their lives.

8

Page 9: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Yandex’s mission is to help people discover new opportunities in their lives.

8

Russian search engine

Started at 1997

Most popular search engine in Russia

Page 10: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Why do we need Load Testing

Load Testing at Yandex

Page 11: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Albert Einstein*

Once we accept our limits, we go beyond them.

* some say Einstein didn't say that but the expression is still beautiful

Page 12: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

DevOps

Developers have never faced with performance problems before production

Sysadmins do not know service's architecture

Performance problems highlighted during load testing encourages people to work together solving them

11

Page 13: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Different kinds of problems

〉 Stateless services. High throughput and velocity (banner system)

〉 Scenario-based services (mail)

〉 Different protocols (inter-service communication)

〉 Batch systems (statistical services)

12

Page 14: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Our main tool

Load Testing at Yandex

Page 15: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Yandex.Tank: a ten-years history

Better software is produced by those forced to operate it*

phantom is a very fast web-server

phantom-benchmark is a plugin for it that acts as a client. And it is also fast

Yandex.Tank is built around phantom-benchmark. But today it is even more capable

* quoted from Theo Schlossnagle's "Operational Software Design" talk announce 14

Page 16: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Yandex.Tank today

Yandex.Tank is an opensource project

〉 Primary language is Python

〉 Default load generator isphantom (C++)

〉 JMeter support

15

Page 17: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Yandex.Tank's internal architecture

Yandex.Tank is a meta-tool

〉Tank provides common workflow for different load generators

〉Generator should create sufficient load and measure response characteristics

〉Tank has modular design

16By Dave Hakkens [CC BY-SA 3.0], via Wikimedia Commons

Page 18: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Use Yandex.Tank

Load Testing at Yandex

Page 19: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Load testing environment at Yandex

Cloud of tanks

Cloud of targets

A service that stores test results

DevOps, again: enable developers to perform load tests with minimum efforts

18

Page 20: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Use cases

Stateless: phantom + Yandex.Tank

Scenario-based: JMeter + Yandex.Tank

Different protocols: JMeter, phantom in some cases or custom solutions + Yandex.Tank

Batch systems: not using Yandex.Tank. Will discuss them later

19

Page 21: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

How to install it

20

Phantom

Jmeter

Yandex.Tank

Page 22: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

How to install it

Ubuntu PPA

Python package

20

Phantom

Jmeter

Yandex.Tank

Page 23: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

How to install it

Ubuntu PPA

Python package

20

Phantom

Jmeter

Yandex.Tank

Ubuntu PPAFrom sources

Page 24: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

How to install it

Ubuntu PPA

Python package

20

Phantom

Jmeter

Yandex.Tank

Ubuntu PPAFrom sources

Any way you want

Page 25: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

How to install it

Ubuntu PPA

Python package

21

Phantom

Jmeter

Yandex.Tank

Ubuntu PPA From sources

Any way you want

Docker repository

Page 26: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Configure your first load test

〉 .ini files

〉 good defaults

〉 redefine defaults on multiple levels

it is rather easy to use Yandex.Tank to make automated load tests

22

Page 27: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Configure your first load test

〉 .ini files

〉 good defaults

〉 redefine defaults on multiple levels

it is rather easy to use Yandex.Tank to make automated load tests

22

Page 28: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Configuration example, load.ini

Section header: for each plugin

23

[phantom]

Page 29: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Choose target

Target address: IP, IPv6 or domain name

24

[phantom] address = my.service.com

Page 30: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

What do we send

Ammo in one of possible formats

25

[phantom] address = my.service.com uris = / /mypage.html /clck/page?data=hello headers = [Host: example.org] [Accept-Encoding: gzip,deflate]

Page 31: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Load type

Add schedule

26

[phantom] address = my.service.com uris = / /mypage.html /clck/page?data=hello headers = [Host: example.org] [Accept-Encoding: gzip,deflate] rps_schedule = const(1, 40s)

Page 32: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

First test

Save config as load.ini and shoot

a smoke test: just some shoots

27

yandex-tank -c ./load.ini

Page 33: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Test types

Load Testing at Yandex

Page 34: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Open and closed systems

29

Closed system Open system

Closed systems have negative feedback that makes it impossible to "bury" the service. Users wait for the responses before making new requests

No negative feedback in open system. Internet is an open system

Page 35: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Finding max performance

Closed model, gradually raise thread count

each thread sends requests one-by-one

30

yandex-tank -c ./load.ini -o "phantom.instances_schedule=line(1, 40, 10m)» -o "phantom.rps_schedule="

Page 36: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Times distribution graph

31

Page 37: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Times distribution graph

31

thread count(schedule)RPS

times distribution(each second)

Page 38: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Finding max performance on times dist graph

32

response times distribution graph

Page 39: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Finding max performance on times dist graph

32

response times distribution graph

Page 40: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Finding max performance on times dist graph

32

lineargrowth

response times distribution graph

Page 41: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Finding max performance on times dist graph

32

top performance

lineargrowth

response times distribution graph

Page 42: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Finding max performance on times dist graph

32

top performance

degraded!lineargrowth

response times distribution graph

Page 43: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Finding point of failure

Open system. Hard schedule

emulate open system with multitude of threads

33

yandex-tank -c ./load.ini -o "phantom.rps_schedule=line(1, 1000, 10m)" -o "phantom.instances=10000"

Page 44: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Response times quantiles graph

34

Page 45: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Response times quantiles graph

34

load schedule(expected RPS)

quantiles

response times

Page 46: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Finding point of failure on RT quantile graph

35

response times quantiles

Page 47: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Finding point of failure on RT quantile graph

35

response times quantiles

imbalance started

Page 48: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Finding point of failure on RT quantile graph

35

response times quantiles

imbalance started RPS of failure

Page 49: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Measuring response times

Open system, constant load. Load level from SLA or from previous tests

don't forget about warming up

36

yandex-tank -c ./load.ini -o "phantom.rps_schedule=line(1, 300, 30s) const(300, 5m)" -o "phantom.instances=10000"

Page 50: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Mind your spikes

37

spikes on quantile graph

Page 51: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Mind your spikes

37

spikes on quantile graph

Page 52: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Common spikes reasons

"Heavy" requests in your ammo. See if spikes become more often on higher load

Periodical processes on your server. Cron job or cache synchronization. Garbage collector

Someone else queries your server periodically

38

Page 53: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Investigating reasons for spikes

39

Service downloads something periodically:

memory consumption network send/receive

Page 54: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Investigating reasons for spikes

39

Service downloads something periodically:

memory consumption network send/receive

Page 55: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Finding leaking resources

Open system, constant load, long period

set your load level at 80-90% from maximum level you've found before

40

yandex-tank -c ./load.ini -o "phantom.rps_schedule=line(1, 700, 30s) const(700, 1h)" -o "phantom.instances=10000"

Page 56: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Testing methodology

〉 Smoke test. Ensure your system is working and you have all the metrics needed

〉 Performance test. Closed system, growing number of threads

〉 Imbalance test. Open system, hard schedule, linear growth

〉Measuring timings. Open system, constant load level from SLA

〉 Find leaking resources. High load level.

〉 Any other test you need.

41

Page 57: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Approaching batch systems

Load Testing at Yandex

Page 58: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Machine learning system

43

The machine

An interestingperson

codependentfilters

with history

Ordinarypeople

Markrelevantevents

Eventlog

Page 59: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

44

codependentfilters

Machine learning system

Markrelevantevents

Page 60: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

44

codependentfilters

Targeting

Statistics

Billing

Machine learning system

Markrelevantevents

Page 61: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Living with a batch system

Millions of events in one log. Thus, no RPS

Log sizes varied over the day. Can't change load level. Can't make it "flat" or linear

Can't use Yandex.Tank or any other load generator. Still want to see performance limits and trends

45

Page 62: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Why having X2 server is never enough

Assumption: if we have an X2 server and it works then we have enough time to do something before we reach our performance limit in production

But how much time do we have and what exactly should we do?

46

Page 63: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

First step: collecting metrics

We collected different kind of metrics from all our servers.

Some of them were useful in understanding the results of experiments

But they work only if the change is instant and big enough

47

Page 64: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Problem: too many metrics

There are a lot of metrics. Really a lot

And we don't know for sure which of them are the reasons and which are the consequenses

Lower the number of dimensions

48

Page 65: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Solution: scatter plots

Uncorrelated Linear dependency

49

Page 66: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

What scatter plot can tell us

50

Non-zeroprocess timefor zero-sizedlogs

Non-lineartail

Outliers

Page 67: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Compare observations

51

Page 68: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Compare observations

Test vs Prod

New release vs current

Period in the past with today

52

Page 69: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Find trends

Basic idea: build linear model on each release and compare the coefficients

But the data is too noisy and the model is unstable

53

Page 70: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Making it better

Clean the dataset by using density-based clusterization

Use points from the biggest cluster to build the linear model

Investigate the reasons for outliers and smaller clusters

54

Page 71: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Dig deeper: components dependencies

55

The machine

codependentfilters

with history

An interestingperson

Ordinarypeople

Markrelevantevents

Eventlog

Page 72: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Dig deeper: components dependencies

56

codependentfilters

with history

An interestingperson

Ordinarypeople

Markrelevantevents

Eventlog

Page 73: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Dig deeper: components dependencies

Investigated component dependencies

Extracted data flow from code

Converted them into graph diagram

Found critical path: the longest path in that graph

57

Page 74: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Critical path visualization

Collected data about each component work times and wait times for each processed log

Visualize them on critical path

Now we can find bottlenecks and see if they migrate in new releases

58

Page 75: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Testing the batch system

〉 Learn about the architecture

〉 Collect a lot of metrics. Write tools to collect additional metrics

〉 Find correlations

〉 Automate trend detection

〉 Find the critical path

〉 Investigate outliers

59

Page 76: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Summary, links and contacts

Load Testing at Yandex

Page 77: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

What did we learn today

〉Yandex.Tank: a universal load testing tool

〉Load testing methodology

〉How to approach batch systems

61

Page 78: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Useful links

Our chat room: gitter.im/yandex/yandex-tank

About Yandex.Tank project: yandex.github.io/yandex-tank

Yandex.Tank on github: github.com/yandex/yandex-tank

Yandex Tank API on github: github.com/yandex-load/yandex-tank-api

phantom on github: github.com/mamchits/phantom

Read the docs on ReadTheDocs: yandextank.readthedocs.org

62

Page 79: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Alexey Lavrenuke

testing engineer

Contacts

@direvius, #[email protected]

Page 80: Load Testing at Yandex - USENIX · PDF fileLoad Testing at Yandex. ... JMeter + Yandex.Tank Different protocols: JMeter, phantom in ... Docker repository. Configure your first load

Let’s go beyond our limits!