当我从系统 b ping 系统 a 时,我得到的平均时间为 1.494ms。当我从系统 a ping 系统 b 时,我得到的平均时间为 .896ms。
我进行了一次测试,每 10 秒 ping 一次,持续 1.5 小时。我在两台机器上都进行了测试。然后,我在 6 天内的不同时间和不同长度的时间内多次重新进行了测试。在所有情况下,从 b->a 发出的 ping 都比从 a->b 发出的 ping 好 20% 到 50%
然后我尝试从 a->b 和 b->a 进行文件传输。它们之间的差异不到 5%。
这些是相同的 Linux RedHat 服务器。相同的硬件,相同的软件。
我完全理解,如果我是一个正常、适应良好的人,没有强迫症和肛门癖,在注意到第一个差异后,我会耸耸肩,继续前进。但我对此完全恼火。
到底是什么原因造成的?如果是这种情况我该如何检查?
谢谢
答案1
值得从 A->B 和 B->A 进行跟踪路由。除非您另有了解,否则正向流量完全有可能与反向流量走不同的路径。
考虑到 ICMP 测量往返时间,您可能希望允许这样做,但我在网络中看到过类似的不对称 ping 时间,其中给定方向的流量偏向特定链路。
答案2
我猜a
是b
在不同数据中心?可能是不同的上游运营商?
Ping 通过 ICMP 实现,这是与 TCP 完全不同的流量类型,因此运营商可以免费(并且通常会这样做)降低 ping 流量的优先级。您可能会在测试中看到这种效果。
您可以使用以下工具来确认这一点地铁, 或者传输控制,使用替代方法来模拟 ping。
a
编辑:您是否检查过和之间每个接口的双工设置b
?如果某些东西自动检测失败并默认为半双工,这可能解释了您看到的结果(尽管在双工不匹配的情况下,您不太可能获得可接受的传输速率)