Interesting, i would like to see how tornado stacks up to Lighttpd?

Regards,
Ismail

On Mon, Sep 14, 2009 at 7:29 PM, Antoni Aloy <antoni.a...@gmail.com> wrote:
>
> 2009/9/13 Antoni Aloy <antoni.a...@gmail.com>:
>> 2009/9/13 Bret Taylor <btay...@gmail.com>:
>>>
>>> I am one of the authors of Tornado (http://www.tornadoweb.org/), the
>>> web server/framework we built at FriendFeed that we open sourced last
>>> week (see http://bret.appspot.com/entry/tornado-web-server).
>>>
>>> The underlying non-blocking HTTP server is fairly high performance, so
>>> I have been working this weekend to get other frameworks like Django
>>> and web.py working on Tornado's server so existing projects could
>>> potentially benefit from the performance. To that end, I just checked
>>> in change to Tornado that enables you to run any WSGI-compatible
>>> framework on Tornado's HTTP server. You can find it in a class called
>>> WSGIContainer in our wsgi.py:
>>>
>>> http://github.com/facebook/tornado/blob/master/tornado/wsgi.py#L188
>>>
>>> You will have to check out Tornado from github to get the change; it
>>> is not yet included in the tarball distribution.
>>>
>>> Here is a template for running a Django app on Tornado's server using
>>> the module:
>>>
>>>    import django.core.handlers.wsgi
>>>    import os
>>>    import tornado.httpserver
>>>    import tornado.ioloop
>>>    import tornado.wsgi
>>>
>>>    def main():
>>>        os.environ["DJANGO_SETTINGS_MODULE"] = 'myapp.settings'
>>>        application = django.core.handlers.wsgi.WSGIHandler()
>>>        container = tornado.wsgi.WSGIContainer(application)
>>>        http_server = tornado.httpserver.HTTPServer(container)
>>>        http_server.listen(8888)
>>>        tornado.ioloop.IOLoop.instance().start()
>>>
>>>    if __name__ == "__main__":
>>>        main()
>>>
>>>
>>> I have only done very basic tests using the new module, so if any of
>>> you are interested and start using Tornado with your Django projects,
>>> please let us know what bugs you find so we can fix them. Any and all
>>> feedback is appreciated.
>>>
>>
>> We're acually using Cherrypy, so it would be quite easy to test and
>> check the performance. We'll post any issues we found.
>>
>>
> Just few numbers:
>
> ab -c 10 -t 60 http://localhost:8088/
> Executing Django with Cherrypy with 3 threads on a PPC Computer 2 CPU 2 GHz
>
> With Tornado WSGI:
> ab -c 10 -t 60 http://localhost:8888/
> 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 localhost (be patient)
> Completed 5000 requests
> Completed 10000 requests
> Completed 15000 requests
> Completed 20000 requests
> Completed 25000 requests
> Finished 25022 requests
>
>
> Server Software:        TornadoServer/0.1
> Server Hostname:        localhost
> Server Port:            8888
>
> Document Path:          /
> Document Length:        266 bytes
>
> Concurrency Level:      10
> Time taken for tests:   60.019 seconds
> Complete requests:      25022
> Failed requests:        0
> Write errors:           0
> Total transferred:      9333206 bytes
> HTML transferred:       6655852 bytes
> Requests per second:    416.90 [#/sec] (mean)
> Time per request:       23.987 [ms] (mean)
> Time per request:       2.399 [ms] (mean, across all concurrent requests)
> Transfer rate:          151.86 [Kbytes/sec] received
>
> Connection Times (ms)
>              min  mean[+/-sd] median   max
> Connect:        0    0   0.1      0       6
> Processing:     3   24   1.9     24      68
> Waiting:        0   24   1.9     23      68
> Total:          7   24   1.9     24      68
>
> Percentage of the requests served within a certain time (ms)
>  50%     24
>  66%     24
>  75%     24
>  80%     24
>  90%     25
>  95%     26
>  98%     27
>  99%     28
>  100%     68 (longest request)
>
>
> Using CherryPy with 3 threads (the best configuration for my computer
> in my tests)
>
>
> ab -c 10 -t 60 http://localhost:8088/
> 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 localhost (be patient)
> Completed 5000 requests
> Completed 10000 requests
> Completed 15000 requests
> Completed 20000 requests
> Finished 21500 requests
>
>
> Server Software:        CherryPy/3.0.3
> Server Hostname:        localhost
> Server Port:            8088
>
> Document Path:          /
> Document Length:        266 bytes
>
> Concurrency Level:      10
> Time taken for tests:   60.001 seconds
> Complete requests:      21500
> Failed requests:        0
> Write errors:           0
> Total transferred:      8299000 bytes
> HTML transferred:       5719000 bytes
> Requests per second:    358.33 [#/sec] (mean)
> Time per request:       27.907 [ms] (mean)
> Time per request:       2.791 [ms] (mean, across all concurrent requests)
> Transfer rate:          135.07 [Kbytes/sec] received
>
> Connection Times (ms)
>              min  mean[+/-sd] median   max
> Connect:        0    0  20.5      0    2999
> Processing:     3   28  10.7     26     413
> Waiting:        3   26  10.3     24     412
> Total:          3   28  23.1     26    3031
>
> Percentage of the requests served within a certain time (ms)
>  50%     26
>  66%     28
>  75%     30
>  80%     31
>  90%     34
>  95%     38
>  98%     43
>  99%     48
>  100%   3031 (longest request)
>
>
> To sumarize:
>
> 416.90 req/s for Tornado WSGI
> 358.33 req/s for CherryPy
>
> Tornado makes one CPU up to 100% nearly at the same time of the ab
> execution, Cherrypy takes longer. Perhaps some CherryPy guru could
> configure it better.
>
> The code is at
>
> http://appfusedjango.googlecode.com/svn/trunk/hello_world   for the
> CherryPy (django-cerise) version
> http://appfusedjango.googlecode.com/svn/trunk/hello_tornado for the
> tornado version (includes tornado wsgi)
>
> This is a sample helloword project with just the essential to run.
> It's the same code I used to compare with PHP frameworks
>
> http://trespams.com/2009/05/10/django-vs-php-framewors/
>
> --
> Antoni Aloy López
> Blog: http://trespams.com
> Site: http://apsl.net
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to