Nginx/Apache以及网络IO模式的简单概念

本文对比了Apache与Nginx处理HTTP请求时采用的不同IO模式:Apache早期版本使用select模式,而Nginx则采用了epoll模式。文章通过餐厅服务的比喻解释了这两种模式的区别,epoll模式类似于通过按铃呼叫服务,减少了不必要的轮询,更适合处理高并发请求。

对于HTTP请求(比如一个静态页面)所产生的IO处理,

Apache老版本使用select模式,Nginx使用epoll模式(Apache2.4.1也引入了该模式)。

这导致了早期Apache在处理高并发请求性能上和Nginx的数量级的差异。


这里不讲代码和术语,用最简单的日常知识来理解这个差异,

计算机领域很多貌似高深的术语其实都来源于对生活的简单模仿。

拿餐厅来对比,select模式相当于查询式的,每次有请求服务员要按个去询问。

epoll模式则相当于添加了座铃呼叫,即大部分时间你是自助的,需要服务员的时候,通过按铃(包含用户信息的事件)来通知服务台(产生调度)。

显然按铃呼叫(事件回调)式节约了大量轮询的时间。

那么什么时候这两者之间没有差别呢:要么客人少,要么客人都按了玲。

如果迎客、送客、点单这些重复性环节占据了整个就餐的大部分时间,呼叫式服务效率也会显著降低。

所以epoll事件模式则适合短平快的(管理式、分发式)任务(网络I/O就是典型场景)。


by iefreer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值