Bufferbloat im Heimnetzwerk beheben

6729
cuu508

In unserem Heimnetzwerk mit kontinuierlichen Netzwerk-E / A-Latenzzeiten werden die Latenzen lächerlich. Es ist in Ordnung mit leichten Lasten, wird aber schnell unbrauchbar, wenn ich beispielsweise eine große Anzahl kleiner Dateien rsyncen möchte - andere Übertragungen stoppen im Wesentlichen. Pings kommen gerade durch.

Einfache Topologie - ein Breitbandmodem / WIFI-Router in einer Box mit einigen drahtlosen und einigen kabelgebundenen Clients.

Ich habe versucht, ifconfig wlan0/eth0 txqueuelen 1alle Clients einzustellen, dies scheint ein bisschen zu helfen, aber nicht viel.

Tips welcome: Wie kann ich Latenzprobleme diagnostizieren und beseitigen? Gibt es weitere Konfigurationseinstellungen, die ich auf Clients einstellen kann, oder vielleicht helfen bessere WLAN-Router?

9

4 Antworten auf die Frage

3
Majenko

Sie benötigen Quality of Service und einen anpassbaren Warteschlangenalgorithmus. Ich würde ein solches Setup empfehlen, wenn Sie gerne mit den Interns von Linux / FreeBSD spielen und etwas Geld übrig haben:

+------+ +--------+ +------+<----> Wireless Access Point |Router|<--->|Firewall|<---->|Switch| +------+ +--------+ +------+<----> Wired computers 

Bei der Firewall handelt es sich um eine Linux- oder FreeBSD- oder ähnliche Maschine mit 2 Netzwerkkarten, die dem Verkehr einige erweiterte Warteschlangen- und Quality of Service-Regeln auferlegen kann.

Ich musste etwas Ähnliches tun, um DNS-Lookups zu stoppen, wenn schwere Datenübertragungen über eine langsamere Internetverbindung erfolgen.

Die andere Möglichkeit besteht darin, einen besseren Router zu erhalten - einen, auf den Sie dd-wrt oder open-wrt installieren können, da diese beiden Firmwares meiner Meinung nach mehr QoS usw. bieten als bog-Standard-Home-Router.

2
BlueRaja - Danny Pflughoeft

Ich habe versucht ifconfig wlan0/eth0 txqueuelen 1auf allen Clients zu setzen ...

Dieser Befehl reduziert die Puffergröße auf diesem Rechner auf 1 Paket. Die wichtigste Maschine, auf der dieser Befehl ausgeführt wird, ist der Engpass für Ihr Netzwerk, d. H. Die Maschine, auf der eine Gigabit-Verbindung vorhanden ist, und auf der anderen die viel langsamere Verbindung zum Internet. Daher ist es der Router, auf dem Sie diesen Befehl ausführen möchten, nicht die Clients!
Stellen Sie sicher, dass Sie den Befehl auf der rechten Schnittstelle ausführen (nur die ausgehende LAN-Schnittstelle) .

Dies funktioniert natürlich nur, wenn Ihr Router unter Linux läuft, und Sie können Befehle ausführen. Glücklicherweise funktionieren die meisten benutzerdefinierten Firmwares für Heimrouter (DD-WRT, OpenWRT, Tomato).


Es sollte beachtet werden, dass das Reduzieren der Puffergröße die QoS vermasseln kann. Wenn Sie also die QoS auf Ihrem Router verwenden, sollten Sie die Puffergröße lieber alleine lassen und QoS verwenden, um die Upload- / Download-Geschwindigkeit zu begrenzen Jeder Client muss deutlich unter dem maximalen Upload / Download der Verbindung liegen. Dies hat jedoch den offensichtlichen Nachteil, dass die Bandbreite nicht genutzt wird, wenn nur eine Person verbunden ist.

1
morTie

QoS oder Quality of Service ist eine Art Reihenfolge und Einstellung von Prioritäten für die Pakete, die vom Router verarbeitet werden. Dies ist genau das, worauf Sie bei solchen Problemen genau achten sollten ... Versuchen Sie, in Ihrem Routerkonfigurationsfenster zu suchen, und aktivieren Sie QoS ... Es ist besser, die manuellen Einstellungen in Ihrem Fall zu verwenden, aber Sie sollten die Prioritätsreihenfolge der Pakete kennen, die als erste verarbeitet werden sollen.

0
George Marengo

Ich verwende Windows und Mac anstelle von Linux, aber eine Lösung für mich bestand darin, von einem Netgear-Router direkt hinter der ISPs-Box zu einem Edge-Router zu wechseln und ein intelligentes Routing einzurichten (das von Linux kommt).