Nginx特性-I/O多路复用

简介: 章节目录I/O复用IO多路复用多路复用-select、epollselect epoll 优缺点总结linux 更改文件描述符大小的命令 - 面试会问I/O复用什么是I/O复用I/O复用 解决的是并发性请求的问题。

章节目录

  • I/O复用
  • IO多路复用
  • 多路复用-select、epoll
  • select epoll 优缺点总结
  • linux 更改文件描述符大小的命令 - 面试会问

I/O复用

什么是I/O复用

I/O复用 解决的是并发性请求的问题。
处理多个并发请求,要产生多个I/O流来进行系统内核数据的读取。
常用的两种处理方式是串行,前一个阻塞,后面无法继续进行处理、并行处理请求-实现最大并发和吞吐。
I/O复用定义为:一个socket作为复用来完成整个I/O流的请求链接建立,处理请求则采用多线程。

IO多路复用

普通版:

老师给一个班学生出题,并且老师不停挨个询问学生有没有做完试题,如果有
学生做完试题,则解答,这种方式采用的是串行的处理方式。

强化版:

老师分身,创建多个线程老师,分别处理每个学生做完的试题,这种方式采用的是多线程的处理方式。但是资源分配上、上下文切换会出现额外资源消耗。

究极版:

真正的I/O多路复用
学生(网络请求-请求数据分组到达,)主动上报自己做题的情况,复用的是老师处理学生做题情况的线程

什么是I/O多路复用

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

多路复用-select、epoll

select

I/O多路复用采用的是select 模型,即系统发出select系统调用,等待内核主动将可
用的文件描述符信息发送给应用一端,fd未准备好,应用会block住socket请
求,当fd就许后,select 会遍历维护的文件描述符发现可用的文件描述符。

epoll

每当fd就绪,系统采用回调函数将fd放入就绪列表,效率非常高。
举例:
告诉服务员,用餐结束,服务员告知老板,说有几桌要结账,老板需要询问
告诉服务员,用餐结束,服务员告知老板,说哪号桌要结账,老板不需要询问。

select epoll 优缺点总结

模型 优点 缺点
select 1.采用线性遍历的方式获取可用的fd文件描述符
2.可维护文件描述符大小有限制为1024
epoll 1.每当fd就绪,系统采用回调函数将fd放入就绪列表,效率非常高。
2.最大连接数没有限制

linux 更改文件描述符大小的命令 - 面试会问

当前登陆态修改方式

ulimit -n [fd数量]

永久生效、开机启动方式

1.vi /etc/security/limits.conf 
2.- nofile 4096
3.重启操作系统
目录
相关文章
【数据结构】栈的应用——四则运算表达式求值
【数据结构】栈的应用——四则运算表达式求值
【数据结构】栈的应用——四则运算表达式求值
|
存储 缓存 文件存储
如何保证分布式文件系统的数据一致性
分布式文件系统需要向上层应用提供透明的客户端缓存,从而缓解网络延时现象,更好地支持客户端性能水平扩展,同时也降低对文件服务器的访问压力。当考虑客户端缓存的时候,由于在客户端上引入了多个本地数据副本(Replica),就相应地需要提供客户端对数据访问的全局数据一致性。
33076 80
如何保证分布式文件系统的数据一致性
|
前端开发 容器
HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第8章FlexBox布局(上)
HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第8章FlexBox布局
17818 24
|
设计模式 存储 监控
设计模式(C++版)
看懂UML类图和时序图30分钟学会UML类图设计原则单一职责原则定义:单一职责原则,所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。bad case:IPhone类承担了协议管理(Dial、HangUp)、数据传送(Chat)。good case:里式替换原则定义:里氏代换原则(Liskov 
36801 22
设计模式(C++版)
|
存储 编译器 C语言
抽丝剥茧C语言(初阶 下)(下)
抽丝剥茧C语言(初阶 下)
|
机器学习/深度学习 人工智能 自然语言处理
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
24873 15
|
机器学习/深度学习 弹性计算 监控
重生之---我测阿里云U1实例(通用算力型)
阿里云产品全线降价的一力作,2023年4月阿里云推出新款通用算力型ECS云服务器Universal实例,该款服务器的真实表现如何?让我先测为敬!
36786 15
重生之---我测阿里云U1实例(通用算力型)
|
SQL 存储 弹性计算
Redis性能高30%,阿里云倚天ECS性能摸底和迁移实践
Redis在倚天ECS环境下与同规格的基于 x86 的 ECS 实例相比,Redis 部署在基于 Yitian 710 的 ECS 上可获得高达 30% 的吞吐量优势。成本方面基于倚天710的G8y实例售价比G7实例低23%,总性价比提高50%;按照相同算法,相对G8a,性价比为1.4倍左右。