nginx git repository
Manlio Perillo
manlio_perillo at libero.it
Sun Oct 14 18:07:41 MSD 2007
Manlio Perillo ha scritto:
> Adrian Perez ha scritto:
>> Hello,
>>
>> First of all, sorry for the late reply, I have been quite busy lately.
>>
>
> No problem.
> I have just released the new version of mod_wsgi, and it took me a lot
> of time!
>
> Now it should be easy to add support for WSGI 1.0, I hope to release the
> next version on the next weekend.
>
> > [...]
>>> Can you send me the logs?
>>> The log level should be "info";
>>
>> I will re-run the tests with log level set to "info", but I will first
>> update to the latest revision of the mod_wsgi module.
>
> Ok, thanks.
>
>> I am using the
>> following Python snippet to adapt WSGI 1.0 apps to 2.0, they are a set
>> of decorators for WSGI applications, I hope they are ok although I have
>> not read the WSGI standard in depth:
>>
Here is the version of wsgi1to2 that I have used:
class Context(object):
def __init__(self):
self.response = None
self.headers = ()
self.buf = []
def __call__(self, response, headers):
self.response = response
self.headers = headers
return self.write
def write(self, buf):
from warnings import warn
warn('write callable is deprecated', DeprecationWarning)
self.buf.append(buf)
def wsgi1to2(application):
"""Converts a 1.0 app into a 2.0 app
"""
import sys
# Some applications require argv
sys.argv = ['wsgi application']
def wrapper(environ):
context = Context()
results = application(environ, context)
if context.buf:
buf = context.buf + list(results)
return context.response, context.headers, ''.join(buf)
return context.response, context.headers, results
return wrapper
I have managed to run the Mercurial web application.
It is very slow on mod_wsgi, since it uses the write callable and is CPU
bound.
With Apache Bench (n = 1000, c = 50), I get:
- 27 requests per seconds with the builtin server
- 20 requests per seconds with mod_wsgi (and 2 worker processes)
However with mod_wsgi my system load is above 2, with the builtin server
it is over 6.
Regards Manlio Perillo
More information about the nginx
mailing list