nginx优化CPU配置worker_cpu_affinity

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx优化CPU配置worker_cpu_affinity相关的知识,希望对你有一定的参考价值。

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内核的负载都同时降低

以上是关于nginx优化CPU配置worker_cpu_affinity的主要内容,如果未能解决你的问题,请参考以下文章

后端的优化

nginx优化CPU配置worker_cpu_affinity

优化绑定Nginx进程到不同的CPU上

Nginx配置文件参数优化和内核参数优化

Nginx配置文件的优化

nginx配置 之 性能优化