Als je verschillende netwerk applicaties tegelijk gebruikt of de beschikbare netwerkbandbreedte wordt door verschillende computers gebruikt, dan wil je deze soms beter verdelen. Anders riskeer je bij het downloaden van een groot bestand met een downloader uw ssh verbinding zo te vertragen dat werken niet meer mogelijk is. Of wanneer je een grote map synchroniseert met Dropbox, klaagt uw kamergenoot over het stotteren van een videostream.
Met behulp van de opdracht trickle kan je het netwerkverkeer van een specifiek programma beperken. Trickle werkt volledige in de gebruikersomgeving. M.a.w. je hebt dus geen root rechten nodig om de netwerkbandbreedte van een applicatie te beperken. De standaard softwarebronnen van openSUSE Leap 42.1 bieden trickle niet aan. Als volgt installeer je in een terminal het trickle pakket uit de network:utilities softwarebron:
dany@laptop:~> sudo /sbin/OCICLI https://software.opensuse.org/ymp/network:utilities/openSUSE_Leap_42.1/trickle.ymp
root's password:
Als u verdergaat, dan worden de volgende installatiebronnen toegevoegd:
* http://download.opensuse.org/repositories/network:/utilities/openSUSE_Leap_42.1/
Als verdergaat, dan zullen de volgende softwarepakketten worden geïnstalleerd op uw systeem:
* trickle
Continue? y/N
y
Toevoegen van installatiebronnen...
Indien je voor de eerste keer de network:utilities softwarebron gebruikt moet je deze vertrouwen door de GnuPG-sleutel te importeren.
Selecteer daarvoor met de Tab-toets de Vertrouwen knop en bevestig het de Return-toets.
De trickle opdracht gebruik je als volgt:
trickle -d <downloadbandbreedte> -u <uploadbandbreedte> <opdracht>
Dit beperkt de downloadbandbreedte en uploadbandbreedte, beiden uitgedrukt in KBytes/s, van de applicatie opdracht.
De volgende opdracht beperkt de maximum uploadsnelheid van uw scp opdracht tot 100 KB/s:
trickle -u 100 scp backup.tgz dany@computer_op_afstand.be:
Als je de maximum downloadsnelheid van de Firefox browser wilt beperken tot 300 KB/s, pas je Firefox programmakoppeling aan naar:
trickle -d 300 firefox %u
Op de afbeelding hieronder werd firefox gestart met een tot maximum 300 KB/s beperkte bandbreedte.
Firefox had dan ook 4929 ms nodig om de foto desktop.jpg van het internet te halen.
Bij een niet in bandbreedte beperkte Firefox was dit in 1427 ms klaar.
Trickle kan ook als daemon (als server op de achtergrond) werken, waardoor de aan de daemon toegekende bandbreedte verdeeld wordt over alle applicaties die met trickle gestart worden. Trickle start je als volgt als daemon:
sudo trickled -d 1000
Eens de trickle daemon in de achtergrond werkt, kan je andere applicaties met trickle starten. De eerste applicatie die je met trickle start, krijgt de beschikking over de volle 1000 KB/s bandbreedte. Start je nog een applicatie met trickle, dan krijgt elke applicatie een maximale bandbreedte van 500 KB/s, enz.
Met het hulpprogramma Wondershaper kan je de bandbreedte van een netwerkverbinding beperken. Dit is vooral handig als je de internetverbinding moet delen met andere gebruikers.
Wondershaper is eigenlijk een script die gebruik maakt van tc om het netwerkverkeer voor een bepaalde netwerkverbinding te manipuleren (QoS). Uitgaand verkeer wordt gemanipuleerd door het in wachtrijen met verschillende prioriteiten te plaatsen, terwijl inkomend verkeer wordt beperkt door pakketten te blokkeren.
Wondershaper is meer dan een bandbreedte regelaar. Wondershaper probeert tijdens zware downloads en uploads te zorgen voor lage latentie (wachttijden) voor interactieve sessies zoals SSH. Het zorgt er eveneens voor dat zware uploads (zoals Dropbox synchronisatie) het downloaden niet blokkeert, en omgekeerd.
Wondershaper installeer je met de volgende opdracht:
dany@laptop:~> sudo zypper install wondershaper root's password: Gegevens van opslagruimte laden... Lezen van geïnstalleerde pakketten... Pakketafhankelijkheden oplossen... Het volgende NIEUWE pakket zal worden geïnstalleerd: wondershaper 1 nieuw te installeren pakket. Totale downloadgrootte: 19,6 KiB. Reeds in de cache: 0 B. Na de bewerking zal aanvullend 40,1 KiB worden gebruikt. doorgaan? [j/n/? alle opties tonen] (j): pakket wondershaper-1.1a-374.2.noarch wordt opgehaald (1/1), 19,6 KiB ( 40,1 KiB uitgepakt) Ophalen: wondershaper-1.1a-374.2.noarch.rpm ................................[GEREED] Controleren op bestandsconflicten: .........................................[GEREED] (1/1) Installeren: wondershaper-1.1a-374.2.noarch ..........................[GEREED] Aanvullende rpm-uitvoer: Updating /etc/sysconfig/wondershaper...
Om de maximum download/upload bandbreedte voor eth1 op 300 Kbit/s en 100 Kbit/s in te stellen, pas je het configuratiebestand /etc/sysconfig/wondershaper aan. Het configuratiebestand bevat als commentaar de uitleg van de verschillende instellingen.
sudo joe /etc/sysconfig/wondershaper
Wondershaper start je met de opdracht:
sudo /usr/sbin/wshaper.cbq start
De werking van Wondershaper vraag je op met:
sudo /usr/sbin/wshaper.cbq status
Wondershaper uitschakelen:
sudo /usr/sbin/wshaper.cbq stop
Om een aangepaste configuratie te activeren:
sudo /usr/sbin/wshaper.cbq restart
Onderstaande afbeelding toont de snelheid van Firefox met ingeschakelde Wondershaper (300 Kbit/s download).
En zonder Wondershaper.