nginx 默认是没有开启利用多核 cpu 的配置的需要通过增加 worker_cpu_affinity 配置参数来充分利用多核 cpu,cpu 是任务处理, 当计算最费时的资源的时候, cpu 核使用上的越多, 性能就越好
查了下官网, 配置 nginx 多核 cpu,worker_cpu_affinity 使用方法和范例:
句法: worker_cpu_affinity cpumask ...;
worker_cpu_affinity auto [cpumask];
默认: -
语境: main
将工作进程绑定到一组 CPU 每个 CPU 集合由允许的 CPU 的位掩码表示应该为每个工作进程定义一个单独的集合默认情况下, 工作进程不绑定到任何特定的 CPU
例如,
- worker_processes 4;
- worker_cpu_affinity 0001 0010 0100 1000;
绑定每个工作进程到一个单独的 CPU, 而
- worker_processes 2;
- worker_cpu_affinity 0101 1010;
将第一个工作进程绑定到 CPU0 / CPU2, 将第二个工作进程绑定到 CPU1 / CPU3
第二个例子适用于超线程
特殊值 auto(1.9.10) 允许将工作进程自动绑定到可用的 CPU:
- worker_processes auto;
- worker_cpu_affinity auto;
可选的掩码参数可用于限制可用于自动绑定的 CPU:
worker_cpu_affinity auto 01010101;
该指令仅在 FreeBSD 和 Linux 上可用
配置完之后可以重启 nginx, 用 ab 工具或者 wrk 工具, 可以进行性能测试, 在服务器上执行 top, 然后按 1, 就可以看到 cpu 工作情况, 如果多个 cpu 内核的利用率差不多, 就证明 nginx 已经成功利用了多核 cpu, 测试结束后, cpu 内核的负载都同时降低
来源: http://www.bubuko.com/infodetail-2495276.html