解读:nginx的一个神秘配置worker_cpu_affinity

insus 阅读:138 2022-08-20 17:01:00 评论:0

今天在查看nginx的相关知识的时候发现了一个nginx之前不认识的配置:worker_cpu_affinity。

nginx默认是没有开启利用多核cpu的配置的。需要通过增加worker_cpu_affinity配置参数来充分利用多核cpu,cpu是任务处理,当计算最费时的资源的时候,cpu核使用上的越多,性能就越好。

查了下,配置nginx多核cpu,worker_cpu_affinity使用方法和范例

2核cpu,开启2个进程

worker_processes     2; 
worker_cpu_affinity 01 10; 

解释:01表示启用第一个CPU内核,10表示启用第二个CPU内核
worker_cpu_affinity 01 10;表示开启两个进程,第一个进程对应着第一个CPU内核,第二个进程对应着第二个CPU内核。

2核cpu,开启4个进程

worker_processes     4; 
worker_cpu_affinity 01 10 01 10; 

解释:开启了四个进程,它们分别对应着开启2个CPU内核

4个cpu,开启4个进程

worker_processes     4; 
worker_cpu_affinity 0001 0010 0100 1000; 

解释:0001表示启用第一个CPU内核,0010表示启用第二个CPU内核,依此类推

4核cpu,开启2个进程

worker_processes     2; 
worker_cpu_affinity 0101 1010; 

解释:0101表示开启第一个和第三个内核,1010表示开启第二个和第四个内核;2个进程对应着四个内核;worker_cpu_affinity配置是写在/etc/nginx/nginx.conf里面的;2核是 01,四核是0001,8核是00000001,有多少个核,就有几位数,1表示该内核开启,0表示该内核关闭。

8核cpu,开启8个进程

worker_processes     8; 
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000; 

解释:0001表示启用第一个CPU内核,0010表示启用第二个CPU内核,依此类推;worker_processes最多开启8个,8个以上性能提升不会再提升了,而且稳定性变得更低,所以8个进程够用了。


配置完之后可以重启nginx,用ab工具或者wrk工具,可以进行性能测试,在服务器上执行top,然后按1,就可以看到cpu工作情况,如果多个cpu内核的利用率差不多,就证明nginx已经成功利用了多核cpu,测试结束后,cpu内核的负载都同时降低。


本文参考链接:https://unclewang.blog.csdn.net/article/details/111192326
标签:nginx
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号