nginx之epoll模型的详细介绍

首先我们一个问题一个问题讲解,由浅入深的去探索epool

1、什么是IO复用?

    

  IO流请求操作系统内核,有串行处理和并行处理的两种概念;串行处理,前面一个处理,后面的所有的需要等

待,所以这是必需考虑并行处理的方式来完成整个IO流的请求,实现最大的并发和吞吐;这里就用到了IO复用技术,

IO复用技术就是让一个Socket来做复用完成整个IO流的请求,当然实现IO流的请求,其中一种方式就是多线程,但

是多线程会占用大量资源,不便于管理,从而出现IO多路复用

2、什么是IO多路复用?

  IO多路复用是指多个描述符的I/O操作都能在一个线程内并发交替地顺序完成,这里的“复用”指的是复用同一个

线程;对操作系统内核而言多路复用其实是要完成操作系统IO的请求,对于IO文件的请求,我们当一个IO流要进行

对应的文件处理的时候,要获取一组文件的描述符,当文件描述符还没就绪时,它就一直在等待,直到描述符一旦

就绪,它就马上上报系统的一个通知的机制告诉主应用程序,我已经准备就绪了,你可以来操作了这种方式就是IO

复用方式。

3、什么是epoll?

  IO多路复用的实现方式select 、 poll 、 epoll , 都是liunx内核下的常见多路复用模型最早出现的是select模型

4、什么是select?

  多路复用其实就是内核态对IO请求的时候,主动的会发送所需要处理的文件对象就绪时的文件就绪信息给应

用端,应用端在FD没有就绪之前都是Block,也就是阻塞住对应的Socket请求,也会维护一个FD的列表;当内核

态发送可用的信号,FD就绪以后,应用端采用select这种模式,会一直在遍历所维护的FD文件描述符的列表,以

等到对应的唤醒对应的进程完成对应的数据拷贝;在整个过程中select采用的是线性遍历的模式,这种模式效率

低下,

  

5、Select缺点及epoll优点

Select缺点:

  1) 、能够监视文件描述符的数量存在最大限制

  2) 、线性扫描效率低下

epoll优点:

  epoll则优化,完善了select模式的缺点,每当FD就绪,采用系统的回调函数直接将FD放入,效率高,无监视文件描述符的数量限制。

原文地址:https://www.cnblogs.com/wangchengb/p/8995704.html

时间: 2024-10-26 19:59:36

nginx之epoll模型的详细介绍的相关文章

ThinkPHP 的模型使用详细介绍--模型的核心(七)

原文:ThinkPHP 的模型使用详细介绍--模型的核心(七) 注意:本节是ThinkPhp框架对数据操作的核心处理部分 大家还是在这里看清楚可以将其剪切放到代码编辑器中查看 本章节给大家着重介绍模型的: 一.普通查询方式    . 二.表达式查询方式 . 三.区间查询      .  四.统计查询  .    五.SQL直接查询 回顾初步模型的-"增删改查": // 直接连接数据库,但是得先去配置文件中配置下才行 class IndexAction extends Action {

nginx+uwsgi部署django的简单介绍

1.安装django  环境ubuntu:sudo pip install django 2.新建一个django项目 命令:django-admin.py startproject  wlwebsite1 启动项目:python manage.py runserver 0.0.0.0:8000 浏览器查看,如下显示即正常 3.django项目有了,现在安装uwsgi 环境ubuntu:sudo pip install uwsgi 安装成功后看uwsgi版本:uwsgi --version ws

ios开发——实用技术篇&Pist转模型详细介绍

Pist转模型详细介绍 关于Plist转模型在iOS开发中是非常常见的,每开一一个项目或者实现一个功能都要用到它,所以今天就给大家讲讲Plist怎么转成模型数据, 前提:必须有一个Plist文件或者通过一定的方式返回的plist数据 一:直接加载Plist数据 1 //定义一个数组属性 2 @property (nonatomic, assign) NSArray *apps; 获取Plist文件 1 //懒加载plist文件,返回一个apps数据,后面直接使用旧可以 2 -(NSArray *

nginx重定向规则详细介绍

为何要使用301重定向 在网站建设中需要网页重定向的情况很多:如网页目录结构变动,网页重命名.网页的扩展名改变.网站域名改变等.如果不做重定向,用户的收藏和搜索引擎数据库中的旧地址只能让访客得到一个404错误信息页面,访问流量白白丧失.不仅如此,之前该页面的一切积累(比如PR值)就都白费了. 301重定向不仅能使页面实现自动跳转,对于搜索引擎来说,也可能可以传递PR值. nginx重定向规则详细介绍 http://www.jefflei.com/post/1015.html rewrite命令n

nginx配置文件nginx.conf详细介绍

tree /application/nginx/              #nginx整个安装结构 /application/nginx/conf/nginx.conf解释: 全局配置 #user nobody:                         #运行用户 Worker_processes 1 ;               #工作进程数量 #error_log  log/error.log           #错误日志文件的位置 #pid     log/nginx.pid

Apache select和Nginx epoll模型区别

部分内容摘自跟老男孩学Linux运维:Web集群实战(运维人员必备书籍) http://oldboy.blog.51cto.com/2561410/1752270 1.select 和epoll模型区别 1.1.网络IO模型概述 通常来说,网络IO可以抽象成用户态和内核态之间的数据交换.一次网络数据读取操作(read),可以拆分成两个步骤:1)网卡驱动等待数据准备好(内核态)2)将数据从内核空间拷贝到进程空间(用户态).根据这两个步骤处理方式不一样,我们通常把网络IO划分成阻塞IO和非阻塞IO.

Apache select与Nginx epoll模型区别

1.select 和epoll模型区别1.1.网络IO模型概述通常来说,网络IO可以抽象成用户态和内核态之间的数据交换.一次网络数据读取操作(read),可以拆分成两个步骤:1)网卡驱动等待数据准备好(内核态)2)将数据从内核空间拷贝到进程空间(用户态).根据这两个步骤处理方式不一样,我们通常把网络IO划分成阻塞IO和非阻塞IO.·阻塞IO.用户调用网络IO相关的系统调用时(例如read),如果此时内核网卡还没有读取到网络数据,那么本次系统调用将会一直阻塞,直到对端系统发送的数据到达为止.如果对

nginx web+反向代理 的配置介绍

user  www;   #定义Nginx运行的用户和用户组 worker_processes  2;  #nginx进程数,建议设置为等于CPU总核心数. #error_log  logs/error.log;     全局错误日志定义类型 #error_log  logs/error.log  notice; #error_log  logs/error.log  info; #pid        logs/nginx.pid;    进程文件 events {  工作模式与连接数上限 w

透过现象看本质——回头再看Nginx(进程模型、异步非阻塞、源码目录结构)

透过现象看本质--回头再看Nginx Nginx的进程模型 ? 使用过nginx的朋友都知道nginx的性能很高,而其原因可能少有人知.首先,nginx的架构就奠定了其高性能的基础.那么就先来看看nginx的基础架构吧,如下图所示:(不能完全理清楚所有内容也没关系,因为本小节讲述的主要内容是Nginx的进程模型) ? 本小节先来说说Nginx基础架构中的进程模型: ? 所谓进程模型,即Nginx响应请求或服务时程序运行(机器执行指令集)的方式,一般在nginx服务启动后,在Unix系统中会以da