博客
关于我
Nginx的进程模型简单理解
阅读量:514 次
发布时间:2019-03-07

本文共 1031 字,大约阅读时间需要 3 分钟。

协程机制

协程是一种线程内的内存模型,允许单个线程维护多个协程。当我们的协程(如read方法)遇到阻塞时,系统会立即切换到另一个不阻塞的线程执行read任务。这使得我们无需过分关注socket read操作何时返回。由于read操作完成后会按顺序执行回调函数,这种协程模型成为同步型协程,无需额外加锁。

Epoll多路复用模型

传统的Java BIO模型中,socket.write会将数据写入TCP/IP缓存区,缓存区填充到一定程度时,网络传输慢或客户端发送过多请求时,会导致客户端一直等待。为了解决这一问题,Linux select模型 kicks in。

在工作方式上,select模型会遍历固定数量的客户端,当检测到客户端变化时,唤醒变化的客户端分别执行read操作。虽然select模型的监听端点数理论上最多为1024(форk与 structs内存限制相关),但它会在大量客户端同时变化时产生性能问题。

Epoll多路复用作为select模型的改进者,摆脱了1024个端点限制,提供了更高效的多客户端I/O操作。epollserver能够监听任意数量的 客户端,每个客户端都有专门的回调处理,当检测到变化时立即执行相应的操作。

Master-Worker模型

Master-Worker模型是Nginx的核心架构设计。Master负责管理多个Worker进程,而每个Worker则独立处理客户端请求。当Nginx启动时,master先启动并根据配置创建临时Worker进程。当_worker数量日增长到最大值时_,master会根据负载决定是否创建更多的Worker。

每个Worker进程内部都采用Epoll多路复用模型为客户端提供服务。这种设计使得回调在数据可用时自动触发,避免阻塞。每个 我们知道,Epoll单线程非阻塞的处理方式,最高吞吐量远高于多线程方式。

masters在客户端请求增加时会分配资源,建立连接并启动Epoll多路复用。最终,由于Master-Worker模型的特点,在执行nginx -s reload命令时,Worker仅需销毁所有客户端连接,而Master可以临时接手管理接口。

线程?进程?实际上, 每个Worker仅使用一个线程。我们可以将每个Worker视为一个单线程复用机制。而Epoll通知机制让处理更高效,速度果然远高于多线程复用。

这种架构使Nginx既能处理巨量请求,还能在不完整重启的情况下优化配置。

转载地址:http://xcwnz.baihongyu.com/

你可能感兴趣的文章
OpenCV与AI深度学习 | 使用单相机对已知物体进行3D位置估计
查看>>
OpenCV与AI深度学习 | 初学者指南 -- 什么是迁移学习?
查看>>
OpenCV与AI深度学习 | 十分钟掌握Pytorch搭建神经网络的流程
查看>>
OpenCV与AI深度学习 | 基于GAN的零缺陷样本产品表面缺陷检测
查看>>
OpenCV与AI深度学习 | 基于OpenCV和深度学习预测年龄和性别
查看>>
OpenCV与AI深度学习 | 基于OpenCV实现模糊检测 / 自动对焦
查看>>
OpenCV与AI深度学习 | 基于Python和OpenCV将图像转为ASCII艺术效果
查看>>
OpenCV与AI深度学习 | 基于PyTorch实现Faster RCNN目标检测
查看>>
OpenCV与AI深度学习 | 基于PyTorch语义分割实现洪水识别(数据集 + 源码)
查看>>
OpenCV与AI深度学习 | 基于YOLO11的车体部件检测与分割
查看>>
OpenCV与AI深度学习 | 基于YoloV11自定义数据集实现车辆事故检测(有源码,建议收藏!)
查看>>
OpenCV与AI深度学习 | 基于YOLOv8 + BotSORT实现球员和足球检测与跟踪 (步骤 + 源码)
查看>>
OpenCV与AI深度学习 | 基于YOLOv8实现高级目标检测和区域计数
查看>>
VS2003 Front Page Server Extension
查看>>
OpenCV与AI深度学习 | 基于YOLOv8的停车对齐检测
查看>>
OpenCV与AI深度学习 | 基于YoloV8的药丸/片剂类型识别
查看>>
OpenCV与AI深度学习 | 基于YOLO和EasyOCR从视频中识别车牌
查看>>
OpenCV与AI深度学习 | 基于图像处理的火焰检测算法(颜色+边缘)
查看>>
OpenCV与AI深度学习 | 基于拉普拉斯金字塔实现图像融合(步骤 + 代码)
查看>>
OpenCV与AI深度学习 | 基于改进YOLOv8的景区行人检测算法
查看>>