5 ms·
HTTP/2 load testing with Vegeta
- jgrahamc 11y agoNice. I'll add to my list of tools for debugging and testing HTTP/2: https://blog.cloudflare.com/tools-for-debugging-testing-and-using-http-2/ https://blog.cloudflare.com/tools-for-debugging-testing-and-...
- aidylewis 11y agoIt was the changes in Go 1.6 which made HTTP/2 testing work with Vegeta out of the box. https://github.com/bbc/notes-on-perf-testing/blob/master/ch/http2.md https://github.com/bbc/notes-on-perf-testing/blob/master/ch/...
- brndn 11y agoI was just about to start looking into some http load testing tools, so I am glad to see this come up. Do people recommend this tool? What are some competitors? Can you produce enough load from your average laptop to effectively load test a web server?
- bkeroack 11y agoI've used wrk[1] which is quite nice. My local macbook was able to completely saturate the service with ~20k req/sec. 1. https://github.com/wg/wrk https://github.com/wg/wrk
- placeybordeaux 11y agoI've used both wrk and vegeta. wrk is a bit more flexible/mature, but vegeta has a somewhat nice interface and can be called as a library if you write go. Both can be used to max out whatever your most limiting resource is.
- caleblloyd 11y agoI recommend Vegeta. It's super easy to configure and you can install it with a single binary. You can produce as much load as your Open File Descriptor limit, CPU/Memory, or Network pipe can handle using a single instance of this program.
- sagichmal 11y agoKubernetes team uses Vegeta in their 10,000,000 QPS load test. http://blog.kubernetes.io/2016/03/1000-nodes-and-beyond-updates-to-Kubernetes-performance-and-scalability-in-12.html http://blog.kubernetes.io/2016/03/1000-nodes-and-beyond-upda...
- Matthias247 11y agoHowever it seems like only h2 (HTTP/2 over TLS) is supported and not h2c (HTTP/2 over TCP with upgrade handshake) or HTTP/2 with prior knowledge. It's a bit unfortunate that because of the decision of the browser vendors to support only HTTP/2 over TLS (for valid reasons) now a lot of libraries and tools support only that mode. For lots of other applications HTTP/2 without TLS would be helpful too.
- tsenart 11y agoThis may be possible in a not so distant future. For background: - https://github.com/bradfitz/http2/issues/59 https://github.com/bradfitz/http2/issues/59 - https://github.com/golang/go/issues/14141 https://github.com/golang/go/issues/14141
- caleblloyd 11y agoHow does the HTTP/2 implementation work? Does it open a single TCP connection, then fire all load testing requests over that connection, or does it open multiple TCP connections and spread the load testing requests over multiple connections?
- tsenart 11y agoAuthor here. This is configurable with a combination of the -connections and -keepalive flags in the attack command.
- liopleurodon 11y agocan't get to the page. is the load over 9000?
- tsenart 11y agoUnfortunately, Github was down for a bit. Back up!
- it_learnses 11y agoyour ref wasn't lost on me at least ;) Some trivia: that this was a mistranslation and in the original Japanese, it was "over 8000!"