我在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界面上设置超大文件)。