Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meinheld-0.1.1.tar.gz (34.9 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page