From: Rick Jones <rick.jones2@hp.com>
To: Jean-Michel Hautbois <jhautbois@gmail.com>
Cc: Eric Dumazet <eric.dumazet@gmail.com>, netdev@vger.kernel.org
Subject: Re: TCP communication for raw image transmission
Date: Tue, 03 Jan 2012 14:35:39 -0800 [thread overview]
Message-ID: <4F0382BB.5060601@hp.com> (raw)
In-Reply-To: <1325523137.18116.11.camel@edumazet-HP-Compaq-6005-Pro-SFF-PC>
On 01/02/2012 08:52 AM, Eric Dumazet wrote:
> Le lundi 02 janvier 2012 à 17:40 +0100, Jean-Michel Hautbois a écrit :
>
>> Mmmh, using netperf you would like to know what the client (my ARM
>> board) can do ?
>> How would you test it ? I can have an ARM board on one side, and the
>> x86 on the other...
>>
>
> x86> netserver&
> arm> netperf -H<arm_ip_address> -l 60 -t TCP_STREAM
>
> 1) check cpu usage on<arm> while test is running
> (for example : vmstat 1 )
> 2) check bandwith of test run
The "&" at the end of the netserver command is (should be) redundant -
netserver will by default daemonize itself.
I would suggest amending the netperf command line to something more like:
netperf -H <x86IP> -c -l 60 -t TCP_STREAM -- -m <dataofoneline> -D
Which will cause netperf to make "send" calls of <dataofoneline> bytes
(substitute dataoftwolines if you like).
The -D is to disable Nagle, which you will need to do if you really
really want to have only one line of the picture per TCP segment. Even
then though, the streaming nature of TCP means you don't "really" know
that it will go out that way onto the network. Otherwise, leave it off
and TCP will attempt to aggregate the sends into maximum segment sized
segments.
The -c is to get netperf to report CPU utilization for the local/netperf
side.
As Eric suggests, you really should just hand as much data to TCP at one
time as you reasonably can within the constraints of the rest of your
application
Skipping ahead a little, on the netperf side at least you might be well
served to do:
netstat -s > before
netperf ....
netstat -s > after
beforeafter before after > delta
and then run "before" and "after" through "beforeafter" from
ftp://ftp.cup.hp.com/dist/networking/tools or something similar - I
think someone (here on netdev?) created a more robust version at some
point. Alas, beforeafter will sometimes get confused if a new statistic
appears in after that was not present in before - the utility was
initially developed on HP-UX, the netstat of which does not have the
"only display non-zero values" mindset.
One other thing - your 100 Mbit/s link - is that full duplex or half?
If half you may need to be concerned with "capture effect." Briefly, it
was a CSMA/CD behaviour which emerged once systems were fast enough to
saturate the Ethernet link - the transmitting station would "capture"
the wire (half-duplex) and the receiving station, which was still trying
to transmit ACKs would end-up backing-off (at the PHY/data link). Then
the transmitter would stop transmitting, having run-out of window, but
the receiver's NIC would still be backed-off and so the link would go
idle. The workaround was to either have a rather large or rather small
(8KB, IIRC but best do some web searchings - this topic goes back to the
1990s) TCP window.
happy benchmarking,
rick jones
next prev parent reply other threads:[~2012-01-03 22:35 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-02 15:21 TCP communication for raw image transmission Jean-Michel Hautbois
2012-01-02 15:59 ` Eric Dumazet
2012-01-02 16:08 ` Jean-Michel Hautbois
2012-01-02 16:29 ` Eric Dumazet
2012-01-02 16:40 ` Jean-Michel Hautbois
2012-01-02 16:52 ` Eric Dumazet
2012-01-02 16:52 ` Eric Dumazet
2012-01-02 17:04 ` Jean-Michel Hautbois
2012-01-02 17:20 ` Jean-Michel Hautbois
2012-01-02 17:41 ` Eric Dumazet
2012-01-02 18:00 ` Jean-Michel Hautbois
2012-01-02 18:02 ` Jean-Michel Hautbois
2012-01-03 7:36 ` Jean-Michel Hautbois
2012-01-03 8:06 ` Eric Dumazet
2012-01-05 8:50 ` Jean-Michel Hautbois
2012-01-03 22:35 ` Rick Jones [this message]
2012-01-05 9:13 ` Jean-Michel Hautbois
2012-01-05 9:40 ` Eric Dumazet
2012-01-05 9:48 ` Jean-Michel Hautbois
2012-01-05 9:55 ` Eric Dumazet
2012-01-05 9:57 ` Jean-Michel Hautbois
2012-01-05 10:04 ` Eric Dumazet
2012-01-05 18:41 ` Rick Jones
2012-01-05 18:53 ` Eric Dumazet
2012-01-05 19:26 ` Rick Jones
2012-01-05 18:32 ` Rick Jones
2012-01-05 9:49 ` Eric Dumazet
2012-01-04 9:57 ` David Laight
2012-01-04 11:16 ` Jean-Michel Hautbois
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=4F0382BB.5060601@hp.com \
--to=rick.jones2@hp.com \
--cc=eric.dumazet@gmail.com \
--cc=jhautbois@gmail.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).