2020-08-24

Nginx  --->epoll模型

Apache --->select模型

处理大量连接的读写时,Apache所采用的select网络I/O模型比较低,用两个通俗的比喻来解释二者的区别:

 

  • 第一个比喻:

    例如你在大学读书,住的宿舍楼有很多房间,你的朋友要来找你,select版宿管大妈就会

带着你的朋友到各个房间挨个去找,直到找到为止。而epoll版宿管大妈会先记下每位入住同学的房间号码,当你朋友来找你时,只需告诉你的朋友你住在哪个房间?不用亲自带着你的朋友满宿舍的找。如果同时来了100个人,都要找自己住这栋楼的同学,select版宿管大妈和epoll版宿管大妈说的效率高,就很明显了。

  • 第二个比喻:

    select调用复杂度是线性的,即O(n)。举个例子,一个保姆照看一群孩子,如果把孩子是否需要尿尿比作网络I/O事件,select的作用就好比这个保姆挨个询问每个孩子“你要尿尿吗?”,如果孩子的回答是,保姆则把孩子领出来放到另外一个地方。当所有孩子询问完之后,保姆领着这些需要尿尿的孩子去上厕所(处理网络I/O事件)。而epoll机制下,保姆不再需要挨个询问每个孩子,取而代之的是,约定好的地方是否有孩子。如果有,则领着孩子去上(处理网络I/O事件),因此,这种机制能够高效的处理成千上万的并发连接,而且性能不会随着连接数增加而下降太多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值