netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: John Heffner <jheffner@psc.edu>
To: Robert Iakobashvili <coroberti@gmail.com>
Cc: David Miller <davem@davemloft.net>,
	netdev@vger.kernel.org, greearb@candelatech.com
Subject: Re: TCP connection stops after high load.
Date: Mon, 16 Apr 2007 14:07:55 -0400	[thread overview]
Message-ID: <4623BB7B.3010705@psc.edu> (raw)
In-Reply-To: <7e63f56c0704150849r5b019962v296b4266021a6fe1@mail.gmail.com>

Robert Iakobashvili wrote:
> Hi John,
> 
> On 4/15/07, John Heffner <jheffner@psc.edu> wrote:
>> Robert Iakobashvili wrote:
>> > Vanilla 2.6.18.3 works for me perfectly, whereas 2.6.19.5 and
>> > 2.6.20.6 do not.
>> >
>> > Looking into the tcp /proc entries of 2.6.18.3 versus 2.6.19.5
>> > tcp_rmem and tcp_wmem are the same, whereas tcp_mem are
>> > much different:
>> >
>> > kernel                  tcp_mem
>> > ---------------------------------------
>> > 2.6.18.3    12288 16384 24576
>> > 2.6.19.5      3072    4096   6144
> 
>> Another patch that went in right around that time:
>>
>> commit 52bf376c63eebe72e862a1a6e713976b038c3f50
>> Author: John Heffner <jheffner@psc.edu>
>> Date:   Tue Nov 14 20:25:17 2006 -0800
>>
>>      [TCP]: Fix up sysctl_tcp_mem initialization.
>> (This has been changed again for 2.6.21.)
>>
>> In the dmesg, there should be some messages like this:
>> IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
>> TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
>> TCP bind hash table entries: 65536 (order: 6, 262144 bytes)
>> TCP: Hash tables configured (established 131072 bind 65536)
>>
>> What do yours say?
> 
> For the 2.6.19.5, where we have this problem:
>> From dmsg:
> IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
> TCP established hash table entries: 16384 (order: 5, 131072 bytes)
> TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
> 
> #cat /proc/sys/net/ipv4/tcp_mem
> 3072    4096    6144
> 
> MemTotal:       484368 kB
> CONFIG_HIGHMEM4G=y


Yes, this difference is caused by the commit above.  The old way didn't 
really make a lot of sense, since it was different based on smp/non-smp 
and page size, and had large discontinuities at 512MB and every power of 
two.  It was hard to make the limit never larger than the memory pool 
but never too small either, when based on the hash table size.

The current net-2.6 (2.6.21) has a redesigned tcp_mem initialization 
that should give you more appropriate values, something like 45408 60546 
90816.  For reference:

Commit: 53cdcc04c1e85d4e423b2822b66149b6f2e52c2c
Author: John Heffner <jheffner@psc.edu> Fri, 16 Mar 2007 15:04:03 -0700

     [TCP]: Fix tcp_mem[] initialization.

     Change tcp_mem initialization function.  The fraction of total memory
     is now a continuous function of memory size, and independent of page
     size.

     Signed-off-by: John Heffner <jheffner@psc.edu>
     Signed-off-by: David S. Miller <davem@davemloft.net>

Thanks,
   -John

  reply	other threads:[~2007-04-16 18:07 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-12 21:11 TCP connection stops after high load Robert Iakobashvili
2007-04-12 21:15 ` David Miller
2007-04-15 12:14   ` Robert Iakobashvili
2007-04-15 15:31     ` John Heffner
2007-04-15 15:49       ` Robert Iakobashvili
2007-04-16 18:07         ` John Heffner [this message]
2007-04-16 18:51           ` Robert Iakobashvili
2007-04-16 19:11             ` John Heffner
2007-04-16 19:17               ` David Miller
2007-04-16 19:15             ` David Miller
2007-04-17  7:58               ` Robert Iakobashvili
2007-04-17 19:39                 ` David Miller
2007-04-17 19:47                   ` John Heffner
2007-04-17 19:51                     ` David Miller
2007-04-17 19:58                   ` Robert Iakobashvili
2007-04-15 13:52   ` Robert Iakobashvili
  -- strict thread matches above, loose matches on Subject: below --
2007-04-11 18:50 Ben Greear
2007-04-11 20:26 ` Ben Greear
2007-04-11 20:48   ` David Miller
2007-04-11 21:06     ` Ben Greear
2007-04-11 21:11       ` David Miller
2007-04-11 21:31         ` Ben Greear
2007-04-11 21:39           ` David Miller
2007-04-12  2:44           ` SANGTAE HA
2007-04-12  1:06       ` Benjamin LaHaise
2007-04-12 14:48       ` Andi Kleen
2007-04-12 17:59         ` Ben Greear
2007-04-12 18:19           ` Eric Dumazet
2007-04-12 19:12             ` Ben Greear
2007-04-12 20:41               ` Eric Dumazet
2007-04-12 21:36                 ` Ben Greear
2007-04-13  7:09                   ` Evgeniy Polyakov
2007-04-13 16:42                     ` Ben Greear
2007-04-13 16:10             ` Daniel Schaffrath
2007-04-13 16:41               ` Eric Dumazet
2007-04-14  4:21                 ` Herbert Xu
2007-04-14  4:25                   ` David Miller
2007-04-14  5:31                   ` Eric Dumazet
2007-04-14  5:37                     ` David Miller
2007-04-11 20:41 ` David Miller
2007-04-12  6:12 ` Ilpo Järvinen

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=4623BB7B.3010705@psc.edu \
    --to=jheffner@psc.edu \
    --cc=coroberti@gmail.com \
    --cc=davem@davemloft.net \
    --cc=greearb@candelatech.com \
    --cc=netdev@vger.kernel.org \
    /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).