1 Gig LAN 传输速度为 12 MB/s

1 Gig LAN 传输速度为 12 MB/s

我正在同一网络上的 2 台 Linux 服务器之间传输文件。这是两台服务器的网络配置:

服务器1:

eth0 的设置:

    Supported ports: [ TP ]
    Supported link modes:   10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
    Supported pause frame use: No
    Supports auto-negotiation: Yes
    Advertised link modes:  1000baseT/Full
    Advertised pause frame use: No
    Advertised auto-negotiation: Yes
    Speed: 1000Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 1
    Transceiver: internal
    Auto-negotiation: on
    MDI-X: on
    Supports Wake-on: pumbag
    Wake-on: g
    Current message level: 0x00000001 (1)
                           drv
    Link detected: yes

服务器2:

eth0 的设置:支持的端口:[ TP ]

    Supported link modes:   10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
    Supported pause frame use: Symmetric
    Supports auto-negotiation: Yes
    Advertised link modes:  10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
    Advertised pause frame use: Symmetric
    Advertised auto-negotiation: Yes
    Speed: 1000Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 1
    Transceiver: internal
    Auto-negotiation: on
    MDI-X: Unknown
    Supports Wake-on: pumbg
    Wake-on: g
    Current message level: 0x00000007 (7)
                           drv probe link
    Link detected: yes

两台服务器都连接到同一个交换机,该交换机支持 1 Gig,带有 Cat5e/Cat6。

我真的不知道是什么原因导致这种速度。我读到过,也许“自动协商”配置可以做到这一点?那么我能以某种方式检查协商速度是多少吗?

答案1

除了 iwaseatenbyagrue 的回答之外,这里可能发生了几件事,密切关注你正在测试的内容非常重要。

首先,第一次运行rsync涉及目标上的写入开销。当复制少量大文件时,这相当便宜,假设您有还不错的光盘,尽管它可能会使速度比您的网络建议的要慢。当复制大量小文件时,这可能会极其成本高昂:每次将文件放到磁盘上时,必须更新 inode、更新目录文件等等,这会带来延迟。这些 FS 操作所需的时间会占用可用于复制更多文件内容的时间,因此您的吞吐量会急剧下降。

其次,-h业务。当您中途终止 rsync 然后重新运行它时,它rsync会再次从头开始,但由于 rsync 能够识别目标端已存在的内容并且不会重新复制它,因此吞吐量会明显好得多,至少在它运行超过第一次停止的点之前。因此,第一次和第二次运行 rsync其余无任何变化性能可能会有很大差异。请确保您正在比较的是同类产品,然后再担心第二个苹果的颜色很奇怪,例如橙色。

您还会发现,如果要复制的文件集包含小文件和大文件,则 rsync 的性能会根据文件集的复制程度而有所不同;请参阅上文。

结果:如果你想测试你的网络,就只测试你的网络,不要混淆其他问题,选择一个也测试你的文件系统、底层存储设备等的测试。 netcat这是一个非常好的工具,可以从网络测试中删除尽可能多的无关材料,因为你可以在/dev/urandom一端给它提供不可压缩的数据,然后以很少的工具开销(无压缩、加密等)将其推送到网络上。

答案2

这不是一个完整的答案,但您可能希望单独验证您的网络吞吐量,而不是使用网络+磁盘吞吐量(+可能的其他因素,例如如果通过 SSH 使用 rsync 则加密开销、如果使用压缩则压缩开销等)。

防火墙是一个很好的工具,可以让你确认你的网络是如何运行的,而不是你的端到端吞吐量是如何运行的。

我怀疑在您的情况下(特别是基于您提到的 rsync 运行之间的差异),您的网络吞吐量最终会大致达到应有的水平,这往往表明网络不是您的瓶颈 - 但这纯粹是猜测。

相关内容