wyezl 发表于 2008-09-09 18:00

原帖由 wwwsq 于 2008-8-28 09:06 发表 http://bbs.chinaunix.net/images/common/back.gif
http://www.xmailserver.org/linux-patches/nio-improve.html

测试说明dual PIII 1GHz, 256 Mb RAM的机器,每秒可以处理约27500个128字节的http请求。

“2cpu4核机器” 比 “dual PIII 1GHz”的性能高五 ...




不reasonable,我怎么能实现呢。:)


不过,这个效率我还能提高不少,以前取数据耽误不少时间,我要是愿意可以把取数据的效率提高50倍。
等有人超过我了,我再做改进,现在懒得动。

ytl 发表于 2008-09-09 18:07

QQ服务器是怎样的架构?

wwwsq 发表于 2008-09-09 19:17

原帖由 wyezl 于 2008-9-9 17:52 发表 http://bbs.chinaunix.net/images/common/back.gif

不是类似路由的东西,而是一个类似apache的东西。
当然,如果我愿意,我可以稍微修改就能成为高效的类似路由的东西或者一个高效的代理服务器。
低层技术都不变,作为什么服务,只是一种表现。

50w ...


如果每秒15w的http请求是通过长连接实现的,那就比较好理解,我见过一个服务器每秒钟处理100w+的request,每个request大概十几个字节。

据我所知accept的时候socket底层是要做很多分配buffer之类的体力活的,对于长连接,那么请求只是数据流。

wwwsq 发表于 2008-09-09 19:19

原帖由 wyezl 于 2008-9-9 18:00 发表 http://bbs.chinaunix.net/images/common/back.gif

不reasonable,我怎么能实现呢。:)

不过,这个效率我还能提高不少,以前取数据耽误不少时间,我要是愿意可以把取数据的效率提高50倍。
等有人超过我了,我再做改进,现在懒得动。


取数据的效率提高50倍,是把accept和recv合并为一次内核操作吗?或者是把自己的程序变成一个kernel module ?

ytl 发表于 2008-09-09 21:06

原帖由 Kendiv 于 2008-7-20 16:01 发表 http://bbs.chinaunix.net/images/common/back.gif
实际的说,基于Generic OS(Linux/*nix/Windows)的Network I/O都存在理论速度上限的瓶颈,因为OS自身的开销(任务切换,虚拟内存转换等),总线的时延,较低的总线带宽等等都会大幅降低I/O性能,而这是软件本身 ...

采用NP方案一般适合路由器这种IP层的处理。如果用NP来实现基于TCP的应用层(如web), 应该怎么架构呢?

halve 发表于 2008-09-10 15:06

原帖由 cookis 于 2008-7-18 10:35 发表 http://bbs.chinaunix.net/images/common/back.gif
你为什么用红黑树呢, 红黑树只是查找快一些, 但timeout这种机制只是需要得到最大或最小的元素, 堆结构正适合
使用复杂数据结构的话都有维护的成本, 多线程情况下, 还需要加锁处理
不如设定一个超时轮询线程, 将所有现有的连接按时间戳排序, 然后依次排除

wyezl 发表于 2008-09-10 15:19

原帖由 wwwsq 于 2008-9-9 19:17 发表 http://bbs.chinaunix.net/images/common/back.gif



我见过一个服务器每秒钟处理100w+的request,每个request大概十几个字节。

...

哥们这服务器什么配置。网络I/O能达到这个数?

wwwsq 发表于 2008-09-11 17:55

原帖由 wyezl 于 2008-9-10 15:19 发表 http://bbs.chinaunix.net/images/common/back.gif


哥们这服务器什么配置。网络I/O能达到这个数?


千兆网。

100w乘以15字节=15M字节。

halve 发表于 2008-09-12 11:51

原帖由 wyezl 于 2008-8-7 16:51 发表 http://bbs.chinaunix.net/images/common/back.gif
sports.sinajs.cn单机每秒可以处理15w+ http请求,支撑50w+connections同时在线.在2cpu4核机器上测试。
hq.sinajs.cn每天上百亿http请求。

系统资源都比较空闲,负载比较低。。。
刚刚看到有人说, 受限于 non-paged Kernel memory, 4G 内存的 windows 系统, 同一时间 15w 左右的 socket 是极限
不知道 linux/unix 的情况怎么样?

wyezl 发表于 2008-09-12 12:35

原帖由 wwwsq 于 2008-9-11 17:55 发表 http://bbs.chinaunix.net/images/common/back.gif



千兆网。

100w乘以15字节=15M字节。

只知其一不知其二。

先不算要维持一个http只连接,http头至少要70多字节,只发个hello world加起来也要80字节。



就算只发15个字节,千兆网又能如何,普通网卡一秒也就只能发20w个包。
按你的说法,我如果每个包一个字节,那么一秒发500w个包也很轻松了。。。

就算我用最好的网卡,按我说的这样的普通服务器,每秒50w http处理量,绝对世上罕见,不过对我来说不是很难实现。
页: 1 2 3 4 5 6 7 8 9 [10] 11 12
查看完整版本: 超高性能网络编程, Asynchronous network I/O