Subject: Re: seeing strange values for tcp sk_rmem_alloc

From: Eric Dumazet <[email-masked]>
Date: Thu, 03 Dec 2009 18:04:14 +0100

Chris Friesen a écrit :
> On 12/01/2009 11:52 AM, Eric Dumazet wrote:
> 
>> But be careful of sender tcp stack : It might be delayed a bit,
>> because it waits for receiver to open its window (slow start)
>>
>> You probably need something like
>>
>> while (1) {
>> 	send(fd1, buffer, 2Kbytes);
>> 	sleep(2); // let tcp stack flush its write buffers
>> 	display_sk_rmem_alloc(fd2);
>> }
> 
> Ah, that makes a difference.  But the results (see below) still look
> odd.  For this test, /proc/sys/net/core/rmem_default is 118784.  For
> some reason sk_rmem_alloc gets bumped by 16KB when I only send 2KB of
> data, and it drops back down again every 6 packets.
> 
> Chris

Might be because you use loopback device ? ;)

ifconfig lo | grep MTU
          UP LOOPBACK RUNNING  MTU:16436  Metric:1

After a while (when hitting rcvbuf limit), tcp stack performs skb collapses, to reduce ram usage.