LXF119 Трикъл

Абонамент за печатната версия Цяла 2015 г. (12 броя) Първа половина (6 броя) Втора половина (6 броя)Абонамент за електронната версия Цяла 2015 г. (12 броя) Първа половина (6 броя) Втора половина (6 броя)Файлове на стари броеве на списанието (печатни версии) Цяла 2014 г. (12 броя) Първо полугодие (6 броя) Второ полугодие (6 броя)
Hardcore LinuxТествайте себе си в готин проект за напреднали потребители

Съдържание

Trickle: Контрол на мрежовия трафик

Всеки е бил в ситуация, в която сте спрели за момент, пренесли сте се в миналото и сте си казали: „Защо тогава не знаех това?“ И ако не сте го направили лично,Trickleще ви върне много от тези спомени наведнъж. СTrickleможете да контролирате скоростите нагоре и надолу по веригата за приложения, така че нито една програма да не заема целия канал. Това ще ви помогне да се уверите, че изтеглянията наFirefoxне пречат на изтеглянето на необходимия ви файл чрезFTP.

Управлението на ширината на канала е една от обичайните задачи на системния администратор, независимо дали в голяма корпорация или в малък офис. В наше време едва ли има хора, които не са срещали или поне чували оплаквания за отделни потребители на мрежата, които поглъщат цялата ширина на канала. Необходимостта от контрол на честотната лента за отделните потребители в мрежата е ясна за всички, но може би се питате дали има реална нужда от ограничаване на входящите или изходящите скорости за отделните приложения. Отговорът не е достатъчен, за да кажете „да“. Единственият път, когато наистина ще оценитеTrickle, е когато едно приложение поеме целия трафик за себе си, превръщайки живота в кошмар за други програми. По различно време, за различнипричини, приложенията са в състояние да покажат упоритост и непримиримост.

Сигурно сте чували приказката за воина, който стъпил на тесния мост, по който можел да мине само един човек; а от другата страна стоеше друг воин. Начинът да се реши кой ще тръгне първи беше или да се признае превъзходството на другия, или да се предизвика на битка до първа кръв. Краят на тази история зависи от това кой воин харесва разказвачът или кой воин харесваEmacsповече отVi. Приложенията често се оказват в подобна ситуация, тъй като мостът обикновено не е достатъчно широк за всички приложения и понякога има повече от двама претенденти за един мост. Да знаеш как да управляваш честотната лента, като я споделяш между приложения, е като да притежаваш най-яркия и остър меч и несравнимо умение. Освен това прави кръвта ви прозрачна и никога няма да загубите първата кръвна битка. Плюс - разширява моста за всички. Това е много дзен философско решение, ако не ви е грижа да губите слава в "кървави" битки.

Водопроводчик на канала

Ако сте на машина Fedora или Debian/Ubuntu,Trickleе достатъчен, за да инсталиратеTrickleилиaptget.Trickleзависи само от една библиотека,libevent, и вече трябва да сте я инсталирали.Libeventсе предлага в повечето съвременни дистрибуции. Всеки, който желае, може също да сглоби този великолепен ограничител на трафика от източника, като използва триотоconfigure, makeиmake install.

Trickleнамалява скоростта чрез забавяне на данните, изпратени през сокета. Той предоставя алтернативна версия на API за BSD сокет, която кара извикванията на сокет да бъдат прихванати отTrickle. Скоростта е ограничена от количеството данни, които се четат или записваткъм/от контакта.Trickleможе да работи само при TCP връзка и не може да се използва за управление на UDP потоци като DNS.

TCP връзките също не са подходящи за всеки. Тъй катоTrickleизползва динамично свързване и зареждане, той работи само с приложения, които поддържат динамични библиотеки (Glibc). Статично свързаните приложения не са съвместими сTrickle. За да определите далиTrickleе подходящ за дроселиране на определено приложение, използвайте командатаldd, която ще ви даде списък с всички негови външни библиотеки. Например, за да видите далиTrickleще работи сEpiphanyбраузър, въведете командата

Ако забравите пътя до приложението, което искате да проверите с помощната програмаldd, извикайте командатаwhich. Например,кой rpmще върне/bin/rpm.

Можете да проведете подобен тест за други приложения -KTorrent, KFTPGrabberи др. Резултатът ще покаже далиTrickleможе да контролира скоростта на мрежовите връзки в тези програми. По този начин можете дори да ограничите честотната лента, налична за командатаRPM, когато инсталирате или избирате пакети.

Това не е трик, атрик

С помощта наTrickleизберете подходящите скорости нагоре и надолу по веригата, за да ограничите приложенията. Не е нужно нищо особено, за да накаратеTrickleда забави вашето приложение - просто използвайте превключвателите-dили-u, за да настроитеTrickleна разрешените за програмата входящи и изходящи скорости. Например командата

ще накара пакета RPM да бъде изтеглен чрезWgetпри не повече от 20 Kbps. Скептиците ще забележат, чеWgetвече има параметър--limit-rate, но нека това е илюстрация на моята неспособност да измисля по-добър пример.

Превключвателят-dзадава скоростта надолу по веригата, а превключвателят-uконтролира изходящата скорост. Ако не ви се занимава с конфигурирането на всяко приложение поотделно, задайте глобалните скорости с командата

Сега, след като знаем какви приложенияTrickleможе да ограничи, нека се опитаме да съкратим входящия канал за командата RPM. Първо, нека разберем далиTrickleима власт над него.

Да кажем, че искаме да ограничим наличната скорост на изтегляне наRPMдо 5Kbps. С клавиша-dтова се прави по следния начин:

В този случай не е необходимо да задавате лимит на скоростта на изходящия поток. Тъй катоRPMможе да инсталира пакети директно от отдалечени източници, без първо да ги изтегля, когато изпълните командата

веднага ще забележите намаляване на скоростта.

Ако проектирате уебсайтове, можете да използватеTrickle, за да симулирате нискоскоростни модемни връзки (комутируема връзка или GPRS), когато тествате производителността

Ако бях на твое място, сега щях да отворя терминал и да видя колко приложения могат да се контролират сTrickle. Моля, имайте предвид, че когато фиксирате скоростта за една програма, например браузър, разпределената честотна лента се разделя между всички едновременно изтеглени файлове. И получих потвърждение за това. По-долу ще видим какво се случва с двата торента, които се опитах да изтегля сKTorrent, когато наличната честотна лента е ограничена до 20 kbps.

Ако мислите, чеTrickleне прави нищо друго, освен да регулира скоростта на качване и изтегляне, тогава грешите. Този инструмент ви позволява да приоритизирате приложенията и можете също да задаватеизглаждане на параметрите по време и дължина. Не се плашете от този жаргон. С изглаждането на времето вие определяте интервал от време, за който приложението да предава данни. По-голямата стойност ще доведе до изблици на изпращане и получаване на данни, докато по-малката стойност ще осигури плавно и непрекъснато предаване. Задава стойността на изглаждане във времето (в секунди) с клавиш-t. Стойността по подразбиране е 5 s. Според страницатаmanTrickedвремената за изглаждане около 1s са идеални за интерактивни приложения и 1 до 10s за приложения, които прехвърлят големи количества данни. В допълнение към изглаждането по време, можете да зададете изглаждане по дължина с помощта на клавиша-l.

Постоянни настройки

Както вече споменахме, дефинирането на глобални скорости (задаване на ограничения на скоростта за всички приложения) се извършва с помощта на командатаtrickled. Е, какво ще стане, ако трябва да дефинирате изглаждащи стойности във времето и дължината, различни за различните приложения? За да постигнете този героичен подвиг, вижте/etc/trickled.conf. Когато стартиратеTrickle, той проверява дали демонътtrickledработи и прилага настройките в този файл към програмите, които се изпълняват. Стойностите на параметрите, определени отTrickleна командния ред, когато се стартира, имат предимство пред тези, посочени в/etc/trickled. confи ги заменете.

Всеки раздел на файла е маркиран с квадратни скоби. Форматът е прост - но не ми вярвайте на думата, вижте сами:

Първото нещо, на което трябва да обърнете внимание вtrickled.confе настройкатаPriority: приоритетът, който трябва да бъде зададен спрямо други услуги. По-ниска стойност означава по-висок приоритет. И какво дава, ще попитате? Е, например услугите с по-висок приоритет получават по-голям дял от канала отдруги. В допълнение, въз основа на приоритетите,trickledсъздава своя собствена опашка, благодарение на която можете да се свържете с услугата, дори ако лентата е пълна. Ето моето копие на този файл; ще ви покаже как се превежда в реалния свят.

Каква е засадата?

Покрихме почти всичко, коетоTrickleможе да направи, и предполагам, че ви впечатлих. Но пълна ли е тази картина? Може ли инструмент, който изпълнява толкова важна функция, наистина да няма недостатъци? За съжаление не. И най-големият му недостатък е, че не е виждал нова версия от много години. Но няма за какво да се притеснявате: това е обща характеристика на много проекти с отворен код, техните разработчици често са ограничени във времето за решаване на планирани задачи.

Обърнете се към PDF файла, ако сте любопитни за техническите характеристики, които съставляват гръбнака наTrickle. Той също така описва защоTrickleработи само с TCP връзки.

В зависимост от вашите изисквания и професия, може да искате да проучите как работиTrickleс нещо катоVNC Viewer. Както е описано по-горе с командатаldd, Trickleсъщо работи добре с нея. Считайте това за нашия съвет, за да започнете да експериментирате.

Друг проблем сTrickleе, че не работи добре с всички приложения. Откакто се пристрастих към работната среда на Gnome на моята машина Fedora, имам инсталиран клиентBitTorrent TransmissionосвенKTorrent, който работи добре сTrickle. Подобно наKTorrent, Transmissionсъщо ви позволява вътрешно да ограничите скоростта на изтегляне/качване на торент. Когато задавате скоростта надолу по веригата заTransmissonсTrickleвсичко е перфектно. Но ако ограничите изходящото, тогава скоростта на входящото също ще падне. Например, когатозадаване на скоростта на качване на 10 kbps, скоростта на изтегляне няма да надхвърли тези ограничения. За да зададете скоростта отПредаване, изберете торент от списъка и щракнете върху бутонаИнформация за торента. Сега задайте скоростта на качване и изтегляне в разделаОпции.

Самотен бизон?

В никакъв случай! Има много ограничители на честотната лента и всеки има свой собствен набор от функции и капризи. Един такъв инструмент еWondershaper. Подобно наTrickle, той също работи катоBash, като помощна програма за команден ред и всичко останало. За тези, които не са онлайн или нямат множество мрежови интерфейси,Wondershaperвероятно е безполезен. Предимството му е възможността за ограничаване на трафика на конкретен интерфейс. Така че, ако искате да ограничите скоростта на изтегляне и качване наeth2, командвайтеwondershaper eth2 downspeed upspeed. За разлика отTrickle, където настройките се губят, когато затворите терминала (само ако сте стартирали приложението сtrickle -d),wondershaper clear [network_interface]се използва за деактивиране на оформянето на трафика. В нашия случай трябва да настроим интерфейсаeth2.

Wondershaperе в хранилищата на Ubuntu и Debian. Потребителите на други дистрибуции могат да изтеглят компресирания архив и да извлекат скриптаwshaperот него.

Със способността да контролира предаванията през мрежов интерфейс,Wondershaperе вдъхновил много други ограничители на честотната лента. Повечето от тях, катоTrickleиWondershaper, не са виждали нова версия от много години, но всеки има своите привърженици.LXF

Стъпка по стъпка: Спрете изтеглянето наKTorrent

трикъл

  • 1 бяганеKTorrentМожете да стартиратеKTorrentотПриложения > Интернетили от терминала, чрез командаktorrent. В зависимост от метода на стартиране, скоростите трябва да бъдат зададени предварително. Ако не искате да задавате скоростта преди всяко стартиране, можете да дадете псевдоним наKTorrent.

скоростта

  • 2 Задайте скорост на торентАко имате няколко торента в опашката за изтегляне, наличната честотна лента ще бъде споделена между тях. От моя опит мога да кажа, че най-често един от торентите спира, а другият изяжда целия канал. Веднъж на всеки няколко минути, за няколко секунди, лентата се разделя почти поравно.

Trickle

  • 3 Ограничения за изтеглянеМаксималната скорост на изтегляне/качване за всеки торент също може да бъде зададена в самияKTorrent. Когато ограничите скоростта на торент до стойност, по-малка от тази, която му е далTrickle, друг торент ще вземе останалото. Когато добавите нов торент, той ще получи по-малко от 1Kbps за първите няколко минути, а след това други торенти ще започнат да споделят с него.