netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Chris Snook <csnook@redhat.com>
To: David Miller <davem@davemloft.net>
Cc: rick.jones2@hp.com, netdev@vger.kernel.org
Subject: Re: RFC: Nagle latency tuning
Date: Tue, 09 Sep 2008 01:56:12 -0400	[thread overview]
Message-ID: <48C60FFC.8090109@redhat.com> (raw)
In-Reply-To: <20080908.221742.02572583.davem@davemloft.net>

David Miller wrote:
> From: Chris Snook <csnook@redhat.com>
> Date: Tue, 09 Sep 2008 01:10:05 -0400
> 
>> This is open to debate, but there are certainly a great many apps
>> doing a great deal of very important business that are subject to
>> this problem to some degree.
> 
> Let's be frank and be honest that we're talking about message passing
> financial service applications.

Mostly.

> And I specifically know that the problem they run into is that the
> congestion window doesn't open up because of Nagle _AND_ the fact that
> congestion control is done using packet counts rather that data byte
> totals.  So if you send lots of small stuff, the window doesn't open.
> Nagle just makes this problem worse, rather than create it.
> 
> And we have a workaround for them, which is a combination of the
> tcp_slow_start_after_idle sysctl in combination with route metrics
> specifying the initial congestion window value to use.
> 
> I specifically added that sysctl for this specific situation.

That's not the problem I'm talking about here.  The problem I'm seeing 
is that if your burst of messages is too small to fill the MTU, the 
network stack will just sit there and stare at you for precisely 40 ms 
(an eternity for a financial app) before transmitting.  Andi may be 
correct that it's actually the delayed ACK we're seeing, but I can't 
figure out where that 40 ms magic number is coming from.

The easiest way to see the problem is to open a TCP socket to an echo 
daemon on loopback, make a bunch of small writes totaling less than your 
loopback MTU (accounting for overhead), and see how long it takes to get 
your echoes.  You can probably do this with netcat, though I haven't 
tried.  People don't expect loopback to have 40 ms latency when the box 
is lightly loaded, so they'd really like to tweak that down when it's 
hurting them.

-- Chris

  reply	other threads:[~2008-09-09  5:58 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-08 21:56 RFC: Nagle latency tuning Christopher Snook
2008-09-08 22:39 ` Rick Jones
2008-09-09  5:10   ` Chris Snook
2008-09-09  5:17     ` David Miller
2008-09-09  5:56       ` Chris Snook [this message]
2008-09-09  6:02         ` David Miller
2008-09-09 10:31           ` Mark Brown
2008-09-09 12:05             ` David Miller
2008-09-09 12:09               ` Mark Brown
2008-09-09 12:19                 ` David Miller
2008-09-09  6:22         ` Evgeniy Polyakov
2008-09-09  6:28           ` Chris Snook
2008-09-09 13:00           ` Arnaldo Carvalho de Melo
2008-09-09 14:36     ` Andi Kleen
2008-09-09 18:40       ` Chris Snook
2008-09-09 19:07         ` Andi Kleen
2008-09-09 19:21           ` Arnaldo Carvalho de Melo
2008-09-11  4:08           ` Chris Snook
2008-09-09 19:59         ` David Miller
2008-09-09 20:25           ` Chris Snook
2008-09-22 10:49           ` David Miller
2008-09-22 11:09             ` David Miller
2008-09-22 20:30               ` Andi Kleen
2008-09-22 22:22                 ` Chris Snook
2008-09-22 22:26                   ` David Miller
2008-09-22 23:00                     ` Chris Snook
2008-09-22 23:13                       ` David Miller
2008-09-22 23:24                         ` Andi Kleen
2008-09-22 23:21                           ` David Miller
2008-09-23  0:14                             ` Andi Kleen
2008-09-23  0:33                               ` Rick Jones
2008-09-23  2:12                                 ` Andi Kleen
2008-09-23  1:40                               ` David Miller
2008-09-23  2:23                                 ` Andi Kleen
2008-09-23  2:28                                   ` David Miller
2008-09-23  2:41                                     ` Andi Kleen
2008-09-22 22:47                   ` Rick Jones
2008-09-22 22:57                     ` Chris Snook
2008-09-09 16:33     ` Rick Jones
2008-09-09 16:54       ` Chuck Lever
2008-09-09 17:21         ` Arnaldo Carvalho de Melo
2008-09-09 17:54         ` Rick Jones
2008-09-08 22:55 ` Andi Kleen
2008-09-09  5:22   ` Chris Snook

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=48C60FFC.8090109@redhat.com \
    --to=csnook@redhat.com \
    --cc=davem@davemloft.net \
    --cc=netdev@vger.kernel.org \
    --cc=rick.jones2@hp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).