美文网首页
nginx与epoll

nginx与epoll

作者: realPeanut | 来源:发表于2020-11-16 23:30 被阅读0次

nginx模块化的设计哲学注定了nginx成为了一个轻量但功能可自定义的高性能的HTTP和反向代理以及邮件服务器。

要了解Nginx中epoll的应用,首先要了解nginx的请求处理机制

为了响应客户端或者对端服务器的请求,服务器一般需要拥有并行或者并发能力,即同时或者同时段可以响应客户端的请求,一般的做法有:

  1. 多进程
  2. 多线程

多进程的方式,缺点是进程数量过多的时候,内存等系统资源开销过大,可能会导致系统奔溃。

多线程的方式,缺点是线程间共享内存,得考虑线程安全的问题,还得考虑锁的问题。

nginx 进程模型

nginx 的进程模型选择的是多进程+异步非阻塞(epoll)

多进程指 一个master进程+多个worker进程(可配置,一般为内核数)+ cache manager进程+cache loader进程

异步非阻塞指worker进程的事件驱动模型采用的是epoll事件驱动库(多路io复用)的方式来和客户端交互。

nginx 进程启动流程
                                      -> worker(n)
 ./nginx -c /etc/nginx.config ->master  -> cache loader(初始化一次,然后关闭)
                                      -> cache manager(缓存管理和清理)

master进程作用

信号处理、配置初始化、子进程生成管理通信

worker 任务

todo

cache loader

todo

master 和worker 通信

todo

worker 之间通信

channel 信道

worker 的异步非阻塞

异步非阻塞的事件处理机制也称为事件驱动模型有哪些

1.轮询
2.通知

衍生出事件驱动库也就是我们经常听的多路io复用

是select\poll\epoll、kqueue

本质: 单个进程监控多个文件描述符FD,一旦某个FD可读或者可写,则通知相应的进程进行读写操作

从网卡接收数据说起,需要明白的几个知识点

中断、CPU调度、进程上下文、调用栈、进程间通信、管道、共享内存、信号、信号量、ET、LT、IO、socket、fd、ip、端口 todo

相关文章

  • nginx与epoll

    nginx模块化的设计哲学注定了nginx成为了一个轻量但功能可自定义的高性能的HTTP和反向代理以及邮件服务器。...

  • openresty

    1 NGINX epoll 与 select poll的区别基于IO事件 的异步非阻塞模式,能够处理大量连接,并不...

  • Nginx模块之echo

    选择nginx Nginx性能为王: 支持epoll,大规模高并发 支持Linux的sendfile系统调用,可以...

  • Nginx实现高并发及原理

    关键词:nginx 1、nginx基本介绍 1.nginx高并发原理(多进程(单线程)+epoll实现高并发) 1...

  • nginx 事件驱动

    nginx时间循环 epoll 请求切换 阻塞调用 非阻塞调用 模块分类

  • Linux下Socket编程(四)——epoll的使用

    简介 epoll与select epoll_create epoll_ctl epoll_wait ET、LT模式...

  • Nginx 超时事件的处理机制

    本文基于Nginx 0.8.55源代码,并基于epoll机制分析 对于nginx而言,事件机制的处理无非就是几个部...

  • nginx的epoll

    nginx学习之epoll 首先说一下传统的I/O多路复用select和poll,对比一下和epoll之间的区别:...

  • Nginx和Apache比较

    为什么Nginx总体性能比Apache要高: Nginx使用的是最新的epoll(linux内核2.6)和kque...

  • Nginx

    Nginx优点 支持海量高并发:采用IO多路复用epoll。官方测试Nginx能够支持5万并发链接,实际生产环境中...

网友评论

      本文标题:nginx与epoll

      本文链接:https://www.haomeiwen.com/subject/ijetiktx.html