wsgi server performance

  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
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
nginx + 2 * CherryPy, 10 threads each
piranha 25338 16.9 1.0 109784 21768 pts/5 Sl+ 13:19 0:15 python ./manage.py runcpserver port=8080
piranha 25349 18.8 1.0 110760 22692 pts/3 Sl+ 13:19 0:15 python ./manage.py runcpserver port=8081
piranha@gtv ~>ab -c 50 -n 500 http://byteflow:90/blog/
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/
Benchmarking byteflow (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Finished 500 requests
Server Software: nginx/0.5.35
Server Hostname: byteflow
Server Port: 90
Document Path: /blog/
Document Length: 25063 bytes
Concurrency Level: 50
Time taken for tests: 19.23148 seconds
Complete requests: 500
Failed requests: 0
Write errors: 0
Total transferred: 12688000 bytes
HTML transferred: 12531500 bytes
Requests per second: 26.28 [#/sec] (mean)
Time per request: 1902.315 [ms] (mean)
Time per request: 38.046 [ms] (mean, across all concurrent requests)
Transfer rate: 651.31 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 6 23.4 0 91
Processing: 599 1831 628.6 1855 5385
Waiting: 599 1830 629.1 1855 5384
Total: 604 1838 639.0 1855 5476
Percentage of the requests served within a certain time (ms)
50% 1855
66% 1926
75% 1963
80% 1991
90% 2059
95% 2150
98% 4701
99% 4832
100% 5476 (longest request)
nginx + 2 * twisted
piranha 26012 32.8 1.3 115180 27784 pts/3 Sl+ 13:24 0:16 /usr/bin/python /usr/bin/twistd -l /dev/null --pidfile=twistd1.pid -ny twrun.py
piranha 26014 40.5 1.3 116120 27488 pts/5 Sl+ 13:24 0:16 /usr/bin/python /usr/bin/twistd -l /dev/null -ny twrun.py
piranha@gtv ~>ab -c 50 -n 500 http://byteflow:90/blog/
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/
Benchmarking byteflow (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Finished 500 requests
Server Software: nginx/0.5.35
Server Hostname: byteflow
Server Port: 90
Document Path: /blog/
Document Length: 25558 bytes
Concurrency Level: 50
Time taken for tests: 20.287833 seconds
Complete requests: 500
Failed requests: 0
Write errors: 0
Total transferred: 12935500 bytes
HTML transferred: 12779000 bytes
Requests per second: 24.65 [#/sec] (mean)
Time per request: 2028.783 [ms] (mean)
Time per request: 40.576 [ms] (mean, across all concurrent requests)
Transfer rate: 622.64 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.2 0 1
Processing: 959 1964 228.9 1998 2525
Waiting: 954 1963 228.9 1996 2525
Total: 959 1964 228.8 1998 2525
Percentage of the requests served within a certain time (ms)
50% 1998
66% 2042
75% 2074
80% 2101
90% 2182
95% 2265
98% 2303
99% 2320
100% 2525 (longest request)
nginx + 2 * fapws2
piranha 26600 19.2 0.7 22556 16264 pts/5 S+ 13:26 0:14 python ./faprun.py 8080
piranha 26601 20.0 0.7 22600 16260 pts/3 S+ 13:26 0:14 python ./faprun.py 8081
piranha@gtv ~>ab -c 50 -n 500 http://byteflow:90/blog/
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/
Benchmarking byteflow (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Finished 500 requests
Server Software: nginx/0.5.35
Server Hostname: byteflow
Server Port: 90
Document Path: /blog/
Document Length: 25063 bytes
Concurrency Level: 50
Time taken for tests: 18.228540 seconds
Complete requests: 500
Failed requests: 0
Write errors: 0
Total transferred: 12688000 bytes
HTML transferred: 12531500 bytes
Requests per second: 27.43 [#/sec] (mean)
Time per request: 1822.854 [ms] (mean)
Time per request: 36.457 [ms] (mean, across all concurrent requests)
Transfer rate: 679.70 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 1
Processing: 157 1740 296.4 1811 1961
Waiting: 155 1740 296.6 1810 1961
Total: 157 1740 296.4 1811 1961
Percentage of the requests served within a certain time (ms)
50% 1811
66% 1831
75% 1849
80% 1861
90% 1901
95% 1921
98% 1938
99% 1958
100% 1961 (longest request)
nginx + 2 * cogen
piranha 27793 19.0 0.9 26120 20140 pts/5 S+ 13:29 0:14 python ./cg.py 8080
piranha 27794 20.3 1.0 27232 21264 pts/3 S+ 13:29 0:14 python ./cg.py 8081
piranha@gtv ~>ab -c 50 -n 500 http://byteflow:90/blog/
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/
Benchmarking byteflow (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Finished 500 requests
Server Software: nginx/0.5.35
Server Hostname: byteflow
Server Port: 90
Document Path: /blog/
Document Length: 25063 bytes
Concurrency Level: 50
Time taken for tests: 18.489832 seconds
Complete requests: 500
Failed requests: 0
Write errors: 0
Total transferred: 12688000 bytes
HTML transferred: 12531500 bytes
Requests per second: 27.04 [#/sec] (mean)
Time per request: 1848.983 [ms] (mean)
Time per request: 36.980 [ms] (mean, across all concurrent requests)
Transfer rate: 670.10 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 1
Processing: 78 1759 315.3 1844 1935
Waiting: 77 1759 315.5 1844 1935
Total: 79 1759 315.3 1844 1935
Percentage of the requests served within a certain time (ms)
50% 1844
66% 1854
75% 1863
80% 1874
90% 1890
95% 1898
98% 1911
99% 1926
100% 1935 (longest request)
nginx + 2 * apache mod_wsgi daemonprocesses
root 29370 0.0 0.3 16644 8020 ? Ss 14:06 0:00 /usr/sbin/apache2 -k start
www-data 29972 0.0 0.2 15772 5044 ? S 14:14 0:00 /usr/sbin/apache2 -k start
piranha 29973 12.3 1.1 81656 23272 ? Sl 14:14 0:16 /usr/sbin/apache2 -k start
piranha 29975 12.5 1.0 80692 22516 ? Sl 14:14 0:16 /usr/sbin/apache2 -k start
www-data 29977 0.0 0.4 240784 9612 ? Sl 14:14 0:00 /usr/sbin/apache2 -k start
www-data 30005 0.0 0.4 240920 9580 ? Sl 14:14 0:00 /usr/sbin/apache2 -k start
www-data 30206 0.0 0.4 239488 9060 ? Sl 14:16 0:00 /usr/sbin/apache2 -k start
piranha@gtv ~>ab -c 50 -n 500 http://gtv:90/blog/
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/
Benchmarking gtv (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Finished 500 requests
Server Software: nginx/0.5.35
Server Hostname: gtv
Server Port: 90
Document Path: /blog/
Document Length: 25063 bytes
Concurrency Level: 50
Time taken for tests: 20.741242 seconds
Complete requests: 500
Failed requests: 0
Write errors: 0
Total transferred: 12688144 bytes
HTML transferred: 12531500 bytes
Requests per second: 24.11 [#/sec] (mean)
Time per request: 2074.124 [ms] (mean)
Time per request: 41.482 [ms] (mean, across all concurrent requests)
Transfer rate: 597.36 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 2
Processing: 318 1943 541.4 1938 2910
Waiting: 317 1942 541.5 1938 2910
Total: 318 1943 541.4 1938 2910
Percentage of the requests served within a certain time (ms)
50% 1938
66% 2240
75% 2393
80% 2470
90% 2632
95% 2737
98% 2783
99% 2797
100% 2910 (longest request)
Spawning 0.7
piranha 31274 0.1 0.4 176348 9056 pts/3 Sl+ 14:21 0:00 /usr/bin/python /usr/local/bin/spawn -f spawning.django_factory.config_factory settings -p 9090 -s 2 -t 100
piranha 31295 24.5 1.7 862052 37212 pts/3 Sl+ 14:21 0:16 /usr/bin/python /usr/local/lib/python2.5/site-packages/Spawning-0.7-py2.5.egg/spawning/spawning_child.pyc 31274 3 4 spawning.django_factory.config_factory {"processpool_workers": 0, "args": ["settings"], "num_processes": 2, "watch": null, "dev": true, "host": "", "threadpool_workers": 100, "port": 9090} --reload
piranha 31296 33.6 2.1 867992 43972 pts/3 Sl+ 14:21 0:22 /usr/bin/python /usr/local/lib/python2.5/site-packages/Spawning-0.7-py2.5.egg/spawning/spawning_child.pyc 31274 3 4 spawning.django_factory.config_factory {"processpool_workers": 0, "args": ["settings"], "num_processes": 2, "watch": null, "dev": true, "host": "", "threadpool_workers": 100, "port": 9090}
piranha@gtv ~>ab -c 50 -n 500 http://gtv:9090/blog/
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/
Benchmarking gtv (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Finished 500 requests
Server Software:
Server Hostname: gtv
Server Port: 9090
Document Path: /blog/
Document Length: 25063 bytes
Concurrency Level: 50
Time taken for tests: 20.214640 seconds
Complete requests: 500
Failed requests: 0
Write errors: 0
Total transferred: 12679500 bytes
HTML transferred: 12531500 bytes
Requests per second: 24.73 [#/sec] (mean)
Time per request: 2021.464 [ms] (mean)
Time per request: 40.429 [ms] (mean, across all concurrent requests)
Transfer rate: 612.53 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 1
Processing: 333 1982 603.9 2053 3829
Waiting: 333 1976 602.4 2053 3829
Total: 333 1982 603.9 2053 3829
Percentage of the requests served within a certain time (ms)
50% 2053
66% 2283
75% 2388
80% 2450
90% 2728
95% 2943
98% 3055
99% 3258
100% 3829 (longest request)