Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
searchwing-pi-datarate [2019/11/27 17:06] beckmanf http transfer |
searchwing-pi-datarate [2021/11/18 15:08] (current) wf68spef [pi4 config] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== Raspberry Pi data transfer rate test ===== | + | ===== Raspberry Pi Zero data transfer rate test ===== |
The Raspberry Pi stores the images which are collected during flight. After the plane landed, the images are retrieved from the Pi. The least impact with respect to water sealing would be a wireless transfer via Wifi or Bluetooth. For completeness I also test the transfer rate via USB configured as RNDIS network device. As a seperate topic I look into the transfer rate of the SD Card. | The Raspberry Pi stores the images which are collected during flight. After the plane landed, the images are retrieved from the Pi. The least impact with respect to water sealing would be a wireless transfer via Wifi or Bluetooth. For completeness I also test the transfer rate via USB configured as RNDIS network device. As a seperate topic I look into the transfer rate of the SD Card. | ||
Line 483: | Line 483: | ||
The results for the wget transfer time are 0.8s for the 1MB file, 1.1s for the 3MB file and 30s for teh 100MB file. However, these measurements were made at 19.00, i.e. there is quite some traffic on channel 1 now... | The results for the wget transfer time are 0.8s for the 1MB file, 1.1s for the 3MB file and 30s for teh 100MB file. However, these measurements were made at 19.00, i.e. there is quite some traffic on channel 1 now... | ||
- | The transfer times for the 100MB were 30s, 24s, 25s, 26s. This corresponds to a transfer rate of 30 MBit/s. | + | The transfer times for the 100MB were 30s, 24s, 25s, 26s. This corresponds to a transfer rate of 30 MBit/s. Some times for the 1MB file were: 0.2 0.2 0.2 0.9 0.3 0.7 0.7 0.2 -> There is heavy congestion on channel 1.Ìý |
+ | Ìý | ||
+ | Based on the 0.2s for the 1 MB File, this translates to **5 MB/s = 40 MBit/s** rate for an undisturbed channel for a transfer via http. This is again exactly the achieved iperf rate as shown above.Ìý | ||
+ | Ìý | ||
+ | ==== Julian tests ====Ìý | ||
+ | Ìý | ||
+ | * WIFI Only datatransferÌý | ||
+ | * Router: FritzBox 7430 AWÌý | ||
+ | * Placement: Pi Zero and Laptop placed 10cm above router.Ìý | ||
+ | * data ammount: 540 MByteÌý | ||
+ | * ** Laptop and Raspberry Pi share the same Wifi channel => Each packet goes from Pi to AP and from AP to Laptop. => Congestion on the Wifi Channel. **Ìý | ||
+ | Ìý | ||
+ | === wget ===Ìý | ||
+ | * time=213sekÌý | ||
+ | * rate=2.53 Mbyte/sekÌý | ||
+ | * cpuusage=70%Ìý | ||
+ | Ìý | ||
+ | === ftp ===Ìý | ||
+ | * time=361sekÌý | ||
+ | * rate=1.495 Mbyte/sekÌý | ||
+ | * cpuusage=50-60% | ||
==== Results ==== | ==== Results ==== | ||
+ | * The Laptop and the Pi should not be connected via a single 2.4 GHz access point as laptop and Pi share the same Wifi channel. This results in 50% throughput reduction (see Julians 2.5 MB/s for wget). | ||
+ | * The transfer rate via wget on an undisturbed 2.4 GHz wifi channel is **5 MB/s**. (Only Pi connected to AP, No other stations use this channel). This 40 MBit/s throughput on http level compares well to the maximum 65 MBit/s wifi data rate of the Pi Zero W. | ||
+ | * ssh transfer is limited by CPU load on the Pi for encryption and results in 1.8 MB/s for Wifi. | ||
+ | * Short Guard Interval setting could possibly increase the the raw wifi rate from 65 MBit/s to 72 MBit/s. | ||
Line 495: | Line 519: | ||
+ | ===== Pi4/CM4 data transfer rate test ===== | ||
+ | * Fritzbox 7520 | ||
+ | * CM4 5Ghz Wifi | ||
+ | * Laptop T14 via Gigabit Ethernet | ||
+ | |||
+ | |||
+ | |||
+ | ==== pi4 theoretical speed ==== | ||
+ | |||
+ | from https://forums.raspberrypi.com/viewtopic.php?t=291824&start=25#p1768600 | ||
+ | |||
+ | //Fri Nov 27, 2020 2:03 pm | ||
+ | The WiFi chip is connected via a 4-bit SDIO link that typically runs at 41.7MHz giving an upper **limit on throughput of ~160Mbs**. In practise you won't get close to that because it is a simplex link (only one direction at a time) and there is overhead in each of the protocol and transport layers. Given that, 112Mbps sounds pretty good. Even though the throughput hasn't increased, being able to properly use the wide channels means that the channel (which is a shared medium) is occupied for a shorter time, leaving more time for other devices. | ||
+ | |||
+ | // | ||
+ | |||
+ | ==== pi4 config ==== | ||
+ | |||
+ | |||
+ | |||
+ | <code> | ||
+ | pi@testi:~ $ iw dev | ||
+ | phy#0 | ||
+ | Unnamed/non-netdev interface | ||
+ | wdev 0x2 | ||
+ | addr de:a6:32:fe:85:b0 | ||
+ | type P2P-device | ||
+ | txpower 31.00 dBm | ||
+ | Interface wlan0 | ||
+ | ifindex 3 | ||
+ | wdev 0x1 | ||
+ | addr dc:a6:32:fe:85:b0 | ||
+ | ssid DrMartinRouterKing | ||
+ | type managed | ||
+ | channel 64 (5320 MHz), width: 80 MHz, center1: 5290 MHz | ||
+ | txpower 31.00 dBm | ||
+ | |||
+ | pi@testi:~ $ iwconfig wlan0 | ||
+ | wlan0 IEEE 802.11 ESSID:"XXXXXXXXXXXX" | ||
+ | Mode:Managed Frequency:5.32 GHz Access Point: 3C:A6:2F:CB:E0:7E | ||
+ | Bit Rate=433.3 Mb/s Tx-Power=31 dBm | ||
+ | Retry short limit:7 RTS thr:off Fragment thr:off | ||
+ | Power Management:on | ||
+ | Link Quality=70/70 Signal level=-29 dBm | ||
+ | Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 | ||
+ | Tx excessive retries:1 Invalid misc:0 Missed beacon:0 | ||
+ | |||
+ | </code> | ||
+ | |||
+ | ==== iperf measurements via WLAN ==== | ||
+ | |||
+ | === Datatransfer Pi4 -> Laptop === | ||
+ | |||
+ | <code> | ||
+ | ➜ /tmp iperf3 -s | ||
+ | ----------------------------------------------------------- | ||
+ | Server listening on 5201 (test #1) | ||
+ | ----------------------------------------------------------- | ||
+ | Accepted connection from 192.168.178.29, port 54534 | ||
+ | [ 5] local 192.168.178.20 port 5201 connected to 192.168.178.29 port 54536 | ||
+ | [ ID] Interval Transfer Bitrate | ||
+ | [ 5] 0.00-1.00 sec 9.14 MBytes 76.7 Mbits/sec | ||
+ | [ 5] 1.00-2.00 sec 10.8 MBytes 90.9 Mbits/sec | ||
+ | [ 5] 2.00-3.00 sec 10.9 MBytes 91.1 Mbits/sec | ||
+ | [ 5] 3.00-4.00 sec 10.8 MBytes 90.9 Mbits/sec | ||
+ | [ 5] 4.00-5.00 sec 10.9 MBytes 91.5 Mbits/sec | ||
+ | [ 5] 5.00-6.00 sec 10.3 MBytes 86.2 Mbits/sec | ||
+ | [ 5] 6.00-7.00 sec 9.21 MBytes 77.3 Mbits/sec | ||
+ | [ 5] 7.00-8.00 sec 10.9 MBytes 91.1 Mbits/sec | ||
+ | [ 5] 8.00-9.00 sec 10.8 MBytes 90.7 Mbits/sec | ||
+ | [ 5] 9.00-10.00 sec 10.9 MBytes 91.5 Mbits/sec | ||
+ | [ 5] 10.00-10.01 sec 103 KBytes 89.2 Mbits/sec | ||
+ | - - - - - - - - - - - - - - - - - - - - - - - - - | ||
+ | [ ID] Interval Transfer Bitrate | ||
+ | [ 5] 0.00-10.01 sec 105 MBytes 87.8 Mbits/sec receiver | ||
+ | ----------------------------------------------------------- | ||
+ | Server listening on 5201 (test #2) | ||
+ | ----------------------------------------------------------- | ||
+ | ^Ciperf3: interrupt - the server has terminated | ||
+ | </code> | ||
+ | |||
+ | === Datatransfer Pi4 <- Laptop === | ||
+ | |||
+ | <code> | ||
+ | ➜ /tmp iperf3 -c 192.168.178.29 | ||
+ | iperf3: error - unable to connect to server: Connection refused | ||
+ | ➜ /tmp iperf3 -c 192.168.178.29 | ||
+ | Connecting to host 192.168.178.29, port 5201 | ||
+ | [ 5] local 192.168.178.20 port 40318 connected to 192.168.178.29 port 5201 | ||
+ | [ ID] Interval Transfer Bitrate Retr Cwnd | ||
+ | [ 5] 0.00-1.00 sec 5.21 MBytes 43.7 Mbits/sec 24 24.0 KBytes | ||
+ | [ 5] 1.00-2.00 sec 4.57 MBytes 38.4 Mbits/sec 32 22.6 KBytes | ||
+ | [ 5] 2.00-3.00 sec 4.75 MBytes 39.8 Mbits/sec 35 38.2 KBytes | ||
+ | [ 5] 3.00-4.00 sec 5.11 MBytes 42.8 Mbits/sec 36 28.3 KBytes | ||
+ | [ 5] 4.00-5.00 sec 4.51 MBytes 37.9 Mbits/sec 24 31.1 KBytes | ||
+ | [ 5] 5.00-6.00 sec 5.11 MBytes 42.8 Mbits/sec 31 21.2 KBytes | ||
+ | [ 5] 6.00-7.00 sec 5.23 MBytes 43.8 Mbits/sec 23 35.4 KBytes | ||
+ | [ 5] 7.00-8.00 sec 5.46 MBytes 45.8 Mbits/sec 27 21.2 KBytes | ||
+ | [ 5] 8.00-9.00 sec 4.99 MBytes 41.8 Mbits/sec 20 35.4 KBytes | ||
+ | [ 5] 9.00-10.00 sec 4.63 MBytes 38.9 Mbits/sec 41 19.8 KBytes | ||
+ | - - - - - - - - - - - - - - - - - - - - - - - - - | ||
+ | [ ID] Interval Transfer Bitrate Retr | ||
+ | [ 5] 0.00-10.00 sec 49.6 MBytes 41.6 Mbits/sec 293 sender | ||
+ | [ 5] 0.00-10.00 sec 49.3 MBytes 41.4 Mbits/sec receiver | ||
+ | |||
+ | iperf Done. | ||
+ | |||
+ | </code> |