- 主题:browser comet capacity test (Powered by zms)
>_< 我当初花了好长时间来摸索的。。。。
【 在 zms (来福) 的大作中提到: 】
: 浏览器comet的测试
: 附件是服务器端,java写的,运行:
: java -jar ./comet.jar
: ...................
--
FROM 123.112.13.*
我是小驴,谢谢。。。。
PS: 不给骑。
【 在 zms (来福) 的大作中提到: 】
: 嗯,我是一不小心,就站到了巨人的肩膀上了。。。
--
修改:ttl FROM 123.112.13.*
FROM 123.112.13.*
浏览器都有这个限制。。。 -,-
两个连接,一个用来发请求,一个用来推数据,如果链接要在新窗口打开这样的页面,最好换个字域名。
【 在 zms (来福) 的大作中提到: 】
: 我是纯粹研究
: 研究出来很高兴,但是我们还是不决定用这种技术
: 最大的问题,致命的问题:
: ...................
--
FROM 123.112.13.*
所以我是C++纯手工打造的Server啊。。。
【 在 zms (来福) 的大作中提到: 】
: 即使这样,对一个应用来说,还是致命的,说不准有一个长连接就死在那儿了,然后给用户的表象就是服务器down了
--
FROM 123.112.13.*
IE和Safari的之所以要那样是因为它们的页面对象会越来越大,FX和Opera的就没有这个问题
至于Server端嘛,如果你是event-driven的Server就不会有问题(不过IIS/Apache都不是,好像lighthttpd支持,没用过 -,-),其实它跟Socket Server是一样的嘛,你和水木的连接不用被重置,那个Server不是照样带两万人的在线,不过http协议栈要做一堆事情,单机带两万是不行的,不过带两千在线是非常轻松的,我那个程序带了两千个在线,每客户平均每秒有4~8个数据,CPU占用也就30%不到。
【 在 sayinger (言者) 的大作中提到: 】
: 所以要定时reset
--
FROM 123.112.13.*
我这是win server,用的是IOCP。
SOCKET的负载还是要明显小不少的,估计单机带HTTP客户也就六七千吧。
SERVER也支持C/S,在只有客户端软件的时候,CPU占用明显低。
【 在 JayXie (我是黑猫警长,专管花猫警察di~~) 的大作中提到: 】
: 纯粹从连接数上讲 单机带两万是很轻松的 水木就可以证明
: 而且瓶颈并不是在http的解析上
: apache有epoll的mpm 但是apache对应每个连接都要占用一个线程 这个是致命的
: ...................
--
FROM 123.112.13.*
关键是现在的大部分框架都还不适合去做长连接这个任务,呵呵。
【 在 zms (来福) 的大作中提到: 】
: 我server自己用java写的,没用什么框架,可以支持大几千的长连接 (大概八千左右吧)
: 不过我的连接只推送东西,不读取
: cpu占用也不大,大概20%左右,感觉都是操作系统自己的占用(忙着发送东西)
: ...................
--
FROM 123.112.13.*
要等它们成熟起来才能用啊,嗯。
【 在 zms (来福) 的大作中提到: 】
: 还是有的,我知道的有
: resin/hessian stream , jetty/continious , tomcat/cometservlet
: 不过经我试用,都很naive
: ...................
--
FROM 123.112.13.*
我每条消息128字节,每客户平均4~8条/s,6K个用户的话,用SOCKET,带宽就已经占不少了
用HTTP的额外开销会大不少的
【 在 zms (来福) 的大作中提到: 】
: 瓶颈不在 http的解析上,在 tcp/ip 栈的效率上
: 如果用好的tcpip栈,有明显的效果,比方说用freebsd
--
FROM 123.112.13.*
我觉得还是有很大差异的。
以我这边的逻辑来讲,客户端的时候:
解析命令:把一个char*转成结构体,CRC一下就行
发送,把一个结构做个CRC,转成char*
HTTP的
解析命令:内部肯定要把UTF8的东东转到UNICODE,我又要转成char*,然后还要解析这些字符串。
发送:把数据序列化成字符串,转成UTF8发送。
而且,单从带宽角度考虑,客户端能带的用户也应该达到HTTP的2倍才对。
【 在 JayXie (我是黑猫警长,专管花猫警察di~~) 的大作中提到: 】
: nod 这是一部分 还有很大的一个部分是内存拷贝的开销 不考虑应用逻辑部分
--
FROM 123.112.13.*