worker_cpu_affinity
`worker_cpu_affinity` 指令将 NGINX 的 worker 进程绑定到特定的 CPU 核心以提高性能。 — NGINX Core
worker_cpu_affinity
main
语法worker_cpu_affinity mask | cpus;
默认值none
上下文main
模块NGINX Core
参数1+
说明
`worker_cpu_affinity` 指令在 main 上下文中使用,用于指定哪些 CPU 核心可以执行 worker 进程。这样可以通过确保 worker 进程在特定核心上运行来优化性能,从而避免进程在核心之间迁移时可能发生的上下文切换和缓存未命中。该指令接受一个或多个参数来定义 CPU 核心的亲和性。它在多核系统中尤其有用,能够最大化资源利用并最小化延迟。 该指令的参数以 CPU 列表的形式提供,可以用多种形式指定,包括单核指定(例如 '0')、范围指定(例如 '0-3')或两者的组合。每个附加的值表示对应 worker 可使用的允许 CPU 核心。当定义多个 worker 时,CPU 核心可以在这些 worker 之间分配,从而进一步增强并行处理。该配置有助于在高负载场景下保持性能,并能带来更可预测的响应时间。 实现 `worker_cpu_affinity` 可能需要一些试验以根据具体的工作负载和硬件架构确定最优配置。应通过仔细观察系统性能来指导这些决策,因为核心亲和性的有效性会根据工作负载模式和可用 CPU 核心数量等因素而变化。
配置示例
worker_cpu_affinity auto; # Example with specific core assignment for 4 workers: worker_cpu_affinity 0001 0010 0100 1000;
⚠
指定过多的 CPU cores 可能因负载分配不当而导致性能下降。
⚠
请确保指定的 CPUs 数量不超过系统上可用的 logical cores。
⚠
CPU mask 格式不正确可能导致 NGINX 启动错误。