目录
1、master-workers 的工作机制介绍
2、master-workers 的机制的好处
3、设置多少个 worker
4、最大连接数和支持的最大并发数的计算
1、master-workers 的工作机制介绍
nginx在启动后,会有一个master进程和一个或者多个相互独立的worker进程
过来的请求由master管理,worker进行争抢式的方式去获取请求。
2、master-workers的机制的好处
可以使用nginx -s reload热部署,利用nginx进行热部署
其次,采用独立的进程,可以让互相之前不会影响,一个进程退出后,其他进程还在工作,服务不会中断,master进程很快启动新的workerj进程。当workerj进程异常退出后,会导致当前的worker上的所有请求失败,但是不会影响到所有请求,降低了风险。
3、设置多少个worker
nginx同redis类似都采用了io多路复用机制,每个worker都是一个独立的进程,但每个进程只有一个主线程,通过异步非阻塞的方式来处理请求,即使是千万个请求也不在话下。每个worker的线程可以把一个cpu的性能发挥到极致.
补充:
使用nproc命令查看服务器cpu个数
设置worker进程数的方法步骤
在Nginx中,worker进程是负责处理客户端请求的进程。可以通过更改worker进程数来优化Nginx的性能。
要设置worker进程数,需要编辑Nginx的配置文件nginx.conf。在该文件中,有关worker进程数的配置可以在http块中找到。例如,要将worker进程数设置为4,可以添加下面的配置:
```
http {
...
worker_processes 4;
...
}
```
这样会启动个worker进程。建议将worker进程数设置为CPU核心数的2倍。这可确保每个CPU核心都有几个worker进程在运行,从而充分利用系统资源。
保存文件并重新启动Nginx服务,以使更改生效
测试!!!
4、最大连接数和支持的最大并发数的计算
这个值表示每个worker进程所能建立连接的最大值,所以一个nginx能建立的最大连接数,应该是
worker_connections * worker_processes
而所支持的最大并发数为:
普通的静态访问最大并发数是: worker_connections * worker_processes /2,
而如果是 HTTP 作为反向代理来说,最大并发数量应该是 worker_connections * worker_processes/4。
注意:发送请求,占用了 woker 2个或者4个链接数(静态资源2个, HTTP 作为反向代理则为4个)