社区
网络编程
帖子详情
目前的IOCP服务器(WIN版本),大约能支持多少TCP并发连接?
xiaoxiaospace
2011-03-12 11:51:51
有做过的说下,我看网上有人做到了并发9万多???
太夸张了吧
...全文
982
24
打赏
收藏
目前的IOCP服务器(WIN版本),大约能支持多少TCP并发连接?
有做过的说下,我看网上有人做到了并发9万多??? 太夸张了吧
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qaddafi2008
2013-11-11
打赏
举报
回复
亲们,别再自我YY了,看看大牛的讲解吧: http://yaocoder.blog.51cto.com/2668309/1312821
seamone
2011-09-11
打赏
举报
回复
9W多,那机器还能做别的工作吗,太牛了。
WinEggDrop
2011-03-23
打赏
举报
回复
[Quote=引用 21 楼 aaadddzxc 的回复:]
9W多有点吹NB的感觉了 只连接不做事?
[/Quote]
这贴很明显就是个“理论”贴,就是理论上能上多少并发连接。真实环境中可以处理的连接肯定比这个理论值要低很多,而且更不好预测,因为对发送和接收数据不同的处理方法可以影响实际中可处理的连接数。
xengine-qyt
2011-03-22
打赏
举报
回复
9W多有点吹NB的感觉了 只连接不做事?
zzz_zou
2011-03-22
打赏
举报
回复
这主要还是看机器性能吧, 其实并发量太大, 也可以使用集群服务器方案进行处理的
野男孩
2011-03-22
打赏
举报
回复
对于服务端来说,每个连接都是同一组IP:Port,怎么会有人考虑到65536的限制的,又不是客户端。
哈利路亚1874
2011-03-21
打赏
举报
回复
不过话说回来了,既然是socket的数量,因此就有限制,当然系统默认是65535,不过可以通过修改系统配置修改的,具体的楼主可以调研一下
哈利路亚1874
2011-03-21
打赏
举报
回复
并发9万多和端口数目没关系,说明可以同时支持9万个连接,系统存在9万个socket对象,每个对象确定一个客户端,cpu的个数决定了在同一时间内能够同时处理的连接数。并不是所有的连接都是同时处理的。
smwhotjay
2011-03-20
打赏
举报
回复
WinEggDrop. 不会就是那个写黑软的WinEggDrop吧..感觉很熟悉..
WinEggDrop
2011-03-19
打赏
举报
回复
补充一点,32位的Vista或以后的系统(windows 7,windows 2008等),非分页内存池可以达到75%的物理内存或最高的2GB(视乎哪一个小点,例如3GB物理内存,75% * 3GB = 2.25GB,min(2GB,2.25GB) = 2GB),非分页内存可以到2GB)。
具体可以查看以下连接(英文的):
http://blogs.technet.com/b/markrussinovich/archive/2009/03/26/3211216.aspx
WinEggDrop
2011-03-19
打赏
举报
回复
如果你的CPU够强劲的话,网络带宽也够的话,那么最高并发连接,就要看你系统中有多少非分页内存池可用了。32位的windows操作系统,无论你物理内存多大,可用的非分页内存池最大也是256M(32位win 7和windows 2008不清楚是否适用于这个)。以下就来算一下帐(假设服务器是接收连接,并不向外发起任何连接):
1.accept()或AcceptEx(),每接收一个连接,要占用1.5k左右的非分页内存池内存
2.任何一个默认的WSASend()或WSARecv(),至少锁上4KB或以上非分页内存池内存
假设你操作系统的驱动和其它必须软件占用了50MB的非分页内存池内存,那剩下了200MB非分页内存池,再假设你的程序只是接收连接,不做任何 WSASend(),WSARecv()或向外连接的操作,那么你的IOCP服务器最大可接收的连接为:200MB * 1024 KB/MB / 1.5 KB = 136533个连接。
但如果你的IOCP服务器是向外做TCP连接的话,那么每个connect()要用2KB左右非分页内存池内存,而且还要受限于系统可分配的TCP端口总数(65535)
如果操作系统是64位的windows,如果物理内存很大的话,非分页内存池是比32位操作系统的要大很多.32位系统的最大非分页内存池只能到256MB,而64位系统的最大非分页内存池可以到达可怕的128GB.那如果IOCP服务器是运行在64位的windows下(XP以后的操作系统),那可以支持的并发连接,是随便能超过10多W的。
无趣
2011-03-16
打赏
举报
回复
[Quote=引用 11 楼 tompaz 的回复:]
引用 7 楼 mayudong1 的回复:
为什么都执着于65535那个数呢
服务器端能接收的连接数跟端口数没有什么关系吧
端口复用可以的
[/Quote]
和端口复用也没关系,一个服务端口本来就可与多客户端连接的
shenyi0106
2011-03-14
打赏
举报
回复
1.机器性能
2.IOCP的设计
3.业务逻辑设计
一般的数据中转服务,没有多少业务逻辑的话,几W应该也不是问题
无水先生
2011-03-14
打赏
举报
回复
我看网上有人做到了并发9万多;
也不夸张!
Eleven
2011-03-14
打赏
举报
回复
这个要看你的IOCP怎么设计的
mayudong1
2011-03-14
打赏
举报
回复
为什么都执着于65535那个数呢
服务器端能接收的连接数跟端口数没有什么关系吧
zyyoung
2011-03-14
打赏
举报
回复
2-3k连接,主流家用机
tompaz
2011-03-14
打赏
举报
回复
[Quote=引用 7 楼 mayudong1 的回复:]
为什么都执着于65535那个数呢
服务器端能接收的连接数跟端口数没有什么关系吧
[/Quote]
端口复用可以的
xiayadong
2011-03-13
打赏
举报
回复
9W多?有点怀疑。端口可用数才65535个。
不过上到3-4W还是很真常的。
我测试过:
p4 1.7 512内存,使用IOCP模型,每隔1s进行一次数据交换,上到3W多都很正常。
jwybobo2007
2011-03-13
打赏
举报
回复
除非用了UDP加TCP一起的形式
单一的TCP或者UDP的socket能分配的总数65535个
加载更多回复(3)
服务器
最大
TCP
连接
数及调优汇总
启动线程数: 启动线程数=【任务执行时间/(任务执行时间-IO等待时间)】*CPU内核数 最佳启动线程数和CPU内核数量成正比,和IO阻塞时间成反比。如果任务都是CPU计算型任务,...单机最大
tcp
连接
数 网络编程 在
tcp
应用中
高性能
并发
TCP
网络服务-
IOC
P框架修正VC2008
版本
高性能
并发
TCP
网络服务
IOC
P框架修正VC2008
版本
从Source Code里可发现,此工程整合的epoll,
ioc
p及kqueue三种模型,应该是非常有用的一个东东(如果ACE能够把它的那些封装出来的每个东东都独立出来就太好了),但...
DELPHI高性能大容量SOCKET
并发
(二):
IOC
P完成端口控件封装
IOC
P完成端口介绍: 完成端口模型是
Win
dows平台下SOCKET端口模型最为复杂的一种I/O模型。...完成端口可以管理成千上万的
连接
,长
连接
传文件可以
支持
5000个以上,长
连接
命令交互可以
支持
20000个以上。这么大
并发
的连
一个
TCP
端口最多可以同时
连接
多少个客户端呢?
pp616 (傻小子) 2003-12-08 17:54:11 在 C++ Builder / 网络及通讯开发 提问最近
服务器
程序。用的socket api只接受
连接
什么事都不做。发现一个问题。
服务器
只能接受3900多个Client端再多了就Accept不了了。开始...
c++——
ioc
p模型
IOC
P有一个队列,当你要发数据时,收数据和
连接
时,都交由
IOC
P队列处理,不会与操作系统底层交互。 该函数实际用于两个明显有别的目的: 5.4.3 向
IOC
P队列投递接受
连接
的请求 5.4.4 检测队列,从队列中...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章