Downloads beschleunigen mit Trickle

Durchsatz regeln

Verstopfen zu viele Downloads die eigene Internet-Leitung, sollte man den eigenen Netzwerkverkehr besser regeln. Der Linux-Kernel bietet dafür einige Wege, doch die sind verschlungen. Einfacher geht's mit Trickle.

Wer über ADSL ins Internet geht, kennt das Problem: Bei größeren Downloads lassen sich interaktive Anwendungen kaum noch benutzen. Wie in Zeiten von Modems drückt der Benutzer eine Taste und wartet erst einmal einige Sekunden, bis der Server das Zeichen bestätigt, und es dann endlich auf dem eigenen Bildschirm auftaucht.

Eigentlich seltsam, bietet ADSL doch in Upstream-Richtung (zum Server hin) mindestens 128 KBit/s. Dummerweise braucht das im Internet verwendete Netzwerkprotokoll TCP/IP aber genügend freie Kapazität in beide Richtungen. Denn egal, ob Up- oder Download: Pakete fließen in beiden Richtungen. So muss der Empfänger beim Download jedes empfangene Paket beim Sender bestätigen, und das geht eben in die Upload-Richtung.

Um eine solchermaßen beschränkte Leitung besser auszunutzen, bedarf es einer feinen Steuerung aus- und eingehender Pakete auf dem eigenen Rechner. Dafür bietet Linux so genanntes Queuing Management, das Traffic-Shaping in allen Varianten mit unterschiedlichsten Algorithmen ermöglicht. Entsprechend kompliziert ist das System (siehe [1]). Die Software Trickle (Tröpfeln) löst das Problem mit einem einfachen Kommando und wenigen Optionen. Sie lässt sich normalerweise ohne Schwierigkeiten kompilieren, und setzt an speziellen Bibliotheken nur Libevent voraus [2].

Auch ohne Root

Um den Netzverkehr zu regeln, braucht Trickle nicht einmal Administratorrechte. Normalerweise stellt die Glibc den Anwendungen einige Netzwerkfunktionen zur Verfügung, mit denen diese Internet-Verbindungen herstellen, Daten übertragen und so weiter. Trickle lädt beim Start über den LD_PRELOAD-Mechanismus eine eigene dynamische Bibliothek, die Netzwerkfunktionen enthält. Sie funktionieren so wie die originalen, führen aber zusätzlich über den Datenverkehr Buch. Trickle funktioniert zwar mit den meisten, aber nicht allen Programmen. Sollten Sie mit ihrer Lieblingssoftware auf Schwierigkeiten stoßen, finden Sie einige Hinweise dazu im Kasten "Einschränkungen".

Einschränkungen

Weil der LD_PRELOAD-Mechanismus dynamische Bibliotheken benutzt, funktioniert Trickle nicht mit so genannten statischen Binaries, die nicht die Glibc verwenden. Welcher Art das Programm ist, das Trickle kontrollieren soll, finden Sie mit dem Befehl ldd heraus, das gegebenenfalls die dynamischen Bibliotheken auflistet:

ldd /usr/bin/wget | grep libc.so
        libc.so.6 => /lib/libc.so.6 (0x00add000)

Gibt ldd nichts aus, handelt es sich vermutlich um ein statisches Programm. Das können sie auch mit dem Befehl file /usr/bin/wget verifizieren, der Ihnen mitteilt ob es sich um ein

Genauso versagt Trickle bei SUID-Programmen, bei denen aus Sicherheitsgründen der LD_PRELOAD-Mechanismus ausgeschaltet ist.

Auch geeignete Anwendungen benutzen diesen Mechanismus nicht ohne weiteres. Um ein Programm der Bandbreitenkontrolle zu unterwerfen, starten Sie es mit dem Befehl trickle. Der Schalter -d gibt ein Limit für die Download-Rate an:

trickle -d 50 ftp ftp.redhat.com

Damit stellt Trickle sicher, dass die mit dem Befehl ftp aufgebaute FTP-Verbindung in Download-Richtung im Durchschnitt unter 50 KBytes/s bleibt. Um den Upload kümmert sich entsprechend die Option -u.

Systemweit regeln

Andere, gleichzeitig laufende FTP-Programme kümmern sich nicht um Trickles Eingriff, können also weiterhin die Leitung verstopfen. Um den Netzwerkverkehr sinnvoll zu regulieren, müssen also alle relevanten Programme unter Trickles Kontrolle gestellt werden. Das übernimmt der Trickle-Daemon trickled, indem er über alle Trickle-Verbindungen Buch führt und damit die Gesamtbandbreite regelt.

Auch der Daemon kennt die beiden Parameter -d und -u, die bei ihm aber für die Gesamtbandbreite stehen:

trickled -d 50 -u 5 -f -N 5

Dieser Befehl setzt die Download-Rate auf 50 KBytes/s und die Upload-Rate auf 5 KBytes/s. Der Parameter -f sorgt dafür, dass der Daemon im Vordergrund läuft, -N 5 lässt ihn alle fünf Sekunden eine Statistik ausgeben. Ohne den Parameter -d setzt Trickle Upload- und Downloadrate auf jeweils 10 KBytes/s. Dauerhafte Einstellungen schreiben Sie in die Konfigurationsdatei /etc/trickled.conf oder das hinter dem Schalter -c angegebene File.

Die trickle-Programme kontaktieren beim Start dem Daemon (normalerweise über den Unix-Socket /tmp/.trickled.sock) und regeln nach seinen Vorgaben ihre jeweiligen Client-Programme. Bricht die Verbindung zum Server ab, arbeitet trickle weiter, hält sicher aber nicht mehr an die Begrenzung. Läuft der Server zum Beispiel mit einem Download-Limit von 10 KBytes/s, hält ein anschließend gestartetes trickle wget http://www.w3.org diese Vorgabe ein. Bricht der Benutzer den Server während des Downloads ab, geht die Rate nach oben.

In der Konfigurationsdatei /etc/trickled.conf legen Sie Prioritäten für einzelne Dienste fest. Niedrige Werte stehen dabei für hohe Priorität. Intern ordnet Trickle die Datenpakete in einer Warteschlange entsprechend um. Damit bleibt zum Beispiel trotz großer Download-Rate (im Test um die 90 KBytes/s) eine interaktive Sitzung mit ssh noch gut benutzbar. Eine einfache Variante der Konfigurationsdatei sieht zum Beispiel sieht so aus:

[ssh]
Priority = 1
[www]
Priority = 8

Die Dokumentation sieht für eine ähnliche Konstellation weiterhin die Parameter Time-Smoothing und Length-Smoothing vor, die große Schwankungen der Raten verhindern sollen. Im Gegensatz zu den ihnen entsprechenden Kommandozeilenoption -d und -l lassen sich die Parameter der Konfigurationsdatei für jeden einzelnen Dienst (SSH, FTP, WWW, …) einstellen:

[ssh]
Priority = 1
Time-Smoothing = 0.1
Length-Smoothing = 2
[www]
Priority = 8
Time-Smoothing = 5
Length-Smoothing = 20

Diese Werte geben an, über welchen Zeitraum respektive über wieviele Bytes hinweg Trickle Anwendungen Daten verschicken und empfangen lässt. Zur Übertragung größerer Datenmengen sollte man also eher größere Werte verwenden, für interaktive Anwendungen kleine. Große Unterschiede bewirkten diese beiden Werte im Test aber nicht. Hier bietet sich ein weites Feld für Experimente.

Prinzipiell kann ein solches System nur bis zu einem gewissen Grad wirksam sein. Ob im Kernel- oder im Userspace: Die Vielzahl der Puffer, die immer schon einige Pakete enthalten, und die dynamische Natur der Netzwerke stellen eine natürliche Grenze für Traffic Shaping dar. So berechnet Trickle die jeweiligen Raten über ein bestimmtes Zeitintervall. Da die Rate zu Beginn immer klein ist und dann steigt, ist eine Überreaktion in die andere Richtung erst einmal die Folge, sie steigt weit über den angestrebten Wert.

Mit -w legen Sie die Anzahl an Bytes fest, in denen Trickle versucht, solche Spitzen zu vermeiden. Allerdings zeigte auch diese Einstellung im Test wenig Wirkung. Die Unterschiede zur Default-Einstellung (512 Bytes) waren kaum zu spüren. Doch auch ohne das beschriebene Feintuning arbeitete Trickle mit den Voreinstellungen im wesentlichen gut.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Heft-DVD
  • Schlanker Datenhändler
    Torrent-Clients gibt es in vielen Formen, Farben und Geschmacksrichtungen. Legen Sie auf Stabilität, Feature-Vielfalt und Geschwindigkeit wert, fällt die Auswahl deutlich kleiner aus.
  • Opera Turbo soll Downloadrate massiv steigern
    Der norwegische Softwarespezialist Opera rühmt sich gerne mit dem schnellsten Browser auf Erden. Jetzt gibt es das neueste, noch unreife Produkt, den Opera Turbo zum Testen.
  • Dateien herunterladen mit BitTorrent
    Sobald eine Linux-Distribution eine größere Fan-Gemeinde erreicht, stoßen zumindest kleine Distributoren auf ein finanzielles Problem: Die eigentlich erfreuliche Beliebtheit verschlingt ungeheure Datenmengen, wenn die Anwender sich begierig auf jede neue Version auf dem Server stürzen. Der Datentransfer kann werden – wenn man die Last nicht verteilt.
  • Ost-Import
    Gnome verlor ab Version 3 viele Freunde, nicht zuletzt wegen seines umstrittenen Bedienkonzepts. In die Lücke stößt das ebenso elegante wie durchdachte Deepin Linux aus dem chinesischen Wuhan.
Kommentare

Infos zur Publikation

Lu07/2016: GIMP FÜR PROFIS

Digitale Ausgabe: Preis € 5,99
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Aktuelle Fragen

Mit Firewire Videos improtieren?
Werner Hahn, 09.06.2016 11:06, 5 Antworten
Ich besitze den Camcorder Panasonic NV-GS330, bei dem die Videos in guter Qualität nur über den 4...
lidl internetstick für linux mint
rolf meyer, 04.06.2016 14:17, 3 Antworten
hallo zusammen ich benötige eure hilfe habe einen lidl-internetstick möchte ihn auf linux mint i...
thema ändern
a b, 29.05.2016 16:34, 0 Antworten
Hallo Linuxer zuerst alle eine schönen Sonntag, bevor ich meine Frage stelle. Ich habe Ubuntu 1...
Ideenwettbewerb
G.-P. Möller, 28.05.2016 10:57, 0 Antworten
Liebe User, im Rahmen eines großen Forschungsprojekts am Lehrstuhl für Technologie- und Innova...
Welche Drucker sind Linux-mint kompatibel?
Johannes Nacke, 20.05.2016 07:32, 6 Antworten
Hallo Ihr Lieben, ich bitte um mitteilung welche Drucker Kompatibel sind mit Linux-Mint. LG Joh...