开发者社区> 问答> 正文

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

"

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属性。
"

展开
收起
montos 2020-06-03 21:54:54 1029 0
1 条回答
写回答
取消 提交回答
  • "

    <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的命中率,从而减少内存访问损耗,提高程序的速度
    "
    2020-06-03 22:29:10
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
RDS SQL Server CPU高使用率性能优化 立即下载
CentOS Nginx PHP JAVA 多语言镜像使用手 立即下载
CentOS Nginx PHP JAVA多语言镜像使用手册 立即下载