MC, 17:50 środa, 14.11.2012 r.
Ilustracja do artykułu: Linux trickle - Jak ograniczyć prędkość Internetu dla poszczególnych programów

Linux trickle - Jak ograniczyć prędkość Internetu dla poszczególnych programów

Kontrola szybkości transferu pobierania bądź wysyłania danych przez poszczególne programy (innymi słowy kontrola szerokości pasma) to bardzo istotne zagadnienie jeśli chodzi o zarządzanie systemem. Wiedza z tego zakresu przyda się każdemu, nawet niezaawansowanemu użytkownikowi komputera. Ten wpis poświęcam zatem na krótki opis programu Trickle dostępnego na systemy Linux.

Po co kontrolować prędkości transferu?

Chociaż można mnożyć przykłady na konieczność kontrolowania, czyli de facto ograniczania prędkości transferu czy to nadawania, czy odbioru danych przez poszczególne programy, chciałbym posłużyć się najprostszym z nich, który może dotknąć każdego użytkownika komputera. Dajmy na to, że chcemy pobierać pewne pliki przy pomocy dowolnej przeglądarki internetowej np. Firefoxa. Domyślnie, to jest bez dodatkowych wtyczek, nie mamy możliwości ograniczenia prędkości pobieranych danych, co może skutkować zapchaniem łącza tak, że inne programy nie będą miały dostatecznych zasobów do swojego działania. W takiej właśnie sytuacji warto by nałożyć pewne ograniczenia na przeglądarkę, niejako z zewnątrz niej. Wtedy z pomocą może przyjść program Trickle.

Co robi program Trickle?

Program Trickle potrafi limitować połączenia TCP poszczególnych procesów poprzez opóźnianie przepływu na gniazdach wejścia i wyjścia. Używa się go w niezwykle prosty sposób, co z resztą pokażę za moment, jednak już teraz chciałbym wspomnieć o pewnym ograniczeniu tego programu. Mianowicie nie może on się odnosić do już istniejących procesów. To znaczy, odwołując się do naszego przykładu, nie będziemy mogli wpłynąć na dopuszczalny transfer przeglądarki, jeśli nie uruchomimy jej właśnie poprzez program Trickle. Jeśli jednak wystartujemy proces, od razu nakładając na niego ograniczenia, będziemy je mogli potem modyfikować. Mam nadzieję, że wszystko wyjaśni się na przykładach.

Jak używać Trickle do ograniczania transferu?

W pierwszej kolejności należy zadbać, by program ten był dostępny w naszym systemie. Jeśli tak nie jest, to musimy go zainstalować, np. w ten sposób (dla dystrybucji Debian/Ubuntu):
sudo apt-get install trickle
Gdy program jest gotowy do użycia, możemy uruchomić proces, nakładając górne ograniczenia na wykorzystywaną przez niego prędkość transferu. Składnia wywołania wygląda następująco:
trickle -d <maksymalna prędkość pobierania w KB/s> -u <maksymalna prędkość wysyłania w KB/s> <program do uruchomienia>
Czyli przykładowo:
trickle -d 100 -u 20 firefox
Oczywiście możemy nakładać ograniczenia jedynie na jeden kierunek przepływy danych:
trickle -d 100 firefox
czy:
trickle -u 20 firefox

Jak zmieniać te ograniczenia w trakcie działania procesu?

Jak już wspomniałem, mamy możliwość zmiany ustawień granicznych szybkości transferu dla procesów uruchomionych przez trickle. Używa się do tego polecenia trickled:
trickled -u 10 -d 10
Takie wywołanie zmieni ograniczenie transferu wszystkich procesów już ograniczonych, do 10 KB/s (łącznie!)

Na zakończenie chciałbym tylko zachęcić do przejrzenia podręczników tych poleceń, ponieważ pokazałem tylko najbardziej esencjonalne opcje programu Trickle, a posiada on ich jeszcze kilka, które mogą się okazać przydatne.

man trickle
man trickled

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: