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

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

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

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


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

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

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

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

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

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

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

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


by iefreer

你可能感兴趣的:(apache,nginx,epoll,select,网络IO)