NT 的Socket端口连接的资源限制问题???(200分)

  • 主题发起人 主题发起人 sherman
  • 开始时间 开始时间
S

sherman

Unregistered / Unconfirmed
GUEST, unregistred user!
我用ASTA开发一个系统,软件运行在INTERNET上,使用NT平台,但
NT平台有一个资源问题,在一个SERVER SCOCKET连接时,同时连接
的CLIENT SOCKET可以有多少个,可以同时激活的CLIENT SOCKET有
多少个。请教各位高手。
 
这个问题我们测试过的,同时连了几千个是不成问题的,系统资源降低不是很厉害
这一点比win9x好多了,好想win9x过了几百就不行了:(

同时激活的没有侧过,你测出来告诉我一下好吗?
 
好象可以在注册表中设置
 
在一个SERVER SCOCKET连接时,同时连接的CLIENT SOCKET可以有多少个是在你
安装NT时选的!
 
好像不是那么选的呀,我在NT Workstation上可以上上百个,但是工作站版的NT
只允许有同时5个连接,所以好像两个不是一样的概念

我感觉WIN2k在这点上继承了NT的优点,对于多线程和连接是非常的棒
我用代理猎手测试,上了1000条线程,系统性能降低的不多
不过你的网卡一定好好一点,否则CPU占用率比较高
 
to :唐晓峰,只能几千个连接数,最大是多少,服务器性能可以升级
我最关心的还是并发用户数
to 网痞:在那里,那个键值
to xanadu:你说的是用户数吧,我问的是SOCKET
TO mikecool:我关心的不是线程数,而是SOCKET口的连接资源问题,线程不是问题
硬件设备也不是问题。
 
1024个,是伯克利的标准!现在的nt和大部分unix都是这样的!因为他们的网络功能的实现都是抄的伯克利的BSD!
 

听说 Linux 修改内核后可超过 1024, 也想了解。
 
:apathy 你所说的是指并发连接数吗?否则,唐晓峰的测试是如何完成的???
 
ASTA是什么东东?控件吗?能给我一个吗?guo.zl@263.net
 
好像这个上限主要要看系统Socket缓冲池的大小和每个用户的通讯量。
我曾经在一个测试中在一个64M内存的机器上轻易的超过了NT Server
的Server Socket的承受能力(CPU、内存资源都有很多剩余)。
至于在哪里修改相关参数我就不知道了。不过有一点是肯定的,NT不会
自动根据你的内存大小来增大相应的缓冲区。
 
:dssn 那你知道的ServerSocket 口的承受能力是多少呢,我现在主要
想知道NT的SOCKET性能指标,当然还有如何扩大系统的默认配置,
NT SERVER 用 COMPAQ 7000。
 
win98 : 96个socket
nt server: 5000 个socket联结
 
:soul, 是静态还是并发
 
我不知道唐晓峰的测试是怎样完成的!
不过不过你可以试一下,在服务器端采取每客户一个线程,在客户端也是每个连接一个线程,用C++程序向服务器发送无'/0'的字符串,这样服务器端就会阻塞在read调用上(不要用select为read设超时)。
看一下服务器端的线程数就是并发连接数!要是能有5000,嘿嘿。。。
不要用一般的tcp连接去测试,即使用死循环发送也不可能达到并发1024的。
只能用我说的方法,最早的拒绝服务试攻击就是这么写的!
 
详细内容可看《UNIX网络编程第一卷(套接口api和x/open传输接口api)》
清华大学出版社
 
to apathy:

我们测试的时候是在一台NT Server上跑 App Server,
同时有几台Client创建n多线程连接App Server,App Server在接到每一个
连接都返回“Hello world!”在App Server的Form上显示状态。

老兄不信可以试试!
 
后退
顶部