Going through nginx/Windows usage
I see that there are some important limitations:
- Although several workers can be run, only one of them actually does
- A worker can handle no more than 1024 simultaneous connections.
- The cache and other modules which require shared memory support do
work in Windows Vista and later due to address space layout
being enabled in these Windows versions.
What are the reasons behind these limitations? Is it that this version
nginx should not be used if performance/scalability are required? Are
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.
Posted at Nginx Forum:
I tested the Cywin version along with the following additional
The exact effect of the above settings on the functioning of nginx is
well understood. But with this configuration I find that multiple
do the work and this improves scalability. One problem that I discovered
was that sometimes a connection is not accepted and the following error
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.
the client shuts down after waiting, the server sockets go into
state. They seem to remain that way forever.
Is anyone aware of a way to overcome this problem?