Назад | Перейти на главную страницу

Кэш маршрутов Linux показывает высокий RTT для loopback - это нормально?

Вот части кеша маршрутов с трех разных серверов, которые НЕ под большой нагрузкой.

# 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

Почему rtt может быть таким высоким и таким шумным (rttvar тоже довольно высокий)? Как я могу интерпретировать эти ценности?

Значения ниже 200 мс (TCP_RTO_MIN) для RTT не имеют смысла. Значения ниже 250 мс для rttvar не имеют смысла (потому что у другой стороны может не быть достаточно точных таймеров). Измерения 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.