nginx supports a variety of connection processing methods.
The availability of a particular method depends on the platform used.
On platforms that support several methods nginx will normally
select the most efficient method automatically.
However, if needed, a connection processing method can be selected
explicitly with the
use directive.
The following connection processing methods are supported:
-
select — standard method.
The supporting module is built automatically on platforms that lack
more efficient methods.
The --with-select_module and
--without-select_module configuration parameters
can be used to forcibly enable or disable the build of this module.
-
poll — standard method.
The supporting module is built automatically on platforms that lack
more efficient methods.
The --with-poll_module and
--without-poll_module configuration parameters
can be used to forcibly enable or disable the build of this module.
-
kqueue — efficient method used on
FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0, and Mac OS X.
-
epoll — efficient method used on
Linux 2.6+.
Some older distributions like SuSE 8.2 provide patches
that add epoll support to 2.4 kernels.
-
rtsig — real time signals, efficient method
used on Linux 2.2.19+.
By default,
the system-wide event queue is limited by 1024 signals.
On loaded servers it may become necessary to increase this limit
by changing the /proc/sys/kernel/rtsig-max kernel parameter.
However, in Linux 2.6.6-mm2 this parameter is gone, and each process
now has its own event queue.
The size of each queue is limited by RLIMIT_SIGPENDING
and can be changed with
worker_rlimit_sigpending.
On queue overflow, nginx discards the queue and falls back to
poll connection processing method until
the situation gets back to normal.
-
/dev/poll — efficient method used on
Solaris 7 11/99+, HP/UX 11.22+ (eventport), IRIX 6.5.15+,
and Tru64 UNIX 5.1A+.
-
eventport — event ports, efficient method
used on Solaris 10.
|