For years, my tool for simple load tests of HTTP sites has been ApacheBench.
For years, my reference for how to visualize ApacheBench results has been Gnuplot
For years, my reference for how to use Gnuplot has been http://www.bradlanders.com/2013/04/15/apache-bench-and-gnuplot-youre-probably-doing-it-wrong/
But do you really want to be writing Gnuplot syntax? It turns out that Pandas will give you great graphs pretty much for free:
df = pd.read_table('../gaussian.tsv') # The raw data as a scatterplot df.plot(x='seconds', y='wait', kind='scatter') # The traditional Gnuplot plot df.plot(y='wait') # Histogram df.wait.hist(bins=20)
You can see the full source code at tsv_processing.ipynb
And re-recreate these yourself by checking out the parent repo: github/crccheck/abba
So now you might be thinking: How do you get a web server that outputs a normal distribution of lag? Well, I wrote one! I made a tiny Express.js server that just waits a random amount, packaged it in a Docker image, and and you can see exactly how I ran these tests by checking out my Makefile.