以下是三个不同服务器的pathcaching部分,这些服务器不是高负载的。
# ip route show cache | grep -B 1 rtt local 127.0.0.1 from 127.0.0.1 dev lo cache <local> mtu 16436 rtt 106ms rttvar 155ms cwnd 7 advmss 16396 hoplimit 64 ... local 127.0.0.1 from 127.0.0.1 dev lo cache <local> mtu 16436 rtt 145ms rttvar 130ms cwnd 6 advmss 16396 hoplimit 64 ... local 127.0.0.1 from 127.0.0.1 dev lo cache <local> mtu 16436 rtt 172ms rttvar 205ms cwnd 5 advmss 16396 hoplimit 64
为什么可能会这么高,如此嘈杂(rttvar也相当高)? 我怎样才能解释这些价值?
低于200毫秒的值(TCP_RTO_MIN)对于RTT是毫无意义的。 rttvar的值低于250毫秒是没有意义的(因为另一方可能没有足够准确的定时器)。 RTT / RTTVAR测量在这种快速接口上是无关紧要的。
从include/net/tcp.h
:
#define TCP_RTO_MIN ((unsigned)(HZ/5))
从net/ipv4/tcp_input.c
:
* 1. If rtt variance happened to be less 50msec, it is hallucination. * It cannot be less due to utterly erratic ACK generation made * at least by solaris and freebsd.