![Najbolji program za ažuriranje softvera za Windows 10](/f/705cf63a4361163181936fbb6a34e965.png?width=100&height=100)
Jeste li se ikada susreli sa situacijama u kojima je jedna aplikacija dominirala vašom propusnošću cijele mreže? Ako ste ikada bili u situaciji u kojoj je jedna aplikacija pojela sav vaš promet, tada ćete cijeniti ulogu aplikacije za oblikovanje propusnosti protoka.
Ili ste a administrator sustava ili samo a Linux korisnik, morate naučiti kontrolirati brzine učitavanja i preuzimanja za aplikacije kako bi se pobrinule da vaša mrežna propusnost ne spali jedna aplikacija.
[Možda će vam se svidjeti i: 16 korisnih alata za nadzor propusnosti za analizu upotrebe mreže u Linuxu ]
Curiti je alat za oblikovanje mrežne propusnosti koji nam omogućuje upravljanje brzinama učitavanja i preuzimanja aplikacija kako bismo spriječili da bilo koja od njih pokvari svu (ili većinu) dostupnu propusnost.
Ukratko, kapljica vam dopušta kontrolirati mrežni promet stope po aplikaciji, za razliku od kontrole po korisniku, što je klasičan primjer oblikovanja propusnosti u okruženju klijent-poslužitelj, i vjerojatno je to način na koji smo poznatiji.
Osim toga, kapljica nam može pomoći da definiramo prioritete po aplikaciji, tako da kada postavljena su ukupna ograničenja za cijeli sustav, prioritetne aplikacije i dalje će imati veću propusnost automatski.
Za izvršavanje ovog zadatka, kapljica postavlja ograničenja prometa na način na koji se podaci šalju i primaju iz utičnica pomoću TCP veza. Moramo napomenuti da, osim brzina prijenosa podataka, kapanje ni na koji način ne mijenja ponašanje procesa koji oblikuje u bilo kojem trenutku.
Jedino je ograničenje, da tako kažem, to što kapljica neće raditi sa statički povezanim aplikacijama ili binarnim datotekama s SUID ili SGID bitovi postavljeni jer koristi dinamičko povezivanje i učitavanje kako bi se smjestio između oblikovanog procesa i povezane mrežne utičnice. Trickle tada djeluje kao posrednik između ove dvije softverske komponente.
Budući da za pokretanje ne trebaju privilegije superkorisnika, korisnici mogu sami postaviti ograničenja prometa. Budući da to možda nije poželjno, istražit ćemo kako postaviti ukupna ograničenja koja korisnici sustava ne mogu premašiti. Drugim riječima, korisnici će i dalje moći upravljati svojim stopama prometa, ali uvijek unutar granica koje je postavio administrator sustava.
U ovom ćemo članku objasniti kako ograničiti mrežnu propusnost koju aplikacije koriste na Linux poslužitelju s kapljicom.
Za generiranje potrebnog prometa koristit ćemo ncftpput i ncftpget (oba su alata dostupna instaliranjem ncftp) na klijentu (CentOS poslužitelj - dev1: 192.168.0.17), i vsftpd na poslužitelju (Debian - dev2: 192.168.0.15) u demonstracijske svrhe. Iste upute također rade na Crveni šešir, Fedora i Sustavi temeljeni na Ubuntuu.
1. Za RHEL/CentOS 8/7, omogućiti spremište EPEL -a. Dodatni paketi za Enterprise Linux (EPEL) spremište je visokokvalitetnog besplatnog softvera otvorenog koda koji održava Fedora projekt i 100% je kompatibilan s njegovim nadogradnjama, kao što je Red Hat Enterprise Linux i CentOS. Oba curiti i ncftp su dostupni iz ovog spremišta.
2. Instalirati ncftp kako slijedi:
# yum update && sudo yum install ncftp [Na sustavima temeljenim na RedHat -u] # aptitude update && aptitude install ncftp [Na sustavima temeljenim na Debianu]
3. Postavite FTP poslužitelj na zasebnom poslužitelju. Imajte na umu da, iako je FTP inherentno nesiguran, još uvijek se široko koristi u slučajevima kada nije potrebna sigurnost u prijenosu ili preuzimanju datoteka.
Koristimo ga u ovom članku za ilustraciju blagodati kapanja i zato što prikazuje stope prijenosa u stdout na klijentu, a mi ćemo ostaviti raspravu o tome treba li ili ne treba biti korištena za neki drugi datum i vrijeme.
# yum update && yum install vsftpd [Na sustavima temeljenim na RedHat -u] # apt update && apt install vsftpd [Na sustavima temeljenim na Debianu]
Sada uredite datoteku /etc/vsftpd/vsftpd.conf datoteku na FTP poslužitelju na sljedeći način:
$ sudo nano /etc/vsftpd/vsftpd.conf. ILI. $ sudo /etc/vsftpd.conf.
Napravite sljedeće promjene:
anonimno_moguće = NE. local_enable = DA. chroot_local_user = DA. allow_writeable_chroot = DA.
Nakon toga, svakako pokrenite vsftpd za svoju trenutnu sesiju i omogućite ga za automatski početak na budućim čizmama:
# systemctl start vsftpd [Za sustave temeljene na systemd] # systemctl omogući vsftpd. # service vsftpd start [Za sustave temeljene na inicijalu] # chkconfig vsftpd uključen.
4. Ako ste odlučili postaviti FTP poslužitelj u CentOS/RHEL kapljice sa SSH ključevima za daljinski pristup, trebat će vam korisnički račun zaštićen lozinkom s odgovarajućim direktorija i dozvole za datoteke za prijenos i preuzimanje željenog sadržaja IZVAN korijenskog matičnog direktorija.
Zatim možete pregledati svoj kućni imenik unosom sljedećeg URL -a u svoj preglednik. Pojavit će se prozor za prijavu koji će od vas zatražiti valjani korisnički račun i lozinku na FTP poslužitelju.
ftp://192.168.0.15.
Ako autentifikacija uspije, vidjet ćete sadržaj vašeg kućnog imenika. Kasnije u ovom vodiču moći ćete osvježiti tu stranicu za prikaz datoteka koje su prenesene tijekom prethodnih koraka.
Sada instalirajte trickle putem njam ili prikladan.
Kako bi se osigurala uspješna instalacija, smatra se dobrom praksom provjeriti jesu li trenutno instalirani paketi ažurirani (pomoću yum update) prije instaliranja samog alata.
# yum -y ažuriranje && yum instalacija kap [na sustavima temeljenim na RedHat -u] # apt -y update && apt install trickle [Na sustavima temeljenim na Debianu]
Provjerite hoće li kapljica raditi s željenom binarnom datotekom. Kao što smo ranije objasnili, kapljica će raditi samo s binarnim datotekama koje koriste dinamičke ili zajedničke knjižnice. Da bismo provjerili možemo li koristiti ovaj alat s određenom aplikacijom, možemo se koristiti poznatim ldd komunalni, gdje ldd označava popis dinamičkih ovisnosti.
Konkretno, tražit ćemo prisutnost glibc (knjižnica GNU C) na popisu dinamičkih ovisnosti bilo kojeg programa jer upravo ta knjižnica definira sistemske pozive uključene u komunikaciju putem utičnica.
Pokrenite sljedeću naredbu nad danom binarnom datotekom da biste vidjeli može li se kapljica koristiti za oblikovanje njene propusnosti:
# ldd $ (koji [binarno]) | grep libc.so.
Na primjer,
# ldd $ (koji ncftp) | grep libc.so.
čiji je izlaz:
# libc.so.6 => /lib64/libc.so.6 (0x00007efff2e6c000)
Niz između zagrada u izlazu može se mijenjati od sustava do sustava, pa čak i između narednih izvođenja iste naredbe jer predstavlja adresu učitavanja knjižnice u fizičkoj memoriji.
Ako gornja naredba ne vrati nikakve rezultate, to znači da binarna datoteka protiv koje je pokrenuta ne koristi libc, pa se u tom slučaju kapaljka ne može koristiti kao oblikovač propusnosti.
Najosnovnija upotreba kapljica je u samostalnom načinu rada. Pomoću ovog pristupa trickle se koristi za izričito definiranje brzine preuzimanja i učitavanja određene aplikacije. Kao što smo ranije objasnili, radi sažetosti, koristit ćemo istu aplikaciju za preuzimanje i postavljanje testova.
Usporedit ćemo brzine preuzimanja i učitavanja sa i bez upotrebe kapljice. The -d
opcija označava brzinu preuzimanja u KB/s, dok -u
zastava govori da kapljica ograniči brzinu prijenosa istom jedinicom. Osim toga, koristit ćemo i -s
flag, koja određuje da se kapljica treba pokrenuti u samostalnom načinu rada.
Osnovna sintaksa za pokretanje trickle -a u samostalnom načinu rada je sljedeća:
# trickle -s -d [brzina preuzimanja u KB/s] -u [brzina prijenosa u KB/s]
Kako biste sami izveli sljedeće primjere, svakako ih imate curiti i ncftp instaliran na računaru klijenta (192.168.0.17 u mom slučaju).
Koristimo slobodno distribuiranu Osnove Linuxa PDF datoteka (dostupna na ovdje) za sljedeće testove.
Ovu datoteku možete u početku preuzeti u svoj trenutni radni direktorij sa sljedećom naredbom:
# wget http://linux-training.be/files/books/LinuxFun.pdf
Sintaksa za prijenos datoteke na naš FTP poslužitelj bez trunke je sljedeća:
# ncftpput -u korisničko ime -p lozinka 192.168.0.15 /remote_directory local -filename
Gdje /remote_directory je put do direktorija za prijenos u odnosu na dom korisničkog imena, i local-filename je datoteka u vašem trenutnom radnom direktoriju.
Konkretno, bez kapljice dobivamo najveću brzinu prijenosa od 52,02 MB/s (imajte na umu da ovo nije stvarna prosječna brzina prijenosa, već trenutni početni vrhunac), a datoteka se učitava gotovo odmah:
# ncftpput -u korisničko ime -p lozinka 192.168.0.15 /testdir LinuxFun.pdf
Izlaz:
LinuxFun.pdf: 2,79 MB 52,02 MB/s.
Uz kapljicu, ograničit ćemo brzinu prijenosa pri prijenosu na 5 KB/s. Prije nego što drugi put učitamo datoteku, moramo je izbrisati iz odredišnog direktorija; inače, ncftp obavijestit će nas da je datoteka u odredišnom direktoriju ista koju pokušavamo prenijeti i neće izvršiti prijenos:
# rm /absolute/path/to/destination/directory/LinuxFun.pdf
Zatim:
# trickle -s -u 5 ncftpput -u korisničko ime -p lozinka 111.111.111.111 /testdir LinuxFun.pdf
Izlaz:
LinuxFun.pdf: 2,79 MB 4,94 kB/s.
U gornjem primjeru možemo vidjeti da je prosječna brzina prijenosa pala na ~ 5 KB/s.
Prvo, ne zaboravite izbrisati PDF iz izvornog direktorija izvora:
# rm /absolute/path/to/source/directory/LinuxFun.pdf
Imajte na umu da će sljedeći slučajevi preuzeti udaljenu datoteku u trenutni direktorij na računalu klijenta. Na tu činjenicu ukazuje razdoblje ('.‘) Koja se pojavljuje nakon IP adrese FTP poslužitelja.
Bez kapljice:
# ncftpget -u korisničko ime -p lozinka 111.111.111.111. /testdir/LinuxFun.pdf
Izlaz:
LinuxFun.pdf: 2,79 MB 260,53 MB/s.
Uz kapaljku, ograničenje brzine preuzimanja na 20 KB/s:
# trickle -s -d 30 ncftpget -u korisničko ime -p lozinka 111.111.111.111. /testdir/LinuxFun.pdf
Izlaz:
LinuxFun.pdf: 2,79 MB 17,76 kB/s.
Trickle se također može pokrenuti u neupravljanom načinu, slijedeći niz parametara definiranih u /etc/trickled.conf. Ova datoteka definira kako se trickled (daemon) ponaša i upravlja curkom.
Osim toga, ako želimo postaviti globalne postavke koje će se, općenito, koristiti u svim aplikacijama, morat ćemo upotrijebiti naredbu trickled. Ova naredba pokreće demon i omogućuje nam da definiramo ograničenja preuzimanja i učitavanja koja će dijeliti sve aplikacije koje se pokreću kroz protok, bez potrebe da svaki put navodimo ograničenja.
Na primjer, pokretanje:
# iscurilo -d 50 -u 10.
Dovest će do toga da će brzina preuzimanja i učitavanja bilo koje aplikacije koja se pokreće kroz cijev biti ograničena na 30 KB/s i 10 KB/s, odnosno.
Imajte na umu da u svakom trenutku možete provjeriti radi li Trickled i s kojim argumentima:
# ps -ef | grep je kapao | grep -v grep.
Izlaz:
korijen 16475 1 0 prosinca 24? 00:00:04 procurilo -d 50 -u 10.
U ovom primjeru koristit ćemo slobodno distribuiran “He je dar”, Dostupan za preuzimanje sa ovaj link.
U početku ćemo preuzeti ovu datoteku u vaš trenutni radni direktorij sa sljedećom naredbom:
# wget http://media2.ldscdn.org/assets/missionary/our-people-2014/2014-00-1460-he-is-the-gift-360p-eng.mp4
Prvo ćemo pokrenuti istrošenog demona gore navedenom naredbom:
# iscurilo -d 30 -u 10.
Bez kapljice:
# ncftpput -u korisničko ime -p lozinka 192.168.0.15 /testdir 2014-00-1460-he-is-the-gift-360p-eng.mp4
Izlaz:
2014-00-1460-he-is-the-gift-360p-eng.mp4: 18.53 MB 36.31 MB/s.
Sa kapljicom:
# trickle ncftpput -u korisničko ime -p lozinka 192.168.0.15 /testdir 2014-00-1460-he-is-the-gift-360p-eng.mp4
Izlaz:
2014-00-1460-he-is-the-gift-360p-eng.mp4: 18.53 MB 9.51 kB/s.
Kao što možemo vidjeti u gornjem ispisu, brzina prijenosa upload -a pala je na ~ 10 KB/s.
Kao u Primjer 2, preuzimat ćemo datoteku u trenutni radni direktorij.
Bez kapljice:
# ncftpget -u korisničko ime -p lozinka 192.168.0.15. /testdir/2014-00-1460-he-is-the-gift-360p-eng.mp4
Izlaz:
2014-00-1460-he-is-the-gift-360p-eng.mp4: 18.53 MB 108.34 MB/s.
Sa kapljicom:
# trickle ncftpget -u korisničko ime -p lozinka 111.111.111.111. /testdir/2014-00-1460-he-is-the-gift-360p-eng.mp4
Izlaz:
2014-00-1460-he-is-the-gift-360p-eng.mp4: 18.53 MB 29.28 kB/s.
Što je u skladu s ranije postavljenim ograničenjem preuzimanja (30 KB/s).
Bilješka: Da nakon što je demon pokrenut, nema potrebe postavljati pojedinačna ograničenja za svaku aplikaciju koja koristi kapljice.
Kao što smo ranije spomenuli, može se dodatno prilagoditi oblikovanje propusnosti protoka kroz trickled.conf. Tipičan odjeljak u ovoj datoteci sastoji se od sljedećeg:
[servis] Prioritet =Zaglađivanje vremena = Duljina-zaglađivanje =
Gdje,
Promjena glatkih vrijednosti prevest će se u aplikaciju koju je odredio [servis] koristeći stope prijenosa unutar intervala umjesto fiksne vrijednosti. Nažalost, ne postoji formula za izračun donje i gornje granice ovog intervala jer uglavnom ovisi o svakom pojedinom scenariju.
Slijedi a procurilo.conf primjer datoteke u CentOS 7 klijentu (192.168.0.17):
[ssh] Prioritet = 1. Vremenski zaglađivanje = 0,1. Zaglađivanje duljine = 2 [ftp] Prioritet = 2. Zaglađivanje vremena = 1. Zaglađivanje duljine = 3.
Koristeći ovu postavku, trickled će imati prednost SSH veze nad FTP prijenosima. Imajte na umu da interaktivni proces, poput SSH-a, koristi manje vrijednosti izravnavanja vremena, dok usluga koja obavlja skupni prijenos podataka (FTP) koristi veću vrijednost.
Vrijednosti zaglađivanja odgovorne su za brzine preuzimanja i učitavanja u našem prethodnom primjeru koje se ne podudaraju s točno navedenom vrijednošću koju je odredio demon koji se izvlačio, već se kreću u intervalu blizu nje.
[Možda će vam se svidjeti i: Kako osigurati i učvrstiti OpenSSH poslužitelj ]
U ovom smo članku istražili kako ograničiti propusnost koju aplikacije koriste pomoću kapljica na Fedora-inim distribucijama i Debian-u / izvedenicama. Drugi mogući slučajevi uporabe uključuju, ali nisu ograničeni na:
Pitanja i komentari su dobrodošli. Upotrijebite donji obrazac da biste nam ih poslali.