当前位置: 首页>编程语言>正文

nginx work process设置多少合适 nginx的worker

一、master和worker

master相当于是一个管理员或者老板,而worker相当于是一个工人,worker可以是多个存在的。 

 

nginx work process设置多少合适 nginx的worker,nginx work process设置多少合适 nginx的worker_连接数,第1张

nginx work process设置多少合适 nginx的worker,nginx work process设置多少合适 nginx的worker_客户端_02,第2张

二、worker是如何进行工作的 

客户端client发送一个请求,先由管理员master拿到,然后 分发给一个或者多个worker,woker多个争抢的机制来得到客户端client的请求,然后调用对应的tomcat去进行工作。

nginx work process设置多少合适 nginx的worker,nginx work process设置多少合适 nginx的worker_nginx_03,第3张

三、一个master和多个worker的好处

1、可以使用 nginx –s reload 热部署,利用 nginx 进行热部署操作。

2、每个 worker 是独立的进程,如果有其中的一个 worker 出现问题,其他 worker 是独立的,会继续进行争抢,实现请求过程,不会造成服务中断。

四、设置多少个worker合适 

worker 数和服务器的 cpu 数相等是最为适宜的(例如:四核的cpu,就可以设置四个worker)。

Nginx和redis类似,都是采用了io多路复用机制,每个worker都是一个独立的进程,但每个进程里面只有一个主线程,通过异步非阻塞的方式来处理请求,即使是上千万个请求也不在话下。每个worker的线程可以把一个cpu的性能发挥到极致。所以worker数和服务器的cpu数相等是最为适宜的。设置少了会浪费cpu,设置多了会造成cpu频繁切换上下文而带来损耗。

五、连接数worker_connection 

 1、客户端发送一个请求,占用了worker的几个连接数?

2个或4个

连接数worker_connection这个值是表示每个worker进程所能建立连接的最大值,所以,一个nginx能建立的最大连接数,应该是worker_connection * worker_processes。当然,这里说的最大连接数,对于HTTP请求本地资源来说,能够支持的最大并发数量是worker_connection * worker_processes,如果是支持http1.1的浏览器每次访问要占用两个连接数,所以普通的静态访问最大并发数是:worker_connection * worker_processes / 2,而如果是HTTP作为反向代理来说,最大并发数量应该是:worker_connection * worker_processes / 4,因为作为反向代理服务器,每个并发会建立与客户端的连接以及与后端服务器的连接(比如tomcat服务的连接),所以这是会占用两个连接。

2、nginx 有一个 master,有四个 woker,每个 woker 支持最大的连接数 1024,支持的最大并发数是多少?

(1)普通的静态访问最大并发数是: worker_connections * worker_processes /2

(2)如果是 HTTP 作 为反向代理来说,最大并发数量应该是 worker_connections *  worker_processes/4


https://www.xamrdz.com/lan/5a71938509.html

相关文章: