There is a great project called Team Dashboards by Frederik Dietz ,and i’ve been experimenting with it a little. Team Dashboards uses Thin as its webserver of choice, but thin with one worker is way too slow for my taste for this project.

I wanted to test how Unicorn performs with one single worker . Just a little tinkering with the Gemfile thanks to the unicorn-rails gem and i was ready to go.

Performance test have been run on my MBP .

Performance with Thin, one worker process:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
deathowl:~/ (master✗) $ ab -n 100 -c 10 -r [http://127.0.0.1:3000/](http://127.0.0.1:3000/) [20:57:12]
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, [http://www.zeustech.net/](http://www.zeustech.net/)
Licensed to The Apache Software Foundation, [http://www.apache.org/](http://www.apache.org/)

Benchmarking 127.0.0.1 (be patient)...Send request failed!
Send request failed!
..done

Server Software: thin
Server Hostname: 127.0.0.1
Server Port: 3000

Document Path: /
Document Length: 31424 bytes

Concurrency Level: 10
Time taken for tests: 131.099 seconds
Complete requests: 100
Failed requests: 3
(Connect: 0, Receive: 1, Length: 2, Exceptions: 0)
Write errors: 2
Total transferred: 3176786 bytes
HTML transferred: 3118586 bytes
Requests per second: 0.76 [#/sec](https://github.com/fdietz/team_dashboard/pull/mean)
Time per request: 13109.925 [ms](https://github.com/fdietz/team_dashboard/pull/mean)
Time per request: 1310.993 [ms](https://github.com/fdietz/team_dashboard/pull/mean,%20across%20all%20concurrent%20requests)
Transfer rate: 23.66 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 10123 4009.8 11487 19334
Processing: 0 2586 1574.8 2583 5405
Waiting: 0 351 1171.7 0 4302
Total: 1439 12709 3625.7 13546 19334

Percentage of the requests served within a certain time (ms)
50% 13546
66% 14208
75% 15166
80% 15306
90% 16129
95% 17240
98% 17916
99% 19334
100% 19334 (longest request)

Performance results with Unicorn ( one worker process)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
deathowl:~/ (master✗) $ ab -n 100 -c 10 -r http://127.0.0.1:3000/ [20:56:50]
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)...Send request failed!
Send request failed!
Send request failed!
Send request failed!
Send request failed!
Send request failed!
..done
Server Software:
Server Hostname: 127.0.0.1
Server Port: 3000

Document Path: /
Document Length: 31424 bytes

Concurrency Level: 10
Time taken for tests: 10.020 seconds
Complete requests: 100
Failed requests: 5
(Connect: 0, Receive: 1, Length: 4, Exceptions: 0)
Write errors: 6
Total transferred: 3051028 bytes
HTML transferred: 2992424 bytes
Requests per second: 9.98 [#/sec] (mean)
Time per request: 1002.014 [ms] (mean)
Time per request: 100.201 [ms] (mean, across all concurrent requests)
Transfer rate: 297.35 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 854 272.7 887 2116
Processing: 0 114 469.4 0 2116
Waiting: 0 116 469.1 0 2115
Total: 466 968 313.7 890 2116

Percentage of the requests served within a certain time (ms)
50% 890
66% 910
75% 917
80% 933
90% 1110
95% 2116
98% 2116
99% 2116
100% 2116 (longest request)

As you can see Unicorn performed in this case a lot better than Thin.

OpenSo(u)rcery

Long time, no see. Don't worry, I'm not dead, not even remotely dead. I'm just pretty busy. I'm actually working on great stuff at work and …… Continue reading

Openduty @ Cloud Budapest

Published on April 12, 2015

Leaving Ustream

Published on February 07, 2015