From: Rick Jones <rick.jones2@hp.com>
To: Ivan Novick <novickivan@gmail.com>
Cc: Eric Dumazet <eric.dumazet@gmail.com>,
netdev@vger.kernel.org, Tim Heath <theath@greenplum.com>
Subject: Re: Choppy TCP send performance
Date: Fri, 28 May 2010 15:57:02 -0700 [thread overview]
Message-ID: <4C004A3E.3010500@hp.com> (raw)
In-Reply-To: <AANLkTilBPOQIb7ua7hl89_EqH9nZdL0XA9Y9bN7fjEfh@mail.gmail.com>
Ivan Novick wrote:
> On Fri, May 28, 2010 at 3:08 PM, Rick Jones <rick.jones2@hp.com> wrote:
>>Histogram of time spent in send() call.
>>UNIT_USEC : 0: 0: 0: 0: 0: 0: 0: 0: 0: 0
>>TEN_USEC : 0: 0: 0: 0: 0: 0: 0: 0: 0: 0
>>HUNDRED_USEC : 0: 2: 0: 0: 0: 7: 2672: 1831: 19: 1
>>UNIT_MSEC : 0: 21811: 6: 0: 4: 0: 0: 0: 0: 0
>>TEN_MSEC : 0: 1: 0: 0: 0: 0: 0: 0: 0: 0
>>HUNDRED_MSEC : 0: 0: 0: 0: 0: 0: 0: 0: 0: 0
>>UNIT_SEC : 0: 0: 0: 0: 0: 0: 0: 0: 0: 0
>>TEN_SEC : 0: 0: 0: 0: 0: 0: 0: 0: 0: 0
>>
>>>100_SECS: 0
>>
>>HIST_TOTAL: 26354
>>
>
>
> I am not sure i understand your historgram output.
For example, 21811 of the send() calls were 1 <= time < 2 milliseconds. 2672 of
the send calls were 6 <= time < 7 hundred microseconds. Etc etc.
> But what i am
> getting from your message is that my buffer may be too big. If i
> reduce the buffer like you are saying down to 256K send buffer than
> the code that checks if select or send should block:
>
> if ((atomic_read(&sk->sk_wmem_alloc) << 1) <=
> sk->sk_sndbuf
>
> Would only block waiting for space of 128 KB free as compared to 1 Meg
> free in my example.
>
> Therefore reducing the max time for send calls (in theory).
>
> Is this what you are getting at?
Yes.
As for the select/poll stuff, if you have a thread that wants to get to
something else, I would suggest marking the socket non-blocking, trying the
send(), if it completes cool, if not, remember what didn't get sent, do the
other thing(s) and come back. If you find you have time to sit and wait, go
ahead and call select/poll/epoll/whatever.
Or, if you want to make sure you wait in poll/select/whatnot no more than N
units of time, and that length of time is within the abilities of the call, use
the timeout parameter present in those.
rick jones
prev parent reply other threads:[~2010-05-28 22:57 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
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 message]
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=4C004A3E.3010500@hp.com \
--to=rick.jones2@hp.com \
--cc=eric.dumazet@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=novickivan@gmail.com \
--cc=theath@greenplum.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