完成端口服务器只做网络和文件IO操作,没有添加其它任务。在100M网卡经D-LINK连接的两台机器上传文件,传输最大速度为2M/秒,而使用WINDOWS自己的共享文件夹来拷文件可以达到7M/秒,请问这是为什么?该如何优化??

解决方案 »

  1.   

    估计是结构问题。100MB的网络,如果全速的话,应该可以达到12MB左右的传输速度,而通常的windows文件拷贝在7~8MB左右,关键看拷贝的文件是多文件还是单文件,单文件相对高一点。而对于单纯的网络测试,应该可以达到10MB,或者更高。但是有磁盘文件操作就是另外一回事了,这个不仅要考虑到你的网络带宽资源问题,还要考虑磁盘的操作,另外就是有windows防火墙的问题,特别是WinXP2以上的系统。
      

  2.   

    估计是结构问题。100MB的网络,如果全速的话,应该可以达到12MB左右的传输速度,而通常的windows文件拷贝在7~8MB左右,关键看拷贝的文件是多文件还是单文件,单文件相对高一点。而对于单纯的网络测试,应该可以达到10MB,或者更高。但是有磁盘文件操作就是另外一回事了,这个不仅要考虑到你的网络带宽资源问题,还要考虑磁盘的操作,另外就是有windows防火墙的问题,特别是WinXP2以上的系统。
      

  3.   

    晕,这CSDN还真有问题,自动给我发两份...
      

  4.   

    用四个线程传送一个100M文件的4个块的话,可以让速度达到4M/秒,因为客户端数目比较大,有上千个,如果客户端固定时间内数据发送量过大,会导致服务器累死,任务管理器“联网”在一个客户端全力传送的时候使用率就会达到20%,CPU使用率会达到90%,是否还有其它的协议能够完成传文件的操作?不考虑P2P的情况下。
      

  5.   

    TO unsigned(僵哥): 
    网络带宽问题应该不大,是一个有一百多台机器的局域网。防火墙我已经关闭了,因为手头没有对等网线,所以没有办法做纯粹的测试。按照你的说法,我先建立一个内存缓冲区,将文件读进来,在内存做完压缩后再发出去,速度能够提高不少?我想尽量减少传输次数,这样可以减少服务器的负担。
      

  6.   

    调整结构,关闭所有应用程序,Release程序传输500M文件用了64秒,这个速度基本让人满意,但还是达不到最好。谢谢两位回复,晚上来结贴。