optimizing worker processes usage
Manlio Perillo
manlio_perillo at libero.it
Tue Oct 2 01:31:37 MSD 2007
Igor Sysoev ha scritto:
> On Mon, Sep 24, 2007 at 01:45:54PM +0200, Manlio Perillo wrote:
>
>> Doing some tests with mod_wsgi, I have found some "problems" with worker
>> processes usage.
>>
>> I have worker_processes set to 2 (and I have a Dual Core CUP).
>>
>> When a WSGI app "quickly" return a chunk of data (and write it at once),
>> nginx seems to use only one process, serializing all the requestes.
>>
>> How can I optimize the code so that nginx can use all the worker processes?
>>
>> I have found that if the WSGI app calls, as an example, sleep(0.01),
>> then nginx will use all of its worker processes (but this slow down the
>> response time: 159.52 req/sec vs 2848.19 req/sec)
>
> It's up to OS.
>
> nginx uses accept_mutex to receive new connection notifications
> form kqueue/epoll/etc in only one worker. It seems that your load
> is not enough to utilize two CPUs.
>
Ok, thanks.
I have written a Python application that compute the MD5 hash of a file
(~3MB) and now nginx fully uses my two CPU.
Regards Manlio Perillo
More information about the nginx
mailing list