根据系统当前cup个数设置nginx的工作进程数。

来源:互联网 发布:mysql 统计重复数据 编辑:程序博客网 时间:2024/05/01 11:32

今天改了个bug。

更改配置文件nginx.conf的worker进程个数为cpu个数后,平滑重启nginx, worker进程数并没有改变。


更改文件src/core/ngx_cycle.c中的ngx_init_cycle函数:

在该函数解析完配置文件后,

直接调用

    ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module);
    ccf->worker_processes = get_nprocs();

使worker进程数等于有效的cpu个数。


当然之后,还可以把各个worker进程,绑定在指定的cpu上。

for(cpu_id=0; cpu_id<ccf->worker_processes; cpu_id ++)

{

    cpu_set_t cpu_set;

    CPU_ZERO(&cpu_set);

    CPU_SET(cpu_id, &cpu_set);

    if (sched_setaffinity(0, sizeof(cpu_set), &cpu_set) < 0)

   {

.........

   }

}


原创粉丝点击