- 论坛徽章:
- 0
|
提高select/poll的可扩展性设想求证
如果你这里的连接我理解正确的话
那么,无论你采用什么模型,都是大系统,光OS在TCPBUFFER上的开销就要32M~240M左右.更不要提FD数和PROCESS的调度问题了.加上DATA RESOURCE的问题,赫赫,好可怕
如果,你的意思是最大用户数的话,那是有其他解决方法的.具体采用什么方式和你的系统性能需求,业务模型有很大关系.比如采用SINGLE PROCESS处理的话,那么你需要确认你的SERVICE处理的能力范围,PIPELINE/STREAM LINE体系构构,最大可能的并发程度等(比如BUFFER的构成方式, BUFFER与SERVICES和NET地衔接方式等),这种模型成为APP紧偶合.
此外,还有一种方式,就是PROCESS GROUPS+PROCESSES+THREADS( SERVICES)的方式,松偶合的,可以再起前面加上一个REQUEST ALLOCATOR,负责DISPATCH请求(对等模式,实际上也是一种负载平衡的实现),不要也可以,那就需要其他机制还负责PROCESS GROUP的调度了,MASTER/SLAVE模式的DISPATCH方式.采用这种模型,在SOFTWARE层上解决了系统的动态伸缩问题,但是需要OS和HARDWARE层支持.
如果你真有2000个SESSION/CONNECTION的话,恐怕系统规模不小呢 |
|