[Fuego] [PATCH 3/3] iperf3: use bps instead of Mbps

Daniel Sangorrin daniel.sangorrin at toshiba.co.jp
Fri Mar 9 06:34:38 UTC 2018


> -----Original Message-----
> From: fuego-bounces at lists.linuxfoundation.org [mailto:fuego-bounces at lists.linuxfoundation.org] On Behalf Of Daniel Sangorrin
> Sent: Thursday, March 08, 2018 1:46 PM
> To: Tim.Bird at sony.com; fuego at lists.linuxfoundation.org
> Subject: Re: [Fuego] [PATCH 3/3] iperf3: use bps instead of Mbps
> 
> > -----Original Message-----
> > From: Tim.Bird at sony.com [mailto:Tim.Bird at sony.com]
> > Sent: Thursday, March 08, 2018 8:37 AM
> > To: daniel.sangorrin at toshiba.co.jp; fuego at lists.linuxfoundation.org
> > Subject: RE: [Fuego] [PATCH 3/3] iperf3: use bps instead of Mbps
> >
> > A couple of issues I saw while testing this:
> >
> > Does the iperf3 server only support one connection at a time?
> > I tried running multiple tests at the same time, and one of them
> > got (from the test console log):
> 
> iperf3 has the -P option for the client to run a test with multiple parallel connections.
> However, it does not support multiple instances of iperf3's client running at the same time.
> # You would need to run it twice on separate ports (-p port)
> There is a wrapper script called bwctl that ensures that only one test is running at a time.
> I will investigate how to use it and see if that solves the problem.

I checked bwctl, but it was too much for our purposes. Instread I have added retry
logic to fuego_test.sh for running iperf3 on multiple boards at the same time.

> 
> > #### doing fuego phase: run ########
> > Using server ip address: 10.0.1.61
> > Starting iperf3 server on localhost (SERVER IP: 10.0.1.61)
> > Starting iperf3 client on the target (CLIENT IP: 10.0.1.91)
> > {
> > 	"start":	{
> > 		"connected":	[],
> > 		"version":	"iperf 3.1.3",
> > 		"system_info":	"Linux m3ulcb 4.9.0-yocto-standard #1 SMP PREEMPT Wed Jul 5 15:05:42 PDT 2017 aarch64"
> > 	},
> > 	"intervals":	[],
> > 	"end":	{
> > 	},
> > 	"error":	"error - unable to connect to server: Connection refused"
> > }
> >
> > The second run, without any contention for the server, ran OK.
> >
> > Also, most of my board fail the test due to very high CPU utilization.
> >
> > What is the expected CPU utilization?
> 
> It depends on the board I guess.
> 
> Beaglebone black: 68.3%
> An intel i7 PC: 10.7%
> Zynq702: 54.2%
> Tegrak1 (jetson): 36.8%
> 
> You can control the amount of bandwidth with the -b option (e.g. -b 100M).

I have changed the default specs to be a bit more lax about the CPU utilization
and allow 100%.

> 
> > It would be nice to see the png even in the failure case, as there might
> > be useful data in it.
> 
> OK.

I added the links to the fail case as well.

> 
> > Overall, patch looks good, but test could use some refinement.
> 
> Thanks. I just found another problem myself.
> I was using the stdout JSON file directly, but sometimes other messages get
> intermingled and the parser gives a "can't decode JSON" error. I will fix this
> and send you another patch.

This should be fixed in my latest patches. They are on my git repository
as well for your convenience.

Daniel
 
> >
> > Thanks,
> >  -- Tim
> >
> > > -----Original Message-----
> > > From: Daniel Sangorrin
> > > The -f/--format is not being used on the JSON output report.
> > > For that reason, I decided to use bps for now and open
> > > an issue upstream:
> > > https://github.com/esnet/iperf/issues/709
> > >
> > > Signed-off-by: Daniel Sangorrin <daniel.sangorrin at toshiba.co.jp>
> > > ---
> > >  engine/tests/Benchmark.iperf3/fuego_test.sh  | 2 +-
> > >  engine/tests/Benchmark.iperf3/parser.py      | 2 +-
> > >  engine/tests/Benchmark.iperf3/reference.json | 6 +++---
> > >  3 files changed, 5 insertions(+), 5 deletions(-)
> > >
> > > diff --git a/engine/tests/Benchmark.iperf3/fuego_test.sh
> > > b/engine/tests/Benchmark.iperf3/fuego_test.sh
> > > index 09eac86..9f10743 100755
> > > --- a/engine/tests/Benchmark.iperf3/fuego_test.sh
> > > +++ b/engine/tests/Benchmark.iperf3/fuego_test.sh
> > > @@ -26,7 +26,7 @@ function test_run {
> > >      if [ "$ROUTE" = "local" ]; then
> > >          echo "Starting iperf3 server on localhost (SERVER IP:
> > > $IPERF3_SERVER_IP)"
> > >          killall iperf3 2> /dev/null || true
> > > -        iperf3 -V -s -D -f M $BENCHMARK_IPERF3_SERVER_PARAMS
> > > +        iperf3 -V -s -D $BENCHMARK_IPERF3_SERVER_PARAMS
> > >      fi
> > >
> > >      echo "Starting iperf3 client on the target (CLIENT IP: $IPADDR)"
> > > diff --git a/engine/tests/Benchmark.iperf3/parser.py
> > > b/engine/tests/Benchmark.iperf3/parser.py
> > > index 1097803..a91b88a 100755
> > > --- a/engine/tests/Benchmark.iperf3/parser.py
> > > +++ b/engine/tests/Benchmark.iperf3/parser.py
> > > @@ -51,7 +51,7 @@ with open(plib.TEST_LOG) as f:
> > >      plt.plot(time, bits_per_second)
> > >      plt.title('iperf3 client results')
> > >      plt.xlabel('time (s)')
> > > -    plt.ylabel('Mbps')
> > > +    plt.ylabel('Bits per second (bps)')
> > >      fig.savefig(os.environ['LOGDIR'] + '/iperf3.png')
> > >
> > >  sys.exit(plib.process(measurements))
> > > diff --git a/engine/tests/Benchmark.iperf3/reference.json
> > > b/engine/tests/Benchmark.iperf3/reference.json
> > > index 930a94d..f10dc3a 100644
> > > --- a/engine/tests/Benchmark.iperf3/reference.json
> > > +++ b/engine/tests/Benchmark.iperf3/reference.json
> > > @@ -8,7 +8,7 @@
> > >                      "measurements":[
> > >                          {
> > >                              "name":"bits_per_second",
> > > -                            "unit":"Mbps"
> > > +                            "unit":"bps"
> > >                          },
> > >                          {
> > >                              "name":"retransmits",
> > > @@ -21,7 +21,7 @@
> > >                      "measurements":[
> > >                          {
> > >                              "name":"bits_per_second",
> > > -                            "unit":"Mbps"
> > > +                            "unit":"bps"
> > >                          }
> > >                      ]
> > >                  },
> > > @@ -30,7 +30,7 @@
> > >                      "measurements":[
> > >                          {
> > >                              "name":"bits_per_second",
> > > -                            "unit":"Mbps"
> > > +                            "unit":"bps"
> > >                          },
> > >                          {
> > >                              "name":"jitter_ms",
> > > --
> > > 2.7.4
> > >
> > >
> > > _______________________________________________
> > > Fuego mailing list
> > > Fuego at lists.linuxfoundation.org
> > > https://lists.linuxfoundation.org/mailman/listinfo/fuego
> 
> 
> 
> _______________________________________________
> Fuego mailing list
> Fuego at lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/fuego





More information about the Fuego mailing list