Gigabit Ethernet Throughput¶
- Table of contents
- Gigabit Ethernet Throughput
The following tests were performed using a Linux PC running the "nttcp" application in daemon mode and having a MitySOM-335x based device connect using its own nttcp application to the test server. The connection between the server and the MitySOM-335x device was a full gigabit link.
NTTCP Setup¶
For the server side we were able to use the servers package manager to setup and install NTTCP.
For the MitySOM-335x we cross-compiled the application to work on our ARM Cortex-A8 CPU. It is attached to this wiki page. The application needs to be copied onto your target 335x SoM. Example test cases of using the nttcp application are shown in the sections below, see -help for details about the options used.
NTTCP Testing¶
Note 1: When viewing the NTTCP results the line labeled "l" is the local device (MitySOM-335x) and the "1" is the remote device (userv1).
Note 2: Changing the -l (length of bufs written to network) setting (default is 4k) to 64k produces an approx 20% increase in throughput. There may be other settings that can lead to even higher throughput (or lower) depending on your specific application.
TCP Transmit and Receive from the MitySOM-335x Device to the Server (userv1)¶
TCP Receive: ~380Mb
TCP Transmit: ~300Mb
root@mityarm-335x:~# ./nttcp -T -r -l64000 userv1 Bytes Real s CPU s Real-MBit/s CPU-MBit/s Calls Real-C/s CPU-C/s l131072000 2.77 2.73 378.2611 384.0938 2056 741.68 753.1 1131072000 2.77 0.05 379.1302 20163.7598 2048 740.49 39382.3 root@mityarm-335x:~# ./nttcp -T -t -l64000 userv1 Bytes Real s CPU s Real-MBit/s CPU-MBit/s Calls Real-C/s CPU-C/s l131072000 3.48 3.41 301.4660 307.5003 2048 588.80 600.6 1131072000 3.48 0.99 301.4568 1061.2462 60871 17499.90 61606.5
UDP Transmit and Receive from the MitySOM-335x Device to the Server (userv1)¶
UDP Receive: TBD
UDP Transmit: ~670Mb
root@mityarm-335x:~# ./nttcp -u -T -r userv1 TBD root@mityarm-335x:~# ./nttcp -u -T -t -l64000 userv1 Bytes Real s CPU s Real-MBit/s CPU-MBit/s Calls Real-C/s CPU-C/s l131072000 1.56 1.54 671.3417 680.8935 2051 1313.13 1331.8 1131072000 1.56 0.10 670.8066 10485.1309 2049 1310.81 20488.8
Iperf Setup¶
For the server side we were able to setup the iperf package
linux ~$ sudo apt-get install iperf linux ~$ iperf -s
Iperf Testing¶
Dev-Kit - 3.2.0-00229-g6c32ff7 720MHz Module (3354-GX-X38-RC)
root@am335x:~# iperf -t 60 -c 10.0.102.122
On the server side
------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ------------------------------------------------------------ [ 4] local 10.0.102.122 port 5001 connected with 10.0.63.70 port 36347 [ ID] Interval Transfer Bandwidth [ 4] 0.0-60.0 sec 2.38 GBytes 341 Mbits/sec [ 5] local 10.0.102.122 port 5001 connected with 10.0.63.70 port 36348 [ 5] 0.0-60.0 sec 2.38 GBytes 341 Mbits/sec [ 4] local 10.0.102.122 port 5001 connected with 10.0.63.70 port 36349 [ 4] 0.0-60.0 sec 2.33 GBytes 334 Mbits/sec [ 5] local 10.0.102.122 port 5001 connected with 10.0.63.70 port 36350 [ 5] 0.0-60.0 sec 2.36 GBytes 338 Mbits/sec [ 4] local 10.0.102.122 port 5001 connected with 10.0.63.70 port 36351 [ 4] 0.0-60.0 sec 2.34 GBytes 334 Mbits/sec [ 5] local 10.0.102.122 port 5001 connected with 10.0.63.70 port 36352 [ 5] 0.0-60.0 sec 2.34 GBytes 336 Mbits/sec
Average Throughput ~337.3Mbits/sec
Dev-Kit - 3.2.0-00229-g6c32ff7 800MHz Module (3352-HX-X47-RI)
root@am335x:~# iperf -t 60 -c 10.0.102.122
On the server side
------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ------------------------------------------------------------ [ 4] local 10.0.102.122 port 5001 connected with 10.0.63.70 port 55217 [ ID] Interval Transfer Bandwidth [ 4] 0.0-60.0 sec 2.57 GBytes 368 Mbits/sec [ 5] local 10.0.102.122 port 5001 connected with 10.0.63.70 port 55218 [ 5] 0.0-60.0 sec 2.57 GBytes 368 Mbits/sec [ 4] local 10.0.102.122 port 5001 connected with 10.0.63.70 port 55219 [ 4] 0.0-60.0 sec 2.56 GBytes 366 Mbits/sec [ 5] local 10.0.102.122 port 5001 connected with 10.0.63.70 port 55220 [ 5] 0.0-60.0 sec 2.55 GBytes 365 Mbits/sec [ 4] local 10.0.102.122 port 5001 connected with 10.0.63.70 port 55221 [ 4] 0.0-60.0 sec 2.55 GBytes 365 Mbits/sec [ 5] local 10.0.102.122 port 5001 connected with 10.0.63.70 port 55222 [ 5] 0.0-60.0 sec 2.56 GBytes 367 Mbits/sec
Average Throughput ~366.5Mbits/sec
Dev-Kit - 3.2.0-00229-g6c32ff7 1GHz Module (3354-IX-X38-RI)
root@am335x:~# iperf -t 60 -c 10.0.102.122
On the server side
------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ------------------------------------------------------------ [ 4] local 10.0.102.122 port 5001 connected with 10.0.63.70 port 35842 [ ID] Interval Transfer Bandwidth [ 4] 0.0-60.0 sec 3.14 GBytes 449 Mbits/sec [ 5] local 10.0.102.122 port 5001 connected with 10.0.63.70 port 35843 [ 5] 0.0-60.0 sec 3.16 GBytes 452 Mbits/sec [ 4] local 10.0.102.122 port 5001 connected with 10.0.63.70 port 35844 [ 4] 0.0-60.0 sec 3.15 GBytes 451 Mbits/sec [ 5] local 10.0.102.122 port 5001 connected with 10.0.63.70 port 35845 [ 5] 0.0-60.0 sec 3.17 GBytes 453 Mbits/sec [ 4] local 10.0.102.122 port 5001 connected with 10.0.63.70 port 35846 [ 4] 0.0-60.0 sec 3.13 GBytes 448 Mbits/sec [ 5] local 10.0.102.122 port 5001 connected with 10.0.63.70 port 35847 [ 5] 0.0-60.0 sec 3.17 GBytes 454 Mbits/sec
Average Throughput ~451.2Mbits/sec
Go to top