From 9d5227f4158ddbb5abe25e6745563f41666e854b Mon Sep 17 00:00:00 2001
From: Alexey Lavrenuke a performance measurement tool Once we accept our limits, we go beyond them. 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 Yandex.Tank to choose a reliable technology stack before you even started developing your product. Use phantom load engine written in pure C++ to generate big amount of load from one machine. See how your system behaves under load while running the test. Save report when the test is over and email it to your colleagues. Collect all your system and business metrics by configuring monitoring plugin. The resources of the host you shooting at are monitored by default. 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. Use Yandex.Tank with Jenkins or other CI software to automate your load tests. Store reports online. Stop your tests automatically using customizable criteria. Use your access.log for shooting or generate ammo from your logs using simple script. Add our repository and install: Our default load generator is phantom. Phantom is an open-source web server based on coroutines. That is why it is so fast and resource efficient. Wait, the web server? How to use a web server as a load generator? Long time ago we added benchmarking feature to this web server so it became also a performant client. It was done in order to be able to test high capacity phantom-based services. No other tool of that time was capable of generating such amount of load using only one machine. Phantom could. One look is worth a thousand words, so here is an interactive example. This is one of the most important charts from the report that Tank shows you: a quantile graph. There are response time quantiles for each second on it, so that you can examine that, for example, at 16:16:54 75% of responses were faster then 45 milliseconds. Give it a try! An extensible monitoring plugin comes with Yandex.Tank. By default it monitors four metrics on target you shoot at: CPU, Disk, Network and Memory. You can ask Tank to monitor other hosts and add some other metrics. You can even define your own metrics. You will see all these metrics in your report. There are plenty of cool load generators out there. Each one has its own advantages and disadvantages. So why choose only one? Using Yandex.Tank as a load test manager you can already choose between phantom, JMeter and BFG, more are coming and you can easily implement supporting module for your favourite load engine. Convinient multi-level configuration system of Yandex.Tank makes it a great tool to use in a CI environment. Config files in .ini format are easy to generate programmatically and the ability to specify or override any option from command line makes it all even more flexible. There are multiple possibilities to specify the requests you want Yandex.Tank to shoot at your server. From just a list of URI-s in your config file to full requests bodies in external file. Most common access.log format is also supported. It is not a hard job to implement your own ammo format.Yandex.Tank
100 000+ RPS
Interactive reports
Monitoring plugin
Multiple load engines
Integration
Simple ammo format
Install from PPA
sudo add-apt-repository ppa:yandex-load/main
-sudo apt-get update && sudo apt-get install yandex-load-tank-base
Download
phantom
reports
{{quantiles.name}}
monitoring
load engines
integration
ammo
Use phantom load engine written in pure C++ to generate big amount of load from one machine.
See how your system behaves under load while running the test. Save report when the test is over and email it to your colleagues.
Collect all your system and business metrics by configuring monitoring plugin. The resources of the host you shooting at are monitored by default.
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.
Use Yandex.Tank with Jenkins or other CI software to automate your load tests. Store reports online. Stop your tests automatically using customizable criteria.
Use your access.log for shooting or generate ammo from your logs using simple script.
Add our repository and install:
sudo add-apt-repository ppa:yandex-load/main +sudo apt-get update && sudo apt-get install yandex-load-tank-base
Our default load generator is phantom. Phantom is an open-source web server based on coroutines. That is why it is so fast and resource efficient.
Wait, the web server? How to use a web server as a load generator? Long time ago we added benchmarking feature to this web server so it became also a performant client. It was done in order to be able to test high capacity phantom-based services. No other tool of that time was capable of generating such amount of load using only one machine. Phantom could.
Go to top »One look is worth a thousand words, so here is an interactive example. This is one of the most important charts from the report that Tank shows you: a quantile graph. There are response time quantiles for each second on it, so that you can examine that, for example, at 16:16:54 75% of responses were faster then 45 milliseconds. Give it a try!
An extensible monitoring plugin comes with Yandex.Tank. By default it monitors four metrics on target you shoot at: CPU, Disk, Network and Memory. You can ask Tank to monitor other hosts and add some other metrics. You can even define your own metrics. You will see all these metrics in your report.
Go to top »There are plenty of cool load generators out there. Each one has its own advantages and disadvantages. So why choose only one? Using Yandex.Tank as a load test manager you can already choose between phantom, JMeter and BFG, more are coming and you can easily implement supporting module for your favourite load engine.
Go to top »Convinient multi-level configuration system of Yandex.Tank makes it a great tool to use in a CI environment. Config files in .ini format are easy to generate programmatically and the ability to specify or override any option from command line makes it all even more flexible.
Go to top »There are multiple possibilities to specify the requests you want Yandex.Tank to shoot at your server. From just a list of URI-s in your config file to full requests bodies in external file. Most common access.log format is also supported. It is not a hard job to implement your own ammo format.
Go to top »