Внимание. Мы разработали новый сервис Yandex LoadTesting, который со временем должен заменить Overload. Ознакомьтесь, пожалуйста, более подробно

OverLoad 𝛃

Overload

a performance analytics service

Once we accept our limits, we go beyond them.

Albert Einstein

Find out about your app's performance limits and bottlenecks in order to use your resources in a most effective way. Ensure your app is scalable and find a way to make it scalable. Use Overload to choose a reliable technology stack before you even started developing your product.

100 000+ RPS

Use phantom load engine written in pure C++ to generate big amount of load from one machine.

View on GitHub »

Interactive reports

See how your system behaves under load while running the test. Save report when the test is over and email it to your colleagues.

Example »

Monitoring plugin

Collect all your system and business metrics by configuring monitoring plugin. The resources of the host you shooting at are monitored by default.

Example »

Multiple load engines

Use JMeter to test complex scenarios or BFG (experimental) for exotic protocols. Implement your own module for your favorite tool and use Tank's features like OnlineReport with it.

View details »

Autostops

Save your time by stopping your tests automatically using customizable criteria.

View details »

Simple ammo format

Use your access.log for shooting or generate ammo from your logs using simple script.

View details »


Install Client (Yandex.Tank)

Docker-based installation

One option is to use docker container. Install docker, create a config file (see below) and run this command:

docker run -v $(pwd):/var/loadtest -v $HOME/.ssh:/root/.ssh -it yandex/yandex-tank

PIP-based installation

Other option is installing yandex-tank on your machine. We will describe the installation process for debian-based systems, but we think you can figure it out how to do it on your system of choice (some people run Yandex.Tank on their Macs for example). This installation process is slightly different from the one described in official docs because we need the latest version from github master branch for Overload.

These are the packages that are required to build different python libraries. Install them with apt:

sudo apt-get install python-pip build-essential python-dev libffi-dev gfortran libssl-dev

Update your pip:

sudo -H pip install --upgrade pip

Update/install your setuptools:

sudo -H pip install --upgrade setuptools

Install latest Yandex.Tank from master branch:

sudo -H pip install https://api.github.com/repos/yandex/yandex-tank/tarball/master

You'll probably need Phantom load generator, so install it from our ppa:

sudo add-apt-repository ppa:yandex-load/main && sudo apt-get update
sudo apt-get install phantom phantom-ssl

Running your tests

Well, you have installed Yandex.Tank on your PC or a dedicated load server. The next step is making your first config. It's just a simple .ini file, so create one. Let's call it load.yaml -- this is the default config filename for Yandex.Tank.

overload:
  enabled: true
  package: yandextank.plugins.DataUploader
  token_file: "token.txt"
phantom:
  address: example.com:443
  ssl: true
  load_profile:
    load_type: rps
    schedule: line(1, 10, 1m)
  uris:
    - /
    - /page1
    - /page2
telegraf:
  enabled: false

For details and other options see Yandex.Tank's documentation.

Now you're ready to start your first test. Let's go!

yandex-tank -c load.yaml

Yandex.Tank will print a link to your test's live view.

Your test results will be stored in our database and you'll be able to send a link to them to one of your friends or collegues.

You can delete your data if you want. Be carefull - your tests results are available to other Overload users. We always hide config for security reason though.

We are hopeful that with the help of Overload you'll find a way to make your service faster and more reliable.

We are looking forward for your feedback via email or Gitter.