我正在同一网络上的 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 运行之间的差异),您的网络吞吐量最终会大致达到应有的水平,这往往表明网络不是您的瓶颈 - 但这纯粹是猜测。