Home / LinuxUser / 2005 / 11 / Downloads beschleunigen mit Trickle

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

War doch klar...
(243 Punkte bei 15 Stimmen)
Re: War doch klar...
(179 Punkte bei 5 Stimmen)
Re: Skype für 64-Bit-Prozessor u. Suse 12.1
(161 Punkte bei 4 Stimmen)
Kubuntu verliert Finanzierung
(130 Punkte bei 4 Stimmen)
Offen fürs Geschäft
(80 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

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.

Abbildung 1: Ohne Trickles Steuerung nutzt der FTP-Download die verfügbare Bandbreite voll aus. Setzt das Programm ein Limit, bleibt noch Platz für andere Netzanwendungen.

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.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

702 Hits
Wertung: 0 Punkte (2 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 03/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Duden Korrektor unter 64-Bit
Duden Korrektor unter 64-Bit
Tim Schürmann, 06.02.2012 10:36, 0 Kommentare

Der Duden Korrektor bietet eine äußerst nützliche Rechtschreib- und Grammatikkorrektur für LibreOffice und bringt in der aktuellen Version 8 e...

Aktuelle Fragen

Suse 12.1 Bootvorgang bleibt seit Update stehen
Wimpy *, 12.02.2012 09:22, 0 Antworten
Seit Update auf Kernel 3.1.9-1.4-desktop i686 bleibt der Bootvorgang stehen. Es erscheint der gr...
N24 Stick (Huawei E173) und Ubuntu 11.04
Patrick Obenauer, 11.02.2012 11:54, 1 Antworten
Hallo zusammen! Ich benutze einen alten Laptop, der mit Ubuntu 11.04 flott und problemlos läuft....
Wie kann man beim Einsatz von Compiz die Fenster-Dekoration einstellen?
GoaSkin , 10.02.2012 20:12, 0 Antworten
Hallo, ich nutze Linux Mint mit dem Gnome-Derivat Mate. Da die Distribution Compiz nicht autom...
rndc reload zone - failed bad zone
Ludwig jun. B., 06.02.2012 16:08, 2 Antworten
Schönen guten Tag, ich habe folgendes Problem. Immer wenn ich folgendes Kommando ausführen bek...
Skype für 64-Bit-Prozessor u. Suse 12.1
Klaus Sigerist, 05.02.2012 11:39, 3 Antworten
Hallo Gemeinde! Ich bin nur ein einfacher Nutzer und habe Probleme mit der Installation von Skyp...