03_Nginx原理与优化
一、Nginx原理
master–work工作模式:
配置work进程的数量:
nginx的请求处理的过程:
二、master-workers机制
nginx -s reload 热部署
每个work进程都是独立的 当一个work发生问题时 此时不会影响其他work的抢夺请求 就不会造成服务中断。
work工作中没有锁机制。 省略加锁和开锁锁带来的系统开销。
在实际生产中 需要设置多少个worker:
Nginx采用了类似redis的一种io多路复用机制。该机制可以使nginx的性能达到最大化。
对于work进程 每一个进程都是异步非阻塞式的方式来处理请求。即使请求的数量再多 对于nginx来说 都是没有压力。
为了充分利用硬件CPU的性能。那么因此在实际使用中,work数量=CPU的数量
如果设置太少 造成CPU资源的浪费 如果设置太多 造成CPU的频繁切换而带来性能损耗。
当发送一个请求,占用了worker 的几个连接数:
三、面试题:
- 一个work可以支持1024个连接 :
答案:2或4
如果式静态资源 则一个请求 一个响应 连接数2
如果式动态资源 则客户端与nginx的请求响应(2) + nginx和tomcat的连接(2) = 4 - nginx有一个master 有4个work 该nginx所能支持的最大并发访问数是多少?
一个work所能支持的连接数1024
对于普通的静态资源的访问 需要2个连接 所以此时的所能支持的最大并发访问数=(wokrer_connections * worker_processes)/2 = 2048
对于动态资源 最大并发访问数= (wokrer_connections * worker_processes)/4 = 1024