开发者社区> 问答> 正文

配置 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属性。

展开
收起
kun坤 2020-06-02 15:03:47 670 0
1 条回答
写回答
取消 提交回答
  • 只指定
    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-02 15:03:53
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

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