public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
* Choppy TCP send performance
@ 2010-05-28 20:38 Ivan Novick
  2010-05-28 21:16 ` Eric Dumazet
  0 siblings, 1 reply; 8+ messages in thread
From: Ivan Novick @ 2010-05-28 20:38 UTC (permalink / raw)
  To: netdev; +Cc: Tim Heath

Hello,

I am using RHEL5 and have 1 Gigabit NIC cards.

When doing a loop sending 128 KB blocks of data using TCP.  I am using
system tap to debug the performance and finding that:

90% of the send calls take about 100 micro seconds and 10% of the send
calls take about 10 miliseconds.  The average send time is about 1
milisecond

The 10% of the calls taking about 10 milliseconds seem to be
correlated with "sk_stream_wait_memory" calls in the kernel.

sk_stream_wait_memory seems to be called when the send buffer is full
and the next send call does not complete until the send buffer
utilization goes down from 4,194,304 bytes to 2,814,968 bytes.

This implies that the send that blocks on a full send buffer will not
complete until there is 1 meg of free space in the send buffer even
though the send could be accepted into the OS with only 128KB of free
space.

Do you think I am misinterpreting this data or is there a way to even
out the send calls so that they they are more even in duration: approx
1 milisecond per call.  Is there a parameter to reduce how much space
needs to be free in the send buffer before a blocking send call can
complete from user space?

Cheers,
Ivan

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2010-05-28 22:57 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-05-28 20:38 Choppy TCP send performance Ivan Novick
2010-05-28 21:16 ` Eric Dumazet
2010-05-28 21:35   ` Ivan Novick
2010-05-28 22:00     ` Eric Dumazet
2010-05-28 22:23       ` Ivan Novick
2010-05-28 22:08     ` Rick Jones
2010-05-28 22:28       ` Ivan Novick
2010-05-28 22:57         ` Rick Jones

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox