epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在 ...
分类:
其他好文 时间:
2016-09-02 21:47:30
阅读次数:
159
前言 从零单排高性能问题,这次轮到异步通信了。这个领域入门有点难,需要了解UNIX五种IO模型和 TCP协议,熟练使用三大异步通信框架:Netty、NodeJS、Tornado。目前所有标榜异步的通信框架用的都不是异步IO模型,而是IO多路复 用中的epoll。因为Python提供了对Linux内核 ...
分类:
其他好文 时间:
2016-09-02 11:29:38
阅读次数:
123
概念: 首先列一下,sellect、poll、epoll三者的区别 select select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当select()返回后,该数组中就绪的文件描述符便会被内核修改标志位,使得进程可以获得这些文件描述符从而 ...
分类:
编程语言 时间:
2016-09-01 18:09:09
阅读次数:
145
epoll是linux下高性能的IO复用技术,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件异步唤醒而加入Ready队列的 ...
分类:
其他好文 时间:
2016-08-28 16:32:09
阅读次数:
169
本文为转载,并作了部门调整、修改。 【原文出处:https://segmentfault.com/a/1190000003063859】 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。 一 概念说明 在进行 ...
分类:
系统相关 时间:
2016-08-27 23:17:42
阅读次数:
301
Nginx--->epoll模型Apache--->select模型处理大量连接的读写时,Apache所采用的select网络I/O模型比较低,用两个通俗的比喻来解释二者的区别:第一个比喻:例如你在大学读书,住的宿舍楼有很多房间,你的朋友要来找你,select版宿管大妈就会带着你的朋友到各个房间挨个去..
分类:
其他好文 时间:
2016-08-26 15:38:42
阅读次数:
108
【本文谢绝转载原文来自http://990487026.blog.51cto.com】Linux统系统开发12SocketAPI编程3TCP状态转换多路IO高并发selectpollepolludp组播线程池
TCP11种状态理解:
1,客户端正常发起关闭请求
2,客户端与服务端同时发起关闭请求
3,FIN_WAIT1直接转变TIME_WAIT
4..
分类:
编程语言 时间:
2016-08-24 01:17:36
阅读次数:
414
Linux Native Aio 异步AIO的研究 http://rango.swoole.com/archives/282 首先声明一下epoll+nonblock从宏观角度可以叫做全异步,但从微观的角度来看还是同步的IO。只是在数据到达后得到系统通知,然后同步执行recv取回数据,没有iowai ...
分类:
系统相关 时间:
2016-08-21 12:29:42
阅读次数:
233
1.一个event_base持有了一系列的事件,并监控和决定哪些事件需要激活, 2.每一个event_base背后都有一个支持其工作的方法(诸如select,poll,epoll,kquene...),默认情况会选择最快的方法,可以自定义设置 3.event_base可以被设置为lock状态,这样多 ...
分类:
其他好文 时间:
2016-08-20 10:06:30
阅读次数:
126