update status of alternatives authored by anarcat's avatar anarcat
...@@ -107,6 +107,15 @@ actually *more* than 1000Mbit/s (1158.32Mbit/s). Sometimes the above ...@@ -107,6 +107,15 @@ actually *more* than 1000Mbit/s (1158.32Mbit/s). Sometimes the above
benchmark even gives 152MB/s (1222Mbit/s), way beyond what a regular benchmark even gives 152MB/s (1222Mbit/s), way beyond what a regular
GigE link should be able to provide. GigE link should be able to provide.
## wrk
Note that wrk works similarly to `bombardier`, sampled above, and has
the advantage of being already packaged in Debian. Simple cheat sheet:
sudo apt install wrk
echo "10.0.0.0 target.example.com" >> /etc/hosts
wrk --latency -c 100 --duration 2m https://target.example.com/
## Other tools ## Other tools
Siege has trouble going above ~100 concurrent clients because of its Siege has trouble going above ~100 concurrent clients because of its
...@@ -116,20 +125,19 @@ limited, here's a set of interesting alternatives: ...@@ -116,20 +125,19 @@ limited, here's a set of interesting alternatives:
* [ali](https://github.com/nakabonne/ali) - golang, HTTP/2, real-time graph, duration, not in * [ali](https://github.com/nakabonne/ali) - golang, HTTP/2, real-time graph, duration, not in
Debian, mouse support, unsearchable name Debian, mouse support, unsearchable name
* [bombardier](https://github.com/codesenberg/bombardier) - golang, HTTP/2, better performance than siege in * [bombardier](https://github.com/codesenberg/bombardier) - golang, HTTP/2, better performance than siege in
my (2017) tests, not in debian my (2017) tests, not in Debian ([RFP](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=943733))
* [boom](https://github.com/tarekziade/boom) - python rewrite of apachebench, supports duration, * [boom](https://github.com/tarekziade/boom) - python rewrite of apachebench, supports duration,
HTTP/2, not in debian, unsearchable name HTTP/2, not in Debian, unsearchable name
* [go-wrk](https://github.com/adjust/go-wrk/) - golang rewrite of wrk with HTTPS, had performance * [go-wrk](https://github.com/adjust/go-wrk/) - golang rewrite of wrk with HTTPS, had performance
issues in my first tests (2017), [no duration target](https://github.com/adjust/go-wrk/issues/2), not in issues in my first tests (2017), [no duration target](https://github.com/adjust/go-wrk/issues/2), not in
Debian Debian
* [hey](https://github.com/rakyll/hey) - golang rewrite of apachebench, similar to boom, not in * [hey](https://github.com/rakyll/hey) - golang rewrite of apachebench, similar to boom, not in
debian ([ITP #943596](https://bugs.debian.org/943596)), unsearchable name debian ([ITP #943596](https://bugs.debian.org/943596)), unsearchable name
* [Jmeter](https://jmeter.apache.org/) - interactive behavior, can replay recorded sessions * [Jmeter](https://jmeter.apache.org/) - interactive behavior, can replay recorded sessions
from browsers from browsers, in Debian
* [k6.io](https://k6.io/) - commandline JMeter replacement with accompanied * [k6.io](https://k6.io/) - commandline JMeter replacement with accompanied
"cloud" Software-as-a-service "cloud" Software-as-a-service
* [Locust](https://locust.io/) - distributed, can model login and interactive * [Locust](https://locust.io/) - distributed, can model login and interactive
behavior, not in Debian behavior, not in Debian ([ITP](http://bugs.debian.org/982508))
* [Tsung](http://tsung.erlang-projects.org/1/01/about/) - multi-protocol, distributed, erlang * [Tsung](http://tsung.erlang-projects.org/1/01/about/) - multi-protocol, distributed, erlang, in Debian
* [wrk](https://github.com/wg/wrk/) - multithreaded, epoll, Lua scriptable, no HTTPS, only in * [wrk](https://github.com/wg/wrk/) - multithreaded, epoll, Lua scriptable, in Debian
Debian unstable