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.重启操作系统
目录
相关文章
|
4月前
|
负载均衡 网络协议 应用服务中间件
【Nginx】Nginx 功能特性
【1月更文挑战第25天】【Nginx】Nginx 功能特性
|
存储 缓存 负载均衡
nginx是干什么的?有哪些特性?底层原理是什么?
nginx是干什么的?有哪些特性?底层原理是什么?
511 0
|
应用服务中间件 nginx Linux
Nginx特性-轻量级+CPU亲和+超强的静态文件处理能力
章节目录 轻量级 CPU亲和 超强的静态文件处理能力 轻量级 功能模块少 源代码只保留与http 及核心功能代码,出于性能考虑,不像httpd 有那么丰富的插件。
1134 0
|
Unix Linux 应用服务中间件
|
监控 Unix 应用服务中间件
|
1天前
|
缓存 前端开发 JavaScript
终极 Nginx 配置指南(全网最详细)
本文详细介绍了Nginx配置文件`nginx.conf`的基本结构及其优化方法。首先通过删除注释简化了原始配置,使其更易理解。接着,文章将`nginx.conf`分为全局块、events块和http块三部分进行详细解析,帮助读者更好地掌握其功能与配置。此外,还介绍了如何通过简单修改实现网站上线,并提供了Nginx的优化技巧,包括解决前端History模式下的404问题、配置反向代理、开启gzip压缩、设置维护页面、在同一IP上部署多个网站以及实现动静分离等。最后,附上了Nginx的基础命令,如安装、启动、重启和关闭等操作,方便读者实践应用。
133 77
终极 Nginx 配置指南(全网最详细)
|
1月前
|
应用服务中间件 nginx Docker
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)
这篇文章介绍了如何通过域名在本地访问虚拟机上的nginx服务,包括创建nginx容器、修改配置文件、修改本地host文件以及进行访问测试的详细步骤。文章提供了具体的Docker命令来创建并配置nginx容器,展示了配置文件的修改示例,说明了如何在本地系统的hosts文件中添加虚拟机IP和自定义域名,以及如何通过浏览器进行测试访问。
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)
|
13天前
|
应用服务中间件 nginx
一文搞定Nginx配置RTMP!
一文搞定Nginx配置RTMP!
50 3