iPerf3 is a tool for active measurements of the maximum achievable bandwidth on IP networks. It supports tuning of various parameters related to timing, buffers and protocols (TCP, UDP, SCTP with IPv4 and IPv6). For each test it reports the bandwidth, loss, and other parameters.
Command line execution
sed BeagleBoard. This steps should work for any embedded platform. Cross Compile Iperf for ARM $ git clone https://github.com/esnet/iperf.git $ cd iperf/ Assuming toolchain is located at /home/devlab/devlab/linaro/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf $ export PATH=$PATH:/home/devlab/devlab/linaro/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/bin $ mkdir out $ ./configure --host=arm-linux-gnueabihf --prefix=/home/devlab/devlab/iperf/out $ make $ make install * copy ./out/bin/iperf to /usr/local/bin of BeagleBoard(ARM platform) RFS. On linux host $ iperf -s ———————————————————— Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ———————————————————— [ 4] local 192.168.0.200 port 5001 connected with 192.168.0.202 port 51887 connect failed: Connection refused [ ID] Interval Transfer Bandwidth [ 4] 0.0-10.0 sec 222 MBytes 186 Mbits/sec On BeagleBoard root@beagleboard:~# iperf -c 192.168.0.200 -d ———————————————————— Client connecting to 192.168.0.200, TCP port 5001 TCP window size: 35.2 KByte (default) ———————————————————— [ 3] local 192.168.0.202 port 51887 connected with 192.168.0.200 port 5001 ———————————————————— Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ———————————————————— Waiting for server threads to complete. Interrupt again to force quit. [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 222 MBytes 186 Mbits/sec root@beagleboard:~# Reference’s: http://openmaniak.com/iperf.php http://unixfoo.blogspot.com/2009/02/iperf-network-throughput-measurement.htmlRisk level: destructive. Review the command before running it.
Implementation details
In this post, we will demo the steps required for testing network throughput on ARM based BeagleBoard. This steps should work for any embedded platform. Cross Compile Iperf for ARM $ git clone https://github.com/esnet/iperf.git $ cd iperf/ Assuming toolchain is located at /home/devlab/devlab/linaro/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf $ export PATH=$PATH:/home/devlab/devlab/linaro/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/bin $ mkdir out $ ./configure --host=arm-linux-gnueabihf --prefix=/home/devlab/devlab/iperf/out $ make $ make install * copy ./out/bin/iperf to /usr/local/bin of BeagleBoard(ARM platform) RFS. On linux host $ iperf -s ———————————————————— Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ———————————————————— [ 4] local 192.168.0.200 port 5001 connected with 192.168.0.202 port 51887 connect failed: Connection refused [ ID] Interval Transfer Bandwidth [ 4] 0.0-10.0 sec 222 MBytes 186 Mbits/sec On BeagleBoard root@beagleboard:~# iperf -c 192.168.0.200 -d ———————————————————— Client connecting to 192.168.0.200, TCP port 5001 TCP window size: 35.2 KByte (default) ———————————————————— [ 3] local 192.168.0.202 port 51887 connected with 192.168.0.200 port 5001 ———————————————————— Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ———————————————————— Waiting for server threads to complete. Interrupt again to force quit.
Gotchas and common issues
Permission checks - verify user access rights and sudo privileges before executing system-level operations.
Environment configuration - double-check path variables and dependency versions to prevent runtime failures.
Backup safeguards - maintain configuration backups before applying system or database modifications.
Following these steps ensures clean configuration and reliable execution for measure network throughput using iperf.
Comments and corrections