Durchsatz regeln

Downloads beschleunigen mit Trickle

01.11.2005
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
 

Ä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.
  • Mldonkey und Kmldonkey
    Der Multi-Network-Client Mldonkey bietet Zugriff auf alle gängigen Filesharing-Netze. Wie zeigen, wie Sie ihn optimal einrichten und mit dem KDE-Frontend Kmldonkey bequem steuern.
  • 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.
  • 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.
Kommentare

Infos zur Publikation

LU 11/2014: VIDEOS BEARBEITEN

Digitale Ausgabe: Preis € 4,95
(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!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Artikelsuche
Erwin Ruitenberg, 09.10.2014 07:51, 1 Antworten
Ich habe seit einige Jahre ein Dugisub LinuxUser. Dann weiß ich das irgendwann ein bestimmtes Art...
Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 4 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...