Nginx(5)--进程概述

本文介绍了Nginx中的worker_processes配置指令,用于控制启动的worker进程数量,通常建议设置为CPU核心数。默认情况下,worker进程以nobody用户运行,可以通过'user'指令指定。示例中展示了如何设置worker_processes为'auto'以自动匹配CPU核心数。此外,还讲解了worker_cpu_affinity指令,通过绑定worker进程与CPU核心来减少性能损耗并提高缓存效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.配置指令worker_processes

  • 当启动nginx以后,使用ps命令查看nginx进程
  • 默认情况下,有至少两个nginx进程
  • 由于是源码编译,因此没有nginx用户,所以有nobody
  • ps -ef | grep nginx | grep -v grep #查看进程

在这里插入图片描述

  • useradd -u 900 nginx #新建nginx用户
  • cp nginx.conf /usr/local/nginx/conf/ #恢复nginx.conf文件
  • vim nginx.conf #编辑配置文件,添加nginx用户
  • 编辑内容如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 编译安装nginx后,默认情况下worker进程是以“nobady”用户的身份运行
  • 若要指定worker进程的用户,可以使用“user”指令
  • 比如,指定worker进程以nginx用户的身份运行
当启动nginx以后,有两个nginx进程,一个master进程,一个worker进程,这两个进程都有各自的作用
真正负责处理请求的进程就是“worker”进程
“master”进程负责管理“worker”进程,还负责读取配置文件、判断配置文件语法的工作,也叫“主进程”
“master”进程只能有一个,而“worker”进程可以有多个
“worker”进程的数量可以由管理员自己进行定义
定义“work”进程的数量的配置指令:worker_processes
  • 默认的nginx.conf配置文件中的配置:worker_processes 1;
  • 意思为:启动nginx后只有1个worker进程
  • worker_processes指令只能在main区域中使用
  • 通常情况下,worker_processes的值不会大于服务其中cpu的核心数量
  • 原因是为了尽量让每个worker进程都有一个cpu可以使用,尽量避免多个worker进程抢占同一个cpu的情况
  • 也可以将worker_processes的值设置为“auto"
  • 当worker_processes的值为auto时,nginx会自动检测当前主机的cpu核心数量,并启动对应数量的worker进程

2.示例

  • 将cpu改为4
  • 将配置文件中改为auto
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

3.配置指令worker_cpu_affinity

  • 为了避免cpu在切换进程时产生性能损耗,可以将worker进程与cpu核心进行“绑定”
  • 当worker进程与cpu核心绑定以后,worker进程可以更好的专注的时用某个cpu和欣赏的缓存
  • 从而减少因为cpu切换不同worker进程而带来的缓存失效
  • 让worker进程与某个cpu核心绑定的配置指令:worker_cpu_affinity
cpu掩码:
可以通过cpu掩码表示某个cpu核心
比如,有4个cpu核心,用4个0表示这4个核
第一个核:0001
第二个核:0010
第三个核:0100
第四个核:1000
有几个核,就用几个0表示
如果想使用某个核,就将对应位置的0改为1,位置从右边开始
如果有8个核,时用第二个核:00000010

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值