一、accept_mutex
Syntax: accept_mutex on | off;
Default: accept_mutex off;
Context: events
如果accept_mutex启用,则工作进程将依次接受新的连接
。否则,将通知所有工作进程
有关新连接的信息,如果新连接的数量很少
,则某些工作进程可能会浪费系统资源。
可以让多个work进行轮流地、序列化的与客户端建立TCP连接
在1.11.3版之前,默认值为on
二、 multi_accept
Syntax: multi_accept on | off;
Default: multi_accept off;
Context: events
如果multi_accept被禁用
,则辅助进程将一次接受一个新连接
。否则,辅助进程将一次接受所有新连接。
如果使用kqueue
连接处理方法,该指令将被忽略,因为该指令报告等待接受的新连接数。
三、use
Syntax: use method;
Default: —
Context: events
指定要使用的 连接处理 method。通常不需要显式地指定它,因为默认情况下nginx将使用最有效的方法。
本次实验使用到的配置:
events {
use epoll; #事件驱动模型。经测试epoll性能最优
accept_mutex on; #惊群现象,多个睡眠的进程被同时叫醒,但只有一个进程能获取到连接,这样会影响系统性能。防止惊群现象发生。
multi_accept on; #设置允许同时接受多个网络连接,开启可以同时接受多个,即默认为一个工作进程只能一次接受一个新的网络连接。
worker_connections 65535; #工作进程可以打开的最大同时连接数
}