Let's Talk About Webservers

Quick test with siege, accessing Stroudco shop page:

2 repeats, 2 concurrent users:

Transactions:                  48 hits
Availability:              100.00 %
Elapsed time:               10.80 secs
Data transferred:            9.02 MB
Response time:                0.42 secs
Transaction rate:            4.44 trans/sec
Throughput:                0.84 MB/sec
Concurrency:                1.85
Successful transactions:          48
Failed transactions:               0
Longest transaction:            2.66
Shortest transaction:            0.09

2 repeats, 10 concurrent users:

Transactions:                 240 hits
Availability:              100.00 %
Elapsed time:               26.58 secs
Data transferred:           45.11 MB
Response time:                0.92 secs
Transaction rate:            9.03 trans/sec
Throughput:                1.70 MB/sec
Concurrency:                8.34
Successful transactions:         240
Failed transactions:               0
Longest transaction:           10.04
Shortest transaction:            0.09

10 repeats, 10 concurrent users:

Transactions:                1200 hits
Availability:              100.00 %
Elapsed time:              123.83 secs
Data transferred:          225.56 MB
Response time:                0.98 secs
Transaction rate:            9.69 trans/sec
Throughput:                1.82 MB/sec
Concurrency:                9.48
Successful transactions:        1200
Failed transactions:               0
Longest transaction:            8.98
Shortest transaction:            0.08

For me this suggests the server can be ~7s slower when there are more concurrent users. But that’s likely to be rare.

This is just commandline download though. When rendering the page Chome shows:

So there is a big chunk of time spent rendering and loading all the product pictures!

It would be useful to try this with Puma of course.