diff --git a/howto/benchmark.md b/howto/benchmark.md index 62433d9c0c332134fc0c577756cf58e85cd90534..f894f30db5429f1be04e8e88cf64aaada298fbec 100644 --- a/howto/benchmark.md +++ b/howto/benchmark.md @@ -122,22 +122,19 @@ Siege has trouble going above ~100 concurrent clients because of its design (and ulimit) limitations. Its interactive features are also limited, here's a set of interesting alternatives: - * [ali](https://github.com/nakabonne/ali) - golang, HTTP/2, real-time graph, duration, not in - Debian, mouse support, unsearchable name - * [bombardier](https://github.com/codesenberg/bombardier) - golang, HTTP/2, better performance than siege in - 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, - HTTP/2, not in Debian, unsearchable name - * [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 - Debian - * [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 - * [Jmeter](https://jmeter.apache.org/) - interactive behavior, can replay recorded sessions - from browsers, in Debian - * [k6.io](https://k6.io/) - commandline JMeter replacement with accompanied - "cloud" Software-as-a-service - * [Locust](https://locust.io/) - distributed, can model login and interactive - behavior, not in Debian ([ITP](http://bugs.debian.org/982508)) - * [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, in Debian +| Project | Lang | Proto | Features | Notes | Debian | +|-----------------|--------|--------|------------------------------------------|------------------------------------------------------------|-----------| +| [ali](https://github.com/nakabonne/ali) | golang | HTTP/2 | real-time graph, duration, mouse support | unsearchable name | no | +| [bombardier](https://github.com/codesenberg/bombardier) | golang | HTTP/2 | | better performance than siege in my 2017 tests | [RFP](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=943733)) | +| [boom](https://github.com/tarekziade/boom) | Python | HTTP/2 | duration | rewrite of apachebench, unsearchable name | no | +| [go-wrk](https://github.com/adjust/go-wrk/) | golang | | [no duration](https://github.com/adjust/go-wrk/issues/2) | rewrite of wrk, performance issues in my 2017 tests | no | +| [hey](https://github.com/rakyll/hey) | golang | | | rewrite of apachebench, similar to boom, unsearchable name | [ITP](https://bugs.debian.org/943596) | +| [Jmeter](https://jmeter.apache.org/) | Java | | interactive, session replay | | yes | +| [k6.io](https://k6.io/) | | | | JMeter rewrite with "cloud" SaaS | no | +| [Locust](https://locust.io/) | | | distributed, interactive behavior | | [ITP](http://bugs.debian.org/982508) | +| [Tsung](http://tsung.erlang-projects.org/1/01/about/) | Erlang | multi | distributed | | yes | +| [wrk](https://github.com/wg/wrk/) | C | | multithreaded, epoll, Lua scriptable | | yes | + +Note that the Proto(col) and Features columns are not exhaustive: a +tool *might* support (say) HTTPS, HTTP/2, or HTTP/3 even if it doesn't +explicitly mention it, although it's unlikely.