大数据传输中的网络性能

大数据传输中的网络性能

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

我在每个系统上启动了 RIP。

目标系统:nc -l -p 9000 |pv|dd of=/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 of=/dev/hdc”,结果速度高达……10 MB/s。速度在 8 MB/s 和 12 MB/s 之间剧烈波动。

所以...我认为是硬盘的性能太差了...我已经习惯了网络成为瓶颈,所以我觉得磁盘是问题所在很奇怪!

答案1

大部分缓慢是由于 HD 瓶颈造成的。在完全空闲的磁盘/系统/网络上,普通 HD 会通过网络推送 40-50mb 的数据。将 dd 的开销添加到简单的 tcp netcat 管道中,该管道根本没有针对网络流量进行优化,速度就会开始大幅下降。

大部分减速都来自 TCP 窗口大小。数据包通过后必须等待回复才能发送下一个数据包。通常内部网络的延迟非常低,以至于没有人会注意到这些。当您以非网络优化的方式进行转储时,窗口开始到处乱窜。一个很好的例子是 Vistas 在 SP1 之前的版本中的网络文件复制,当 TCP 窗口调整出现严重错误时,传输速度低于每秒 100kb。

另外,作为参考,我这里有两个盒子,它们通过网络持续以每秒 60-80 兆的速度向其他盒子推送数据。它们确实有专用网卡、RAID 10 和一堆 10000RPM SAS 驱动器来提供这种速度。

答案2

dd if=/dev/zero of=/dev/hda 目的地和 源上给出的 dd if=/dev/hda of=/dev/null 较低值将为您提供最佳情况。

如果你有空闲的 CPU,请考虑使用 gzip -fast

值得考虑设置巨型数据包(较大的 mtu )

答案3

我期望速度更接近 20 MB/s,您使用的是 cat 6 / 5e 电缆吗?

我还将运行 iostat(sysstat 包的一部分),看看 iostat 是否认为驱动器的利用率达到 100%:

iostat -c 2 -x

以下是 Tom's Hardware 撰写的一篇有关千兆网络的精彩文章:千兆以太网:伙计,我的带宽在哪里?

答案4

我的速度是 12MB/秒,但以前速度要慢得多 - 我遇到的问题是驱动器。我使用的是一台劣质的廉价戴尔“存储服务器”,带有一张糟糕的 RAID 卡。废弃 RAID,用 JBOD 配置替换会产生很大的不同,即使我随后将软件 RAID5 放在首位。

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

相关内容