High performance asynchronous Python WSGI Web Server
Project description
What’s this
this is a python wsgi web server.
Thus this is yet an another asynchronous web server like fapws3, tornado.
And meinheld is a WSGI compliant web server.
Require
meinheld requires Python 2.x >= 2.5.
sorry meinheld supported linux only.
Installation
Install from pypi:
$ easy_install -ZU meinheld
Install from source:
$ python setup.py install
meinheld support gunicorn .
To install gunicorn:
$ easy_install -ZU gunicorn
Basic Usage
simple wsgi app:
from meinheld import server def hello_world(environ, start_response): status = '200 OK' res = "Hello world!" response_headers = [('Content-type','text/plain'),('Content-Length',str(len(res)))] start_response(status, response_headers) return [res] server.listen(("0.0.0.0", 8000)) server.run(hello_world)
with gunicorn. user worker class “meinheld.gmeinheld.MeinheldWorker”:
$ gunicorn --workers=2 --worker-class="meinheld.gmeinheld.MeinheldWorker" gunicorn_test:app
Performance
meinheld is used high performance http_parser.
(see http://github.com/ry/http-parser)
and useing high performance event library picoev.
(see http://developer.cybozu.co.jp/kazuho/2009/08/picoev-a-tiny-e.html)
simple benchmark
simple hello_world bench:
def hello_world(environ, start_response): status = '200 OK' res = "Hello world!" response_headers = [('Content-type','text/plain'),('Content-Length',str(len(res)))] start_response(status, response_headers) return [res]
use apach bench:
$ ab -c 100 -n 10000 http://127.0.0.1:8000/
spec
CPU : Intel(R) Atom(TM) CPU N270 @ 1.60GHz
Memoy : 1G
OS: Ubuntu 10.04
server |
Requests per second |
---|---|
meinheld 0.1 |
2927.62 [#/sec] |
fapws3 0.6 |
1293.53 [#/sec] |
sendfile
meinheld use sendfile(2), over wgsi.file_wrapper.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.