有连接进来后, 这个 连接什么也不干, 怎么控制这个连接的超时呢?
回复 #21 yunhappy 的帖子
libevent可以解决超时问题,自己写的话,效率没有那么高,当然我也写过一个用红黑树实现的超时,效率不高。。。。
我用的libevent-1.3的版本,他是用堆排序作的。可以参考一下。。
[ 本帖最后由 zsniper 于 2008-7-17 17:20 编辑 ] 我用epoll 测试过2W路的并发
找4台设备, 每台5000路, 每秒发一个数据包(5000并发), 每个数据包1400Bytes.
服务端CPU使用率40~50%
服务器配置: Intel(R) Pentium(R) 4 CPU 3.00GHz 双核
回复 #21 yunhappy 的帖子
这个得通过你应用层的心跳来控制吧.. kqueue可以管网络,文件,事件用的很爽,没iocp那么累还要考虑同步,iocp下对多个连接在做广播时真的很难受。但俩者在功能和性能差不多,iocp也可以管文件读取。epoll据传说只管socket其他好像不行,没有深入研究。一般情况下,程序运行的好坏跟写程序的人有关系,就系统kqueue和iocp俩者的差别一般很难比较的出来。对数据在传递时用拷贝还传指针,指针会快很多,但一般我还会去拷贝,因为传指针在多线程下不确定性太大,安全第一。在我做的项目中3000-4000个客户端占用资源最厉害的是数据库,其他现在的占用资源很少。
[ 本帖最后由 键盘老农 于 2008-7-17 17:51 编辑 ] 原帖由 cookis 于 2008-7-17 17:39 发表 http://bbs.chinaunix.net/images/common/back.gif
我用epoll 测试过2W路的并发
找4台设备, 每台5000路, 每秒发一个数据包(5000并发), 每个数据包1400Bytes.
服务端CPU使用率40~50%
服务器配置: Intel(R) Pentium(R) 4 CPU 3.00GHz 双核
你做的反射还是广播。
回复 #24 cookis 的帖子
高深 是指通过硬件控制么? 先收藏,有时间慢慢看 原帖由 yunhappy 于 2008-7-17 17:51 发表 http://bbs.chinaunix.net/images/common/back.gif高深 是指通过硬件控制么?
你的客户端跟服务器之间没有心跳机制吗..我就是说的这个.. 原帖由 键盘老农 于 2008-7-17 17:50 发表 http://bbs.chinaunix.net/images/common/back.gif
你做的反射还是广播。
服务器只收, 因为当时主要是测试仪epoll的接收能力. TCP模式.