我在我们的千兆networking上进行了一些testing。
当我从Windows 7计算机传输一个大文件(10GB)到另一个时,传输速度不会超过50Mb(从80MB /秒开始,然后减慢到32MB /秒)。
使用从多台计算机同时传输,客户端可以最大化其Gb连接。 同样,当同时使用多个客户端时,源计算机将达到Gb吞吐量。
testing是在非常快的驱动器上完成的(RAID 2中的速龙,RAID megaraid RAID5上的4 WD,SSD,Revodrive X3 …)。 所以他们不是瓶颈。
当我从一个Windows服务器传输时,吞吐量稍微好一点,但远远低于一个gibit LAN的预期的112MB / s。
任何想法 ?
奇怪的步行者之后编辑评论:我们在华硕主板和戴尔工作站上使用集成的网卡(intel)。 交换机是可pipe理的Cisco SG 300-20,SF 300-08和Netgear GS 108。
我猜你正在使用TCP / IP来传输文件,虽然你也忽略了提到你使用的是什么协议。
这个答案会填满一本大书 – 而且有很多可用的。 但其中可能的原因是:
拥塞控制 :您的networking堆栈会抑制吞吐量,在连接的整个生命周期内逐渐提高速率(直到遇到丢包,速率大幅下降)。 使用巨型数据包也有帮助。
窗口大小 :TCP / IP端点只会发送尽可能多的数据,因为它认为远程系统可以缓冲。 接收端必须至less能够cachingRTT的带宽。 虽然RTT在这里很低,但是带宽很大。 当IPV4被devise出来的时候,它并不期望必须应付这么大的缓冲区。 有一个解决scheme是启用窗口缩放。
你的电脑不是专门用来发送数据的 – 它是多任务的。 为了处理数据,NIC生成中断 – 这增加了延迟。 您可以通过在卡上启用缓冲(中断合并)来缓解对良好网卡的影响,
计算机在将数据上传到dataframe并将数据喷入networking中的工作方面仍然有相当大的工作量 – 这一点可以减轻 – 在这种情况下,如果您的操作系统/硬件支持,则使用TCP卸载 。
….在查看以太网和/或用于传输文件的协议的特性之前。
我终于设法获得超过100MB / s的文件传输。
我从外设pipe理器中删除了网卡,并重新安装了它。 我认为英特尔驱动程序参数混乱。 可能是因为尝试设置高MTU。