IOCP 压力测试问题

mark_gis 2013-04-16 05:02:11
最近项目要求开发一个支持4W左右个Socket长连接的服务器程序。准备用.net下的SocketSocketEventArgs来实现,写了一版,在本机测试时(客户端和服务端均在本机),服务端程序可并发处理6W个连接,毫无压力,但是当把服务端程序放到公网上测试时,支持的连接客户端到达1000左右就无法连接了,(telnet服务器的监听端口也很慢,或者连不通)。不知道问题出在哪里,就算考虑到网络延迟问题,但是这么大的差距也无法接受,请有相关经验的大大指教,可能存在的问题,不胜感激。
...全文
221 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
showjim 2014-01-23
  • 打赏
  • 举报
回复
本机测试可能不走网络,最少也要搞个局域网测试。 楼主的情况,看起来像是网络环境问题。
  • 打赏
  • 举报
回复
引用 1 楼 mark_gis 的回复:
PS:服务器操作系统是windows server 2008,托管在IDC机房,100M共享带宽
真逗。你的客户端跟服务器之间最“窄”的地方也是100M带宽?
本拉灯 2014-01-22
  • 打赏
  • 举报
回复
引用 楼主 mark_gis 的回复:
最近项目要求开发一个支持4W左右个Socket长连接的服务器程序。准备用.net下的SocketSocketEventArgs来实现,写了一版,在本机测试时(客户端和服务端均在本机),服务端程序可并发处理6W个连接,毫无压力,但是当把服务端程序放到公网上测试时,支持的连接客户端到达1000左右就无法连接了,(telnet服务器的监听端口也很慢,或者连不通)。不知道问题出在哪里,就算考虑到网络延迟问题,但是这么大的差距也无法接受,请有相关经验的大大指教,可能存在的问题,不胜感激。
NET在内网或本机测试是可以搞到6W的,不过很吃力了。你再放到公网上。。。可想而知了。。。6W个你应把他分几个网关然后再与数据服务器连接,而不是直接数据服务器。
  • 打赏
  • 举报
回复
windows server TCP连接数好像是有限制的。可以通过改注册表去改到最大
xsi640 2014-01-22
  • 打赏
  • 举报
回复
可能和测试方法有关,建议贴上代码看看
飞花猪肉 2014-01-22
  • 打赏
  • 举报
回复
无代码,无真相
edit89 2014-01-02
  • 打赏
  • 举报
回复
查看公网是服务器的资源占用,如果小于内网6W个,说明问题在网络,如果等于6W个,问题在服务器,总的来说,是服务器没有考虑数据传输延时和粘包处理不好的问题
mark_gis 2013-04-16
  • 打赏
  • 举报
回复
PS:服务器操作系统是windows server 2008,托管在IDC机房,100M共享带宽

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧