Although several workers can be run, only one of them actually does
any work.
A worker can handle no more than 1024 simultaneous connections.
The cache and other modules which require shared memory support do
not
work in Windows Vista and later due to address space layout
randomization
being enabled in these Windows versions.
What are the reasons behind these limitations? Is it that this version
of
nginx should not be used if performance/scalability are required? Are
the
same limitations present in the Cygwin version of nginx?
Additionally the Windows version of the event polling which enables high
performance on unix is called IOCP and is not supported last I checked.
So you would basically be using select().
Windows support is very preliminary and while I can’t speak for the
development team, I don’t think it’s supposed to be used for anything
other than development or testing.
The exact effect of the above settings on the functioning of nginx is
not
well understood. But with this configuration I find that multiple
workers
do the work and this improves scalability. One problem that I discovered
was that sometimes a connection is not accepted and the following error
is
emitted:
2012/01/24 11:45:16 [alert] 15964#0: accept() failed (14: Bad address)
For eg with 2000 concurrent connections about 15 fail to be accepted.
When
the client shuts down after waiting, the server sockets go into
CLOSE_WAIT
state. They seem to remain that way forever.
Is anyone aware of a way to overcome this problem?
Thanks
Kurien
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.