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

Daniel Sangorrin daniel.sangorrin at toshiba.co.jp
Thu Mar 8 04:45:42 UTC 2018


> -----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.
 
> #### 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).

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

OK.

> 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.

Thanks,
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





More information about the Fuego mailing list