Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 1 Nov 2002 11:04:32 -0500
From:      Fran Lawas-Grodek <Fran.Lawas-Grodek@grc.nasa.gov>
To:        Luigi Rizzo <rizzo@icir.org>
Cc:        Cindy.Tran@grc.nasa.gov, freebsd-net@FreeBSD.ORG, Mark.Allman@grc.nasa.gov
Subject:   Re: Problem in High Speed and Long Delay with FreeBSD
Message-ID:  <20021101110432.D3259@grc.nasa.gov>
In-Reply-To: <20021031150217.A35590@carp.icir.org>; from rizzo@icir.org on Thu, Oct 31, 2002 at 03:02:17PM -0800
References:  <20021031135601.B23802@grc.nasa.gov> <20021031150217.A35590@carp.icir.org>

next in thread | previous in thread | raw e-mail | index | archive | help
These are our sysctl settings:

 kern.ipc.maxsockbuf=4194304
 net.inet.tcp.sendspace=3125000
 net.inet.tcp.recvspace=3125000
 net.inet.ip.intr_queue_maxlen=500
 nmbclusters=32768

After reading your suggestion, we were able to achieve a
slightly better throughput from 32Mbps on the 250ms delayed
network, to 46Mbps overall throughput, by increasing the -l
buffer length from 1024 to 8192 bytes.  Increasing
the above intr_queue_maxlen from the default 50 to 500 also
helped a bit.  Our time sequence plot now shows a sender buffer
window of 1.5MB being used, from the 1MB of the earlier tests.
(BTW, a typo in the my posted ttcp example -- "-b" should
be "-b 3125000", not "-b 312500".)

We still do not understand why we cannot not get a better window
usage of our requested socket buffer of 3MB, a better throughput of
60+Mbps.

Any other thoughts?


Fran Lawas-Grodek
Cindy Tran
NASA Glenn Research Center
________________________________________________________________

Frances J. Lawas-Grodek       |     
NASA Glenn Research Center    |     phone: (216) 433-5052
21000 Brookpark Rd, MS 142-4  |     fax  : (216) 433-8000
Cleveland, Ohio  44135        |     email: fran@grc.nasa.gov
________________________________________________________________


On Thu, Oct 31, 2002 at 03:02:17PM -0800, Luigi Rizzo wrote:
> you might want to have a look at the sysctl variable
> kern.ipc.sockbuf_waste_factor too.
> 
> Remember that memory is charged to socket buffers depending on how
> many clusters are allocated, even if they are not fully used.
> E.g. in your example you are probably doing 1KB writes each of
> which consumes a 2KB cluster plus a 256byte mbuf, so no
> matter what you will never manage to reach more than (roughly)
> a window larger than kern.ipc.maxsockbuf/2.
> 
> The max raw amounf of memory allocated in a socket buffer is
> typically
> 
> 	min( tcp_{send|recv}buf * kern.ipc.sockbuf_waste_factor,
> 		kern.ipc.maxsockbuf)
> 
> and probably you are hitting the roof on the second one.
> 
> 	cheers
> 	luigi

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021101110432.D3259>