On Tue, Jul 19, 2011 at 2:10 AM, Kazu Yamamoto <kazu@iij.ad.jp> wrote:

ab (ApacheBench) tries to create HTTP 1.0 connections and expects that
the connections are closed by the server side. So, trying to benchmark
Warp with "ab" results in getting stacked.

ApacheBench is a piece of ... well, I've nothing good to say about it. It doesn't speak HTTP 1.1, it screws up keepalive negotiations, it fails to scale up to generating high load, etc, etc.

If you want something more plausible that actually speaks HTTP 1.1 (HTTP 1.0 is just about dead in the real world, and has been for ages), use httperf. However, I quite strongly dislike using it: it takes a long time to read enough of the documentation to figure out how to do supposedly simple things ... such as specifying a URL!

My Haskell HTTP load tester is incomplete, but definitely solid enough for use now: https://github.com/mailrank/http-load-tester

It uses the criterion analysis engine to give solid information about its measurements.