worker_process & blockend IO

Igor Sysoev is at rambler-co.ru
Thu Jul 23 12:04:21 MSD 2009


On Thu, Jul 23, 2009 at 09:58:43AM +0200, Michael Baudino wrote:

> Igor Sysoev wrote:
> > On Wed, Jul 22, 2009 at 07:38:16PM +0200, Michael Baudino wrote:
> > 
> >> Hello,
> >>
> >> I'm using nginx 0.7.59 on a Debian unstable machine to serve huge files
> >> (300+ MB) from 2 different filesystems : one  is local, the other is
> >> nfs-mounted over an ADSL link.
> >>
> >> The nfs filesystem is sooooo slow !
> >> To reduce IO latency, I'm using worker_process 16 (single CPU, though).
> >>
> >> How does nginx handles workers ?
> >> Does it choose a worker randomly for each connection ?
> >> Or does it connect to the same worker until it has reached its
> >> worker_connections limit then connect to the next worker ?
> >> In that case, should I set a very low worker_connection to force it to
> >> change worker often ? (I tried it but I got a lot of "worker_connections
> >> are not enough while connecting to upstream")
> > 
> > workers get connection randomly.
> > NFS I/O is blocking and it's better to set up second nginx on remote host
> > and to use proxy:
> > 
> >    client > nginx/local fs
> >                  /proxy    > ADSL > nginx/local fs
> > 
> 
> 
> Hi Igor,
> 
> Actually I though that proxying to the remote host would be blocking too...

No, that proxying allows to handle single worker thousands connections.
They may be slow, but they will run simultaneously, while using NFS worker
will blocking on single I/O.

> I will try this solution and let you know asap.


-- 
Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list