nginx之epoll模型的详细介绍

时间:2021-11-23 14:39:00

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

 

1、什么是IO复用?

    nginx之epoll模型的详细介绍

  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采用的是线性遍历的模式,这种模式效率

低下,

 

  nginx之epoll模型的详细介绍

5、Select缺点及epoll优点

Select缺点:

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

  2) 、线性扫描效率低下

epoll优点:

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