Java Socket 应用是这样的:客户端向服务器端发送数据请求,服务端向客户端发送大量数据;如果在三台不同的机器上运行三个客户端,运行的效果还可以。但是如果在A机器上运行一台,B机器上运行一台,运行效果可以,然后在A机器上再启动一个客户端,那么观察下来,服务端发送的速度立刻就降低下来了,下降的幅度很非常大,有人能帮忙分析一下原因吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 客户端带宽是够的,因为一个客户端时后,占带宽20%左右(100Mbps),后面A机运行两个客户端时下降了,占用带宽为5% 左右(100Mbps),服务器端是没有做任何限制的,你同一台机器或者不同一台机器,在它看来都是一个socket而,它就是用那个socket发送数据 都是100Mbps。我说带宽不是问题是因为:第一种情况,A,B,C机器分别运行一个客户端程序,数据接收占用带宽稳定在20%,服务器端发送速度为60%。;第二种情况,还是A,B机器,A机器运行两个客户端,B运行一个客户端,A机器占用的带宽办成了5%,B占用的也为5%,服务端发送的占用10%;两种情况下,硬件条件和网络条件都没有变化;但是却带来的这么大的影响,可能的原因会是什么。难道在同一台机器上分别与服务器端程序建立两个socket连接的原因吗? 哦,意思是单机数据接收之消耗了 20Mbps 左右?那么两个程序一起跑所期望的理论值应该是 40Mbps 左右了。那么另一个是客户机的CPU情况如何?是否已经饱和?如果是超线程的CPU的话,那么饱和不能按100%算,只能按60%左右算。一般来说,一台机器跟服务器程序建立多个Socket是不会有这种影响的。如果你用过很久以前的 NetAnt,应该有印象,仅就一台目标服务器多线程下载是单线程下载速度的数倍。 就是简简单单的使用socket而已,还是没找到原因。。 请教一个关于java处理字符串的问题? 配置JDK出错 Spring业务逻辑层事务控制,调用存储过程,业务层出错,事务不回滚 javascript session判断问题 用axis 1.4调用php发布的webservices服务 struts2的页面传值问题 lucene1.4.3复合查询求助 如何将jsp页面获得的系统时间存到数据库中?求解答!! 好心的帮忙?! 怎么使用jar文件 Hibernate不能自动创建表呢? 帮忙看一下是哪的错
那么两个程序一起跑所期望的理论值应该是 40Mbps 左右了。那么另一个是客户机的CPU情况如何?是否已经饱和?
如果是超线程的CPU的话,那么饱和不能按100%算,只能按60%左右算。
一般来说,一台机器跟服务器程序建立多个Socket是不会有这种影响的。
如果你用过很久以前的 NetAnt,应该有印象,仅就一台目标服务器多线程下载是单线程下载速度的数倍。