Load testing results

It’s been 2 years since we haven’t published results of various load test so here it is. Tests were conducted on a machine with 4CPU and 8GB of RAM.

Static Files

~/$ ab -k -c 500 -n 100000 http://127.0.0.1:8334/login
...

Concurrency Level: 500
Time taken for tests: 5.449 seconds
Complete requests: 100000
Failed requests: 26
(Connect: 0, Receive: 0, Length: 26, Exceptions: 0)
Non-2xx responses: 26
Keep-Alive requests: 26
Total transferred: 1013758486 bytes
HTML transferred: 935156796 bytes
Requests per second: 18353.51 [#/sec] (mean)
Time per request: 27.243 [ms] (mean)
Time per request: 0.054 [ms] (mean, across all concurrent requests)
Transfer rate: 181699.45 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 9 1.6 9 15
Processing: 4 18 2.6 18 37
Waiting: 0 9 2.5 8 26
Total: 11 27 2.3 27 48

Percentage of the requests served within a certain time (ms)
50% 27
66% 28
75% 28
80% 29
90% 30
95% 31
98% 33
99% 35
100% 48 (longest request)
~/$ ab -k -c 2100 -n 500000 http://127.0.0.1:8334/login
...
Requests per second: 18381.27 [#/sec] (mean)
Time per request: 114.247 [ms] (mean)
Time per request: 0.054 [ms] (mean, across all concurrent requests)
Transfer rate: 181978.32 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 39 5.5 39 65
Processing: 20 75 9.7 74 161
Waiting: 0 36 9.3 34 119
Total: 47 114 8.7 112 198

Percentage of the requests served within a certain time (ms)
50% 112
66% 118
75% 120
80% 122
90% 125
95% 128
98% 132
99% 136
100% 198 (longest request)

API Call

~/$ ab -H "X-Requested-With: XmlHttpRequest" -H "Cookie: auth=XXXXX==" -k -c 100 -n 100000 http://127.0.0.1:8334/api/files/ls?path=%2F
Concurrency Level: 100
Time taken for tests: 9.807 seconds
Complete requests: 400000
Failed requests: 0
Keep-Alive requests: 400000
Total transferred: 225209417 bytes
HTML transferred: 129200000 bytes
Requests per second: 40788.21 [#/sec] (mean)
Time per request: 2.452 [ms] (mean)
Time per request: 0.025 [ms] (mean, across all concurrent requests)
Transfer rate: 22426.49 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 2
Processing: 0 2 4.0 1 77
Waiting: 0 2 4.0 1 77
Total: 0 2 4.0 1 77

Percentage of the requests served within a certain time (ms)
50% 1
66% 2
75% 3
80% 3
90% 7
95% 11
98% 16
99% 19
100% 77 (longest request)
~/$ ab -H "X-Requested-With: XmlHttpRequest" -H "Cookie: auth=XXXXX==" -k -c 1000 -n 100000 http://127.0.0.1:8334/api/files/ls?path=%2F
Concurrency Level: 1000
Time taken for tests: 10.345 seconds
Complete requests: 400000
Failed requests: 0
Keep-Alive requests: 400000
Total transferred: 225211096 bytes
HTML transferred: 129200000 bytes
Requests per second: 38665.12 [#/sec] (mean)
Time per request: 25.863 [ms] (mean)
Time per request: 0.026 [ms] (mean, across all concurrent requests)
Transfer rate: 21259.31 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.9 0 22
Processing: 0 26 55.9 3 672
Waiting: 0 26 55.9 3 672
Total: 0 26 55.9 3 672

Percentage of the requests served within a certain time (ms)
50% 3
66% 8
75% 13
80% 17
90% 113
95% 165
98% 205
99% 241
100% 672 (longest request)

In the first test, we’re using the blackhole plugin which is in memory so as to give baseline of the overhead coming from Filestash itself. In this run we’re using sftp through openssh-server:

~/$ ab -H "X-Requested-With: XmlHttpRequest" -H "Cookie: auth=XXXXX==" -k -c 100 -n 50000 http://127.0.0.1:8334/api/files/ls?path=%2F
Concurrency Level: 100
Time taken for tests: 13.340 seconds
Complete requests: 50000
Failed requests: 0
Keep-Alive requests: 0
Total transferred: 273100146 bytes
HTML transferred: 263350000 bytes
Requests per second: 3748.18 [#/sec] (mean)
Time per request: 26.680 [ms] (mean)
Time per request: 0.267 [ms] (mean, across all concurrent requests)
Transfer rate: 19992.76 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 2
Processing: 4 27 1.5 27 41
Waiting: 2 26 1.4 26 41
Total: 4 27 1.5 27 41

Percentage of the requests served within a certain time (ms)
50% 27
66% 27
75% 27
80% 27
90% 28
95% 29
98% 30
99% 32
100% 41 (longest request)
~/$ ab -H "X-Requested-With: XmlHttpRequest" -H "Cookie: auth=XXXXX==" -k -c 1000 -n 50000 http://127.0.0.1:8334/api/files/ls?path=%2F
Concurrency Level: 1000
Time taken for tests: 13.594 seconds

Complete requests: 50000
Failed requests: 0
Keep-Alive requests: 0
Total transferred: 273100000 bytes
HTML transferred: 263350000 bytes
Requests per second: 3678.09 [#/sec] (mean)
Time per request: 271.880 [ms] (mean)
Time per request: 0.272 [ms] (mean, across all concurrent requests)
Transfer rate: 19618.87 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 3.2 0 23
Processing: 87 267 14.3 266 325
Waiting: 87 266 14.0 265 319
Total: 87 268 15.4 266 348

Percentage of the requests served within a certain time (ms)
50% 266
66% 269
75% 271
80% 273
90% 280
95% 294
98% 304
99% 311
100% 348 (longest request)