语 法: accept_mutex_delay time;
默认值: accept_mutex_delay 500ms;
上下文: events
如果启用了 accept_mutex,则指定在另一个工作进程当前正在接受新连接的情况下,工作进程将尝试重新开始接受新连接的最长时间。
accept_mutex 表示是否打开 accept 锁,accept_mutex 是 nginx 的负载均衡锁,当某一个 worker 进程建立的连接数达到 worker_connections 配置的最大连接数的 7/8 时,会大大减小该 worker 进程试图建立新 tcp 连接的机会。
accept 锁默认是打开的。如果关闭它,那么建立 tcp 连接的耗时会更短,但是 worker 进程之间的负载会非常不平衡。
accept_mutex_delay 表示 accept 锁后到真正建立链接之间的延迟时间,默认为500ms,在使用 accept 锁后,同一时间只有一个 worker 进程能够取得 accept 锁。这个 accept 锁不是阻塞锁,如果取不到会立即返回,如果只有一个 worker 进程试图取锁而没有取到,他至少要等待 accept_mutex_delay 定义的时间才能再次取锁。