网站首页 > 精选教程 正文
nginx的进程模型可以理解为:多进程+多路复用。
nginx的进程模型
使用linux的ps命令查看当前nginx的进程(ps -ef | grep nginx),可以看到有两个进程,分别是nginx:master和nginx:worker。
两个进程之间的关系可以用如下图来表示:
nginx这样处理的优点有:
- 当nginx启动后,产生一个master进程,当master执行一系列操作后会产生一个或多个worker进程。
- 当有请求进来时,master会向worker发信号,然后通过worker进程去处理请求,一个请求对应一个worker。
- master会监控worker的状态。当worker产生异常时,会启动一个新的woker。
- 多个worker之间是一种竞争关系。每个worker进程可以产生多路复用。
- nginx的每个进程都是独立的,相互之间是安全的。一个worker 宕机了,其它work还是继续工作,相互没有影响。
当我们将配置文件中work_processes由1改成2后,重启nginx会发现多了一个work_processes,理论上单机nginx支持的并发数为(work_processes * work_connections)。
worker_processes配置
上面已经介绍了work_processes的配置,但是这个数并不是越大越好,建议配置为1,最大也不要超过8。比你当前CPU核数小就可以了。官方原文建议是:
Nginx unlike Apache and other process per connection webservers.
It uses one master process to start and monitor a small number of worker processes
that actually handle the connections.
My recommendation is to start with the default number of workers, which is 1.
worker_cpu_affinity配置
这个参数默认是不开启的。所以我们如果要配置,建议首先查看CPU核数(与上面一致)。它是由0和1这样的二进制参数 组成。
以2核CPU开启2进程为例,"01"代表使用第一个CPU内核,“10”代表使用第二个CPU内核。组数代表进程数。
配置示例如下所示:
测试
配置完成后重启nginx,使用ab命令测试,然后使用top命令查看CPU使用情况。
# /usr/local/nginx-1.16.1/sbin/nginx -s reload
# ab -n 30000 -k http://localhost/index.html
# top
猜你喜欢
- 2024-10-05 nginx 多进程是如何实现的? nginx 进程数设置多少合适
- 2024-10-05 Linux 如何快速找到运行中的进程在哪里
- 2024-10-05 nginx中worker进程和master是如何工作的呢
- 2024-10-05 一分钟了解nginx多进程结构 多个nginx实例
- 2024-10-05 Nginx 的进程结构,你明白吗? nginx进程nobody
- 2024-10-05 Nginx进程以及事件处理模型 nginx多进程模型
- 2024-10-05 5分钟搞懂nginx进程模型及相关配置
你 发表评论:
欢迎- 最近发表
-
- 我的世界光影MOD下载(我的世界光影mod下载安装)
- 我的世界1.7/1.8VoxelMap小地图MOD下载
- 我的世界1.7.10多世界 整合包(我的世界1.7.10forge整合包)
- 我的世界1.8最好用的修改器下载(我的世界1.8最好用的修改器下载安装)
- 我的世界更多弯曲动作MOD下载(我的世界更多弯曲动作mod下载手机版)
- 我的世界龙珠MOD下载(我的世界龙珠模组整合包下载)
- 我的世界1.7.10以太2 下载(我的世界以太2mod1.12.2)
- 我的世界虚拟人生MOD下载分享(我的世界虚拟人生下载安装)
- 我的世界无正版账号的简单联机方法(非网易版,仅适用于局域网)
- “我的语言极限,即是我的世界的极限。” ——《On Java》书籍推荐
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)