Nginx进程模型

发布时间:2021-04-12 发布网站:前端之家 F2er.com
前端之家收集整理的这篇文章主要介绍了Nginx进程模型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1.Nginx是多进程 or 多线程 ?

通常情况下:Nginx采用多进程模式,每个woker进程拥有一个主线程去响应处理多个用户请求;同时Nginx支持使用AIO线程池去读取和发送大文件,避免woker进程被堵塞。

2.Nginx多进程单线程

每个woker进程拥有一个主线程,在epoll支持下,采用异步非阻塞方式来处理请求,从而实现高并发;相对于多线程来说:每个请求占用量小,没有上下文切换带来的开销,事件处理十分轻量。

备注:httpd工作方式通常为多线程,每个用户请求独占一个线程,当并发数到达上千的时候,同时会有上千个线程在处理请求,线程带来的内存占用非常大,线程的上下文切换带来的cpu开销也很大

3.Nginx进程设计

Nginx主要采用Master/Woker进程设计的方式:Master进程主要用来管理Worker进程生命周期;Woker进程主要去处理用户请求。

1.多woker进程能充分利用多核系统带来的并发处理能力

2.woker进程高可用:当woker进程挂掉后,master进程能够重新申请创建新的woker进程

3.负载均衡:woker进程间可以通信,从而一个请求的到来可以协商分配到负载较低的woker进程上去处理备注:我们通常会设置woker进程数量和CPU核数保持一致:CPU亲和性或绑定woker进程到指定cpus上可以避免进程上下文切换带来的开销、cpu资源竞争及cache失效等问题

4.对比Apache

轻量级:Nginx占用更少的内存及资源

抗并发:Apache是同步阻塞型,在高并发下Nginx能保持低消耗高性能

高度模块化:Nginx高度模块化设计使扩展功能更加简单

总结


以上是前端之家为你收集整理的Nginx进程模型全部内容,希望文章能够帮你解决Nginx进程模型所遇到的程序开发问题。

如果觉得前端之家网站内容还不错,欢迎将前端之家网站推荐给前端开发程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。