一. select 模型(apache的常用)1. 最大并发数限制,因为一个进程所打开的 FD (文件描述符)是有限制的,由 FD_SETSIZE 设置,默认值是 1024/2048 ,因此 Select 模型的最大并发数就被相应限制了。自己改改这个 FD_SETSIZE ?想法虽好,可是先看看下面...
分类:
系统相关 时间:
2015-07-07 10:45:56
阅读次数:
203
select的本质是采用32个整数的32位,即32*32= 1024来标识,fd值为1-1024。当fd的值超过1024限制时,就必须修改FD_SETSIZE的大小。这个时候就可以标识32*max值范围的fd。 对于单进程多线程,每个线程处理多个fd的情...
分类:
其他好文 时间:
2015-07-06 10:28:44
阅读次数:
116
上一篇《白话tornado源码之请求来了》介绍了客户端请求在tornado框架中的生命周期,其本质就是利用epoll和socket来获取并处理请求。在上一篇的内容中,我们只是给客户端返回了简单的字符串,如:“Hello World”,而在实际开发中,需要使用html文件的内容作为模板,然后将被处理后...
分类:
其他好文 时间:
2015-07-05 00:57:09
阅读次数:
210
select,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用户空间。
...
分类:
系统相关 时间:
2015-07-04 14:00:27
阅读次数:
222
这篇文章是对上篇文章的一个补充,主要围绕以下两点展开,one-connection-per-thread的实现方式以及线程池中epoll的使用。
one-connection-per-thread
根据scheduler_functions的模板,我们也可以列出one-connection-per-thread方式的几个关键函数。
static scheduler_functions con...
分类:
数据库 时间:
2015-07-02 10:07:16
阅读次数:
132
透明的负载均衡器&http正向代理
* master-workers架构,http正向代理由独立的dns请求以及缓冲进程
* 使用epoll(ET)模式,采用全异步方式(双缓存,实现双向同时转发);
* 事件管理机制(事件池,事件对象分离)
* 使用红黑树超时管理
* 灵活且简单的配置文件
* 多种可配置负载均衡的算法
* 实现可以多个分组同时负载
* 不间断在线配置参数功能
...
分类:
Web程序 时间:
2015-07-01 18:34:02
阅读次数:
163
事件管理机制 Nginx是以事件驱动的,也就是说Nginx内部流程的向前推进基本都是靠各种事件的触发来驱动,否则Nginx将一直阻塞在函数epoll_wait()或suspend函数,Nginx事件一般分为I/O事件和定时事件,当一个事件到来后,监听FD的工作进程就开始处理事件,并执行回调函数,开....
分类:
其他好文 时间:
2015-06-30 20:01:27
阅读次数:
99
EPoll基于I/O的事件通知机制,由系统通知用户那些SOCKET触发了那些相关I/O事件。...
分类:
系统相关 时间:
2015-06-30 14:59:23
阅读次数:
147
【原地址】http://blog.chinaunix.net/uid-24517549-id-4051156.html什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is...
分类:
其他好文 时间:
2015-06-29 11:28:55
阅读次数:
108