I’ve tried benching SimplePlug on my MBP. I built an OTP release and ran the 3min test. Here’s what I got:
Running 3m test @ http://localhost:4000/
2 threads and 40 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 27.05ms 72.63ms 804.03ms 88.79%
Req/Sec 25.74k 8.24k 35.75k 86.90%
Latency Distribution
50% 705.00us
75% 1.09ms
90% 121.27ms
99% 312.24ms
8003062 requests in 3.00m, 1.41GB read
Requests/sec: 44441.19
Transfer/sec: 8.02MB
The latency leaves a lot to be desired, but the throughput is nice. I’ve also seen varying results on repeatable runs. For example, this one had better (but still not good) latency, but a lower throughput:
Running 3m test @ http://localhost:4000/
2 threads and 40 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 10.71ms 44.46ms 558.37ms 94.47%
Req/Sec 27.17k 6.56k 49.11k 90.48%
Latency Distribution
50% 644.00us
75% 0.90ms
90% 1.44ms
99% 242.17ms
7420593 requests in 3.00m, 1.31GB read
Socket errors: connect 0, read 1, write 0, timeout 0
Requests/sec: 41206.18
Transfer/sec: 7.43MB
For some shorter tests, I was able to get more stellar results:
Running 30s test @ http://localhost:4000/
2 threads and 40 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 1.52ms 8.52ms 169.09ms 98.74%
Req/Sec 28.17k 3.94k 33.88k 81.51%
Latency Distribution
50% 651.00us
75% 0.87ms
90% 1.18ms
99% 17.46ms
1638500 requests in 30.04s, 295.63MB read
Requests/sec: 54550.41
Transfer/sec: 9.84MB
I didn’t investigate this deeper. One possible reason is that this is my devbox, and there’s a bunch of stuff running on the system. It probably didn’t help that the load test was running on the same box as well. Also, since it’s OS X, I couldn’t play with +sbt flags which might make a difference.
Given the numbers I get locally on a devbox where a lot of other apps are running in the background, I’m fairly confident that better results can be observed on the dedicated server.


















