Load testing and benchmarking with siege against wrk

I was looking for tools that could help me perform load testing and benchmarking. I found couples like: https://github.com/wg/wrk , http://www.joedog.org/siege-home/ , https://github.com/rakyll/boom . I am wondering if anyone has experience with these tools and have any feedback on the benefits against these tools. My load voltage will include various test cases using DELETE, PUT, GET, POST ... headers

thanks

+11
benchmarking performance-testing stress-testing siege wrk
source share
3 answers

I used wrk and siege, siege is a very easy to use tool, but I'm not sure if you can check DELETE or PUT with siege.

Wrk can use the provided lua script to generate requests, so DELETE and PUT will not be a problem. And wrk is a tool that can outperform the NGINX static file server, so I find it fast enough to test a general purpose load.

I never used the boom or Yandex.tank suggested by @Direvius, mainly because wrk is quite simple and fits our needs. But JMeter is too complicated for me.

+13
source share

Load Testing and Testing Tools

Listed in alphabetical order.

ab : slow and single threaded written in C

apib : most ApacheBench (ab) functions, also designed as a more modern replacement, are written in C

baloo : expressive end-to-end HTTP API testing made easy, written in Go (golang)

baton : HTTP load testing written in Go (golang)

bombardier : A fast cross-platform HTTP performance testing tool written in Go (golang)

curl-loader : loading performance of various application services and generating traffic written in C

Drill : An HTTP stress testing application inspired by Rust Ansible syntax

fasthttploader : benchmark (a kind of ab) with automatic configuration and graphs based on the fasthttp library, writing to Go (golang)

fortio : download the test library, command line tool, and web interface. Allows you to set a given request load per second and record delay histograms and other useful statistics, write in Go (golang)

gatling : high-performance framework for load testing based on Scala, Akka and Netty, write to Scala

go-wrk : an HTTP performance testing tool based on the spirit of the excellent wrk (wg / wrk) tool, write in Go (golang)

goad : AWS Lambda, a highly distributed tool for load testing, write in Go (golang)

gobench : a tool for stress testing and testing HTTP / HTTPS performance, write to Go (golang)

gohttpbench : ab-like performance testing tool running on a multi-core processor, write in Go (golang)

hey : HTTP (S) load generator, ApacheBench (ab) replacement, formerly known as rakyll / boom, written in Go (golang)

htstress : multi-threaded high-load beachmarking services (> 5K rps) written in C / Linux

httperf : complex configuration, slow and single-threaded, written in C

Inundator : A simple and high-performance HTTP stream program written in C / Linux

jmeter : Apache JMeter ™, a pure application designed to load test performance on both static and dynamic resources, written in Java

k6 : a modern stress testing tool written in ES6 JS with support for HTTP / 1.1, HTTP / 2.0 and WebSocket written in Go (golang)

locust : An easy-to-use real-time web-based distributed load testing tool. It simulates a swarm of simultaneous users, the behavior of each of them is determined by your Python code. Written in python

mgun : a modern tool for load testing HTTP servers written in Go (golang)

pounce : aligns, but results fluctuate, sometimes faster than httress written in C

Siege : Slow and single-threaded, written in C

slapper : a simple tool for load testing with a real-time updated histogram of query time written in Go (golang)

slow_cooker : a load tester focused on life cycle problems and lengthy tests, a service with predictable workload and concurrency for a long period of time, written in Go (golang)

sniper : a powerful and high-performance http load tester written in Go (golang)

tsung : simulate stress users to test scalability and performance of client-server applications based on the IP servers HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP and Jabber / XMPP written in Erlang.

vegeta : HTTP stress testing tool and library written in Go (golang)

weighttp : multithreaded but slower than httress without keepalive written in C

wrk : multithreaded, written in C / Lua

wrk2 : constant bandwidth, correct version of wrk recording with delay written in C / Lua

yandex-tank : a tool for measuring load and performance, written in Python / C | C ++ | Asm (Phantom)

Descriptions are here .

+20
source share

I have never used any of them, but I heard some positive reviews about wrk.

I think you should also try Jmeter , which is very popular and possibly Yandex.tank , which is the tool that we use in our LT department for most of our web services.

+2
source share

All Articles