[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CADVnQykLPj-gQ0=pNTJdx3JrjiAfnF4x77Yf-0cGM24veW9BRQ@mail.gmail.com>
Date: Wed, 6 May 2015 18:15:26 -0400
From: Neal Cardwell <ncardwell@...gle.com>
To: Eric Dumazet <edumazet@...gle.com>
Cc: "David S. Miller" <davem@...emloft.net>,
netdev <netdev@...r.kernel.org>,
Yuchung Cheng <ycheng@...gle.com>,
Nandita Dukkipati <nanditad@...gle.com>,
Eric Dumazet <eric.dumazet@...il.com>
Subject: Re: [PATCH v2 net-next 1/2] tcp: adjust window probe timers to safer values
On Wed, May 6, 2015 at 5:26 PM, Eric Dumazet <edumazet@...gle.com> wrote:
> With the advent of small rto timers in datacenter TCP,
> (ip route ... rto_min x), the following can happen :
>
> 1) Qdisc is full, transmit fails.
>
> TCP sets a timer based on icsk_rto to retry the transmit, without
> exponential backoff.
> With low icsk_rto, and lot of sockets, all cpus are servicing timer
> interrupts like crazy.
> Intent of the code was to retry with a timer between 200 (TCP_RTO_MIN)
> and 500ms (TCP_RESOURCE_PROBE_INTERVAL)
>
> 2) Receivers can send zero windows if they don't drain their receive queue.
>
> TCP sends zero window probes, based on icsk_rto current value, with
> exponential backoff.
> With /proc/sys/net/ipv4/tcp_retries2 being 15 (or even smaller in
> some cases), sender can abort in less than one or two minutes !
> If receiver stops the sender, it obviously doesn't care of very tight
> rto. Probability of dropping the ACK reopening the window is not
> worth the risk.
>
> Lets change the base timer to be at least 200ms (TCP_RTO_MIN) for these
> events (but not normal RTO based retransmits)
>
> A followup patch adds a new SNMP counter, as it would have helped a lot
> diagnosing this issue.
>
> Signed-off-by: Eric Dumazet <edumazet@...gle.com>
> Signed-off-by: Yuchung Cheng <ycheng@...gle.com>
Acked-by: Neal Cardwell <ncardwell@...gle.com>
neal
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists