我通过在网关的入口和出口 NIC 中使用 tcpdump 捕获数据包来测量网关内数据包面临的延迟或延迟。我从源主机发送大约 800,000 个数据包到通过两个 GW 连接的目标主机(即源主机=>GW1=>GW2=>目标主机)。我通过从出口 NIC 上的时间戳减去入口 NIC 的时间戳来测量每个 GW 的延迟。我发现延迟从 2 到 3000 微秒不断增加。当我交换网卡时,延迟会增加一段时间,然后急剧减少并再次增加。
令人惊讶的是,即使 GW 上的延迟增加,当所有节点都有 1000Mbps NIC 时,端到端吞吐量仍然保持在 900Mbps 左右。
请让我知道延迟的这种变化是如何发生的?或者 tcpdump 时间戳是如何在出口网卡中延迟的?有没有办法让时间戳以纳秒为单位?
感谢您的回复。
基础设施的性能不是问题。在这里,我们通过吞吐量来衡量性能,发现即使 GW 上的延迟从 2 微秒增加到 3000 微秒,吞吐量也不会降低。
更多信息:我一直在测量 GW 扮演不同角色时的延迟,例如 IP 路由器、GRE 隧道点或 NAT。当它作为 IP 路由器工作时,GW 内的数据包所经历的延迟几乎 <=4 微秒。然而,当 GW 用作 GRE 隧道点时,延迟会在几秒钟内连续增加 1000 倍。这是我测量的问题。而且由于端到端吞吐量没有变化,我猜这个延迟不是真实的,它可能是由 tcpdump 的数据包捕获和时间戳功能引入的。