RPi als AP: Geringer Durchsatz

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,

    ich wühle mich schon seit Tagen durch diverse Foren, auf der Suche nach der Lösung eines Problems, welches wohl recht häufig vorkommt, aber nirgendwo richtig gelöst wird.

    An einem Raspberry Pi B+ wird ein LogiLink WL0150 mit dem Ralink RT5372-Chipsatz und dem Standardtreiber (rt2800usb) mit hostapd (aus dem Repository, Version 1.0) und dnsmasq im AP-Mode verwendet. Das funktioniert soweit auch ganz gut. Allerdings: Der Durchsatz liegt deutlich unter den zu erwartenden Wert. Der WL0150 soll mit 40Mhz Kanalbreite 300mb/s schaffen. Das Gegenstück, ein Notebook mit mit Intel N130-Adapter, begrenzt die ganze Sache dann auf 150 mb/s. Da hostapd eine Konfiguration mit 40Mhz Bandbreite wegen diverser Netzwerke in Reichweite verweigert, sind die beiden Geräte nun effektiv mit 72.5 mb/s verbunden. So weit, so gut.

    Der Nettodurchsatz beträgt aber bestenfalls 20 mb/s / 2.3 MB/s, wobei es keinen Unterschied macht, ob hostapd im g- oder n-Modus (ieee80211n=1 + wmm_enabled=1) läuft, oder Traffic durchleitet (eth0 > wlan0), per FTP von der SD-Karte (sd > wlan0) oder aus der RAM-Disk (ramfs > wlan0) liest. In einigen Threads war zu lesen, dass die CPU des Raspberry (momentan im Modus "medium" übertaktet) schlapp macht. top zeigt bei 2.3 MB/s Durchsatz aber zumindest noch 30% im idle an, wobei top aber einen load average von > 1 zeigt.

    Naheliegend wäre, dass der Flaschenhals beim USB-Controller liegt. Die Kombination aus einem per USB angebundenen WLAN-Stick und dem ebenfalls über USB angebundenen Ethernetcontroller des RPi ist sicher nicht optimal, aber zumindest 5MB/s sollten doch drin sein, oder? Selbst wenn man von einer USB-Nettodatenrate von 240 mb/s (was der Hälfte der Bruttodatenrate entspricht) ausgeht und berücksichtigt, dass Ethernetcontroller und alle USB-Geräte diese Bandbreite teilen müssen, liegen die erreichten 20 mb/s noch meilenweit entfernt.

    Der Inhalt meiner hostapd.conf:

    Die Konfiguration der Interfaces:

    Hat einer eine Idee, woran es liegen könnte? Treiber, Hardware, Software?

  • Die Antwort habe ich erwartet - Forensuche wurde bereits ausgiebig gequält. :)
    Das Problem ist ja nicht, dass der RPi nur einige 100 KB/s schafft oder sich mit NTFS-Platten rumschlägt, sondern dass er einen sehr geringen Durchsatz beim "Durchgangsverkehr" aufweist.

    Nach dem, was ich bis jetzt alles gelesen habe, ist der USB-Controller wohl das Problem, da er zum einen nicht annähernd die 480 mb/s Brutto erreicht und zusätzlich durch den ebenfalls per USB angebundenen Netzwerkcontroller eingeschränkt wird. Kannst du das so bestätigen?

    Widersprüchlich ist dann aber, dass der RPi beim Übertragen von Daten aus der RAM-Disk per FTP nach WLAN oder LAN eine ähnlich niedrige Performance abliefert, wie bei der Übertragung von Ethernet nach WLAN. -- Hier per vnstat ermittelt: 21 mb/s vs. 15 mb/s

    Vielleicht wäre ein Sticky-Thread mit der Auflösung eine Maßnahme, da diese Frage ja offensichtlich häufiger auftritt.

    Einmal editiert, zuletzt von mrlc (14. Oktober 2014 um 17:18)

  • Ja, das bestätige ich.

    USB/LAN-Chip ist beim PI über einen einzigen USB-OTG mit dem SoC verbunden. Der USB-OTG benötigt mehr CPU Leistung als andere..
    WLAN geht nur über einen der USB-Ports.
    LAN ist ebenfalls über USB angebunden.
    480mbit/s werden aber auch am PC in der Praxis erreicht - davon ab.
    WLAN verursacht durch Verschlüsselung ebenfalls CPU-Last. Ist aber generell verschlüsselt nicht allzu schnell. WLAN ist aber auch anfälliger durch äußere Einwirkungen als LAN.

    Da ist also nix Widersprüchlich.

    Diese Frage tritt nur deshalb häufig auf weil keiner die Forumsuche nutzt bzw mehr als nur ein Treffer liest.

  • Okay, das habe ich befürchtet. Schade.

    Als Alternative (zumindest für diesen Anwendungszweck) käme der Banana Pi in Betracht. Dieser Quelle zur Folge sind beim BPi die Gigabit Ethernet-Schnittstelle und beide USB-Ports einzeln jeweils an die CPU angebunden, womit der Durchsatz erheblich höher liegen dürfte.

    Zitat

    On the Banana, the 2 USB2.0 ports are direct from the Allwinner A20 chip, and there’s a dedicated chip for the Gigabit ethernet. So, let’s see how this really runs :

    Eine angepasste Raspbian-Version gibt es auch für den BPi, der Ralink-Treiber stellt hoffentlich auch kein Problem dar. Dank höherem Takt und 2 Kernen sollten genug Leistungsreserven vorhanden sein. Wenn die USB-Performance dort einigermaßen stimmt, dann ist der BPi hier die Alternative. Soweit alles richtig, oder gibt es auch hier Einschränkungen, die ich übersehen habe?
    Das Problem der hohen CPU-Last durch USB-OTG ergibt sich beim Banana Pi nicht?

    Einmal editiert, zuletzt von mrlc (14. Oktober 2014 um 17:54)

  • Dieser Quelle zur Folge sind beim BPi die Gigabit Ethernet-Schnittstelle und beide USB-Ports einzeln jeweils an die CPU angebunden, womit der Durchsatz erheblich höher liegen dürfte.

    Nicht "jeweils einzeln", aber zumindest ist beim A20 ein dual-link vorhanden, also 2x USB2.0 Anbindung zur SoC...
    Der BananaPI verwendet wie der Cubieboard2/Cubietruck/usw den A20 SoC und der bindet Netzwerk-Port sowie USB-Ports intern über insg. 2x USB-Datenleitungen an. Beim PI ist das eben nur 1x USB-Datenleitung.


    Der PI ist nun mal zum basteln da, mit Schwerpunkt auf GPIO usw. Dafür wird kein PC-ähnlicher Datendurchsatz benötigt, darauf liegt beim PI auch kein Schwerpunkt - wozu auch...
    Wer sowas erwartet, hat den Sinn und Zweck des PI's nicht wirklich verstanden.

  • Das Pi ist halt keine Höllenmaschine.. Gibt es denn einen besonderen Grund warum Du den Raspberry Pi als AP benutzen möchtest? :)

    Falls es Dir um die Freiheiten bei der Konfiguration geht, kann ich Dir ans Herz legen einen DD-WRT oder openWRT kompatiblen Router zu kaufen (Ich selbst betreibe einen Asus RT-N12 mit DD-WRT und bin äußert zufrieden. Datenraten um die 10 MB/s für 25 Euro)

  • Ja, die Anforderungen sind etwas spezieller. Zwar werden die meisten (jedoch nicht alle) benötigten Funktionen auch durch ein WRT-Gerät abgedeckt, hardwareseitig ist das aber meist ein eher schlechter Kompromiss. Gerade im Bezug auf den Speicher haben die Kisten ja kaum bis keine Reserven.

    Ich habe nun den BPi bestellt und werde dann mal berichten, wie er sich macht. :)

  • Doppelpost. :angel:

    Der BPi ist heute angekommen. Ich habe ihn dann direkt ausgepackt, das Raspbian-Image von LeMaker installiert und ihn mit den Konfigurationsdateien des RPi gefüttert. Lief alles out-of-the-box. Wie auch beim RPi: keine Treiberinstallationen notwendig.
    Störend war eigentlich nur, dass auf dem Raspbian-Image eine komplette Desktopumgebung + Anwendungen installiert waren.

    Der Geschwindigkeitsunterschied zw. RPi und BPi ist aber auf jeden Fall beachtlich - sowohl bei der Übertragung, als auch bei der Befehlsausführung.

    Die Geschwindigkeit bei WLAN hat sich mit 30mb/s / 3.8 MB/s zwar nicht ganz verdoppelt, letztendlich begrenzt aber der N130-Controller im Notebook den Durchsatz. Der RT5372 + BPi hätte sicher noch mehr gekonnt.

    Einmal editiert, zuletzt von mrlc (16. Oktober 2014 um 18:05)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!