Re: Raspberry Pi 3B+ and pitiful network speeds

From: Ronald Klop <ronald-lists_at_klop.ws>
Date: Tue, 22 Jun 2021 13:25:48 UTC
 
Van: MJ <mafsys1234@gmail.com>
Datum: dinsdag, 22 juni 2021 00:24
Aan: Denis Ovsienko <denis@ovsienko.info>, freebsd-arm@freebsd.org
Onderwerp: Re: Raspberry Pi 3B+ and pitiful network speeds
> 
> 
> <snip>>
> 
> * an nc process at each end of the TCP connection
> 
> > * a dd process piped to each nc process to measure the throughput
> > * no filesystem access, hence the dd processes reading from /dev/urandom
> >    (or /dev/zero if you like) and writing to /dev/null
> >
> > Which would be along these lines:
> >
> > # TCP download
> > freebsdrpi$ nc -l 10000 | dd bs=1m of=/dev/null
> > linuxpc$ dd if=/dev/zero bs=1M count=2000 status=progress | \
> > nc freebsdrpi 10000
> > # TCP upload
> > linuxpc$ nc -l 15000 | dd bs=1M of=/dev/null status=progress
> > freebsdrpi$ dd if=/dev/zero bs=1m count=2000 | nc linuxpc 15000
> 
> Thank you for your assistance, Denis. This is a lengthy post.
> 
> 
> Results from FreeBSD 13 headless PC (gateway) to FreeBSD RPI3B+ (rpi3):
> --------------------------------------------
> [TCP DOWNLOAD]
> 
> RPI3B+:
> nc -l 10000 | dd bs=1m of=/dev/null
> 0+342615 records in
> 2000+0 records out
> 2097152000 bytes transferred in 277.126050 secs (7567502 bytes/sec)
> 
> FreeBSD13:
> dd if=/dev/zero bs=1M count=2000 status=progress | nc rpi3 10000
>    2094006272 bytes (2094 MB, 1997 MiB) transferred 265.056s, 7900 kB/s
> 2000+0 records in
> 1747+506 records out
> 2097152000 bytes transferred in 265.354504 secs (7903209 bytes/sec)
> 
> 
> --------------------------------------------
> 
> [TCP UPLOAD]
> RPI3B+:
> 
> dd if=/dev/zero bs=1m count=2000 | nc gateway 15000
> 2000+0 records in
> 2000+0 records out
> 2097152000 bytes transferred in 198.379433 secs (10571418 bytes/sec)
> 
> 
> FreeBSD13:
> nc -l 15000 | dd bs=1M of=/dev/null status=progress
>   2095054848 bytes (2095 MB, 1998 MiB) transferred 200.017s, 10 MB/s
> 0+281264 records in
> 2000+0 records out
> 2097152000 bytes transferred in 203.023846 secs (10329585 bytes/sec)
> 
> <<< The gateway/FreeBSD13 is gigabit capable on the tested card.>>>
> 
> I also tested using iperf:
> 
> Upload from FreeBSD PC to RPI3B+:
> 
> iperf -c rpi3 -w 2m -t 30s -i 1
> ------------------------------------------------------------
> Client connecting to rpi3, TCP port 5001
> TCP window size: 32.8 KByte (WARNING: requested 1.91 MByte)
> ------------------------------------------------------------
> [  1] local 192.168.1.106 port 29887 connected with 192.168.1.24 port 5001
> [ ID] Interval       Transfer     Bandwidth
> [  1] 0.00-1.00 sec  7.75 MBytes  65.0 Mbits/sec
> [  1] 1.00-2.00 sec  8.12 MBytes  68.2 Mbits/sec
> [  1] 2.00-3.00 sec  10.5 MBytes  88.1 Mbits/sec
> [  1] 3.00-4.00 sec  10.4 MBytes  87.0 Mbits/sec
> [  1] 4.00-5.00 sec  10.2 MBytes  86.0 Mbits/sec
> [  1] 5.00-6.00 sec  10.2 MBytes  86.0 Mbits/sec
> [  1] 6.00-7.00 sec  6.00 MBytes  50.3 Mbits/sec
> [  1] 7.00-8.00 sec  9.75 MBytes  81.8 Mbits/sec
> [  1] 8.00-9.00 sec  8.88 MBytes  74.4 Mbits/sec
> [  1] 9.00-10.00 sec  8.38 MBytes  70.3 Mbits/sec
> [  1] 10.00-11.00 sec  10.0 MBytes  83.9 Mbits/sec
> [  1] 11.00-12.00 sec  9.12 MBytes  76.5 Mbits/sec
> [  1] 12.00-13.00 sec  9.12 MBytes  76.5 Mbits/sec
> [  1] 13.00-14.00 sec  10.1 MBytes  84.9 Mbits/sec
> [  1] 14.00-15.00 sec  5.38 MBytes  45.1 Mbits/sec
> [  1] 15.00-16.00 sec  7.50 MBytes  62.9 Mbits/sec
> [  1] 16.00-17.00 sec  7.62 MBytes  64.0 Mbits/sec
> [  1] 17.00-18.00 sec  9.25 MBytes  77.6 Mbits/sec
> [  1] 18.00-19.00 sec  5.38 MBytes  45.1 Mbits/sec
> [  1] 19.00-20.00 sec  5.62 MBytes  47.2 Mbits/sec
> [  1] 20.00-21.00 sec  10.0 MBytes  83.9 Mbits/sec
> [  1] 21.00-22.00 sec  8.62 MBytes  72.4 Mbits/sec
> [  1] 22.00-23.00 sec  9.88 MBytes  82.8 Mbits/sec
> [  1] 23.00-24.00 sec  6.25 MBytes  52.4 Mbits/sec
> [  1] 24.00-25.00 sec  9.88 MBytes  82.8 Mbits/sec
> [  1] 25.00-26.00 sec  10.2 MBytes  86.0 Mbits/sec
> [  1] 26.00-27.00 sec  10.2 MBytes  86.0 Mbits/sec
> [  1] 27.00-28.00 sec  10.2 MBytes  86.0 Mbits/sec
> [  1] 28.00-29.00 sec  10.2 MBytes  86.0 Mbits/sec
> [  1] 29.00-30.00 sec  10.2 MBytes  86.0 Mbits/sec
> [  1] 0.00-30.22 sec   265 MBytes  73.7 Mbits/sec
> 
> ----------------------------------------------------------------------------
> 
>  From RPI3B+ to FreeBSD PC:
> 
> iperf -c 192.168.1.106 -w 2m -t 30s -i 1
> ------------------------------------------------------------
> Client connecting to 192.168.1.106, TCP port 5001
> TCP window size: 1.91 MByte (WARNING: requested 1.91 MByte)
> ------------------------------------------------------------
> [  1] local 192.168.1.24 port 55499 connected with 192.168.1.106 port 5001
> [ ID] Interval       Transfer     Bandwidth
> [  1] 0.00-1.00 sec  12.1 MBytes   102 Mbits/sec
> [  1] 1.00-2.00 sec  10.4 MBytes  87.0 Mbits/sec
> [  1] 2.00-3.00 sec  10.5 MBytes  88.1 Mbits/sec
> [  1] 3.00-4.00 sec  10.4 MBytes  87.0 Mbits/sec
> [  1] 4.00-5.00 sec  10.4 MBytes  87.0 Mbits/sec
> [  1] 5.00-6.00 sec  10.4 MBytes  87.0 Mbits/sec
> [  1] 6.00-7.00 sec  10.5 MBytes  88.1 Mbits/sec
> [  1] 7.00-8.00 sec  10.4 MBytes  87.0 Mbits/sec
> [  1] 8.00-9.00 sec  10.4 MBytes  87.0 Mbits/sec
> [  1] 9.00-10.00 sec  10.4 MBytes  87.0 Mbits/sec
> [  1] 10.00-11.00 sec  10.4 MBytes  87.0 Mbits/sec
> [  1] 11.00-12.00 sec  10.5 MBytes  88.1 Mbits/sec
> [  1] 12.00-13.00 sec  10.4 MBytes  87.0 Mbits/sec
> [  1] 13.00-14.00 sec  10.5 MBytes  88.1 Mbits/sec
> [  1] 14.00-15.00 sec  10.4 MBytes  87.0 Mbits/sec
> [  1] 15.00-16.00 sec  10.4 MBytes  87.0 Mbits/sec
> [  1] 16.00-17.00 sec  10.2 MBytes  86.0 Mbits/sec
> [  1] 17.00-18.00 sec  10.0 MBytes  83.9 Mbits/sec
> [  1] 18.00-19.00 sec  9.38 MBytes  78.6 Mbits/sec
> [  1] 19.00-20.00 sec  9.50 MBytes  79.7 Mbits/sec
> [  1] 20.00-21.00 sec  9.50 MBytes  79.7 Mbits/sec
> [  1] 21.00-22.00 sec  9.88 MBytes  82.8 Mbits/sec
> [  1] 22.00-23.00 sec  10.4 MBytes  87.0 Mbits/sec
> [  1] 23.00-24.00 sec  10.4 MBytes  87.0 Mbits/sec
> [  1] 24.00-25.00 sec  10.4 MBytes  87.0 Mbits/sec
> [  1] 25.00-26.00 sec  9.88 MBytes  82.8 Mbits/sec
> [  1] 26.00-27.00 sec  10.4 MBytes  87.0 Mbits/sec
> [  1] 27.00-28.00 sec  10.5 MBytes  88.1 Mbits/sec
> [  1] 28.00-29.00 sec  10.4 MBytes  87.0 Mbits/sec
> [  1] 29.00-30.00 sec  10.4 MBytes  87.0 Mbits/sec
> [  1] 0.00-30.19 sec   310 MBytes  86.0 Mbits/sec
> 
> Now, I could run these very same tests off Devuan if you like? This may help disprove any network issues? Although, as I've stated, the Devuan version running on the RPI3 consistently gets up to 3 times this speed.
> 
> Thanks
> 
> Matt.
> 
>  
> 
> 
> 


Hi,

Just another data point for the investigation.

RPI3B+ FreeBSD 13.0-RELEASE-p1 #0: Wed May 26 22:19:21 UTC 2021 GENERIC
ue0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
    options=80009<RXCSUM,VLAN_MTU,LINKSTATE>
    ether b8:27:xx:xx:xx:xx
    inet 192.168.1.148 netmask 0xffffff00 broadcast 192.168.1.255
    media: Ethernet autoselect (1000baseT <full-duplex>)
    status: active
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>


RPI4 FreeBSD 14.0-CURRENT #7 main-62ffcaab8: Tue Mar 23 17:26:53 CET 2021 GENERIC-NODEBUG
genet0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
    options=280009<RXCSUM,VLAN_MTU,LINKSTATE,RXCSUM_IPV6>
    ether dc:a6:xx:xx:xx:xx
    inet 192.168.1.127 netmask 0xffffff00 broadcast 192.168.1.255
    media: Ethernet autoselect (1000baseT <full-duplex,master>)
    status: active
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>


These two are next to each other connected by a 1gbit switch.


[root@rpi3 ~]# iperf -c rpi4 -w 2m -t 30s -i 1
------------------------------------------------------------
Client connecting to rpi4, TCP port 5001
TCP window size: 32.8 KByte (WARNING: requested 1.91 MByte)
------------------------------------------------------------
[  1] local 192.168.1.148 port 21246 connected with 192.168.1.127 port 5001
[ ID] Interval       Transfer     Bandwidth
[  1] 0.00-1.00 sec  12.6 MBytes   106 Mbits/sec
[  1] 1.00-2.00 sec  13.6 MBytes   114 Mbits/sec
[  1] 2.00-3.00 sec  13.5 MBytes   113 Mbits/sec
[  1] 3.00-4.00 sec  13.6 MBytes   114 Mbits/sec
[  1] 4.00-5.00 sec  13.5 MBytes   113 Mbits/sec
[  1] 5.00-6.00 sec  13.6 MBytes   114 Mbits/sec
[  1] 6.00-7.00 sec  13.6 MBytes   114 Mbits/sec
[  1] 7.00-8.00 sec  13.6 MBytes   114 Mbits/sec
[  1] 8.00-9.00 sec  13.2 MBytes   111 Mbits/sec
[  1] 9.00-10.00 sec  13.5 MBytes   113 Mbits/sec


[root@rpi4 ~]# iperf -c rpi3 -w 2m -t 30s -i 1
------------------------------------------------------------
Client connecting to rpi3, TCP port 5001
TCP window size: 32.8 KByte (WARNING: requested 1.91 MByte)
------------------------------------------------------------
[  1] local 192.168.1.127 port 24993 connected with 192.168.1.148 port 5001
[ ID] Interval       Transfer     Bandwidth
[  1] 0.00-1.00 sec  15.6 MBytes   131 Mbits/sec
[  1] 1.00-2.00 sec  16.8 MBytes   141 Mbits/sec
[  1] 2.00-3.00 sec  16.6 MBytes   139 Mbits/sec
[  1] 3.00-4.00 sec  16.8 MBytes   141 Mbits/sec
[  1] 4.00-5.00 sec  16.5 MBytes   138 Mbits/sec
[  1] 5.00-6.00 sec  16.8 MBytes   141 Mbits/sec
[  1] 6.00-7.00 sec  16.4 MBytes   137 Mbits/sec
[  1] 7.00-8.00 sec  16.5 MBytes   138 Mbits/sec
[  1] 8.00-9.00 sec  16.6 MBytes   139 Mbits/sec
[  1] 9.00-10.00 sec  14.6 MBytes   123 Mbits/sec


Regards,
Ronald.