multi_accept
multi_accept 指令允许工作进程从监听套接字同时接受多个连接。 — NGINX Core
multi_accept
events
语法multi_accept on | off;
默认值off
上下文events
模块NGINX Core
参数flag
说明
`multi_accept` 指令在 NGINX 中用于优化连接处理流程,通过允许工作进程一次接受多个新连接,而不是每次仅接受一个。当启用该指令时,工作进程可以通过减少与上下文切换相关的开销以及单个连接处理的延迟来有效提高其吞吐量。 该指令可以设置为 `on` 或 `off`。当设置为 `on` 时,它指示工作进程尽可能接受操作系统套接字层允许的所有新连接。该行为在预计会有大量并发连接的高负载场景中特别有用。另一方面,当 `multi_accept` 设置为 `off` 时,默认行为是一次只接受一个连接。这可能导致传入连接的延迟增加,因为后续连接必须等待工作进程空闲以处理它们。 需要注意的是,在所有情况下启用 `multi_accept` 并不能保证带来性能提升。其效果在很大程度上取决于底层操作系统对套接字操作的处理方式以及服务器的具体负载情况。服务器管理员应监控服务器的性能,以判断启用该指令是否能达到预期的性能效果。
配置示例
events {
multi_accept on;
worker_connections 1024;
}⚠
启用 multi_accept 可能导致 CPU 使用率和 context switching 增加,尤其是在高负载情况下。
⚠
在某些系统上,如果底层 OS 无法对增加的接入量进行最优处理,启用此功能可能不会带来性能提升。