在大量数据传输中的networking性能

我在Netcat上使用DD将硬盘从一个系统复制到另一个系统,直接克隆。

我在每个系统上启动RIP。

目标系统:nc -l -p 9000 | pv | dd = / dev / hda源系统:dd if = / dev / hda | pv | nc 9000 -q 10

转移似乎徘徊在10或11 MB / s左右,连发出现在18附近。 这两个系统连接到一个千兆交换机。 Ethtool eth0上都显示:

Settings for eth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on Supports Wake-on: umbg Wake-on: g Current message level: 0x00000007 (7) Link detected: yes 

我想我可能会混淆一些数字的传输速率,但这是一个预期的数据传输速度?

编辑:我只是试图使用两个不同的电缆标记为5e兼容,并使用交叉连接器直接链接两个系统。 虽然ethtool仍然说他们的速度是1000Mb / s,但是传输速率似乎只比以前略高。 无论是驱动器是勉强的,网卡是粗糙的,或处理器必须瓶颈,我猜。

EDIT2我只是尝试从一个单元需要克隆到物理连接到主克隆的第二个硬盘。 最初一个IDE通道去了HD,另一个去了CD-ROM。 我把主硬盘连接到CD-ROM的同一个通道,所以它们应该是/ dev / hda和/ dev / hdb。 我把CD上的电缆连接到“空白板”,所以它应该是/ dev / hdc。

我重新启动并运行“dd if = / dev / hda | pv | dd = / dev / hdc”,我得到了一个高达10 MB /秒。 它在8 MB / s和12之间波动很大。

所以…我认为这是硬盘给垃圾表演…我只是习惯于networking成为一个瓶颈,我认为磁盘是奇怪的问题!

大部分缓慢来自高清瓶颈。 您的平均HD将在完全空闲的磁盘/系统/networking上通过networking推送40-50mb。 将dd的开销join到一个简单的tcp netcatpipe道中,这个pipe道对networkingstream量没有任何优化,速度开始下降。

大部分减速来自TCP窗口大小。 数据包经过并且在发送下一个之前必须等待答复。 内部networking通常具有如此低的延迟,从来没有人注意到这些。 当你以非networking优化的方式转储数据时,窗口就会遍布整个地方。 最好的例子是SP1版本的Vistasnetworking文件拷贝,当TCP窗口调整得到非常错误时,每秒传输速度小于100kb。

另外作为参考,我在这里有两个盒子,通过他们的networking一直推动60-80兆一秒,以方便其他。 他们有专用网卡,RAID 10和一堆10000RPM SAS驱动器来提供这种速度。

在目的地上dd if=/dev/hda of=/dev/null将会给你一个最好的情况。

如果你有备用的CPU认为gzip – 快

这是值得conisdering设置巨大的数据包(大mtu)

我希望更像20 MB / s,你使用猫6 / 5e布线?

我也会运行iostat(sysstat包的一部分),也许看到iostat是否认为驱动器的利用率是100%

 iostat -c 2 -x 

千兆以太网:老兄,我的带宽在哪里?

通过压缩/解压缩来pipe理数据stream,以某些CPU为代价提高整体吞吐量。

我得到12MB /秒,但是用来减less很多 – 我的问题是驱动器。 我正在使用一个可怕的RAID卡的令人讨厌的戴尔“存储服务器”。 废除RAID,replaceJBODconfiguration会有很大的不同,即使我把软件RAID5放在最前面。

我还会考虑在交换机上设置巨型帧,这将大大提高吞吐量。 (暂时使用ifconfig eth0 mtu 9000 ,或者将MTU 9000添加到您的ifcfg文件中,以便在您的linux界面上设置超大文件)。