配置 nginx 绑定指定 CPU - 配置报错-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

配置 nginx 绑定指定 CPU - 配置报错

montos 2020-06-03 21:54:54 26

"

nginx提供了更精确的控制。

conf/nginx.conf中,有如下一行:

worker_processes  1;

这是用来配置nginx启动几个工作进程的,默认为1。而nginx还支持一个名为worker_cpu_affinity的配置项,也就是说,nginx可以为每个工作进程绑定CPU。我做了如下配置:

worker_processes  3;
worker_cpu_affinity 0010 0100 1000;

这里0010 0100 1000是掩码,分别代表第2、3、4颗cpu核心。

重启nginx后,3个工作进程就可以各自用各自的CPU了。

三、刨根问底

  1. 如果自己写代码,要把进程绑定到CPU,该怎么做?可以用sched_setaffinity函数。在Linux上,这会触发一次系统调用
  2. 如果父进程设置了affinity,之后其创建的子进程是否会有同样的属性?我发现子进程确实继承了父进程的affinity属性。
"
应用服务中间件 nginx
分享到
取消 提交回答
全部回答(1)
  • montos
    2020-06-03 22:29:10

    "

    <span style=""font-family: Verdana, sans-serif, 宋体; -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px;"">

    只指定
    worker_processes  3;
    不书写下面代码,会有什么结果呢?

    worker_cpu_affinity 0010 0100 1000;
    ######

    引用来自#2楼“jing31”的帖子

    只指定
    worker_processes  3;
    不书写下面代码,会有什么结果呢?

    worker_cpu_affinity 0010 0100 1000;

    那nginx随机分配cpu

    ######

    如果系统是4核,worker_processes  4;

    是不是就不用操心他自己如何分配了呢?

    ######

    引用来自“jing31”的答案

    如果系统是4核,worker_processes  4;

    是不是就不用操心他自己如何分配了呢?

    区别在于绑定后,提高了 cpu  cache的命中率,从而减少内存访问损耗,提高程序的速度
    "
    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程