Kif tillimita l-bandwidth tan-netwerk użat minn applikazzjonijiet f'sistema Linux bi Trickle


Qatt iltqajt ma' sitwazzjonijiet fejn applikazzjoni waħda ddominat il-bandwidth tan-netwerk kollu tiegħek? Jekk qatt kont f'sitwazzjoni fejn applikazzjoni waħda ate it-traffiku kollu tiegħek, allura inti se tivvaluta r-rwol tal-applikazzjoni trickle bandwidth shaper.

Jew inti amministratur tas-sistema jew sempliċement utent tal-Linux, trid titgħallem kif tikkontrolla l-veloċitajiet ta' upload u download għall-applikazzjonijiet biex tiżgura li l-bandwidth tan-netwerk tiegħek ma jinħaraqx b'applikazzjoni waħda.

[ Tista 'tħobb ukoll: 16 Għodda Utli ta' Monitoraġġ tal-Bandwidth biex Janalizzaw l-Użu tan-Netwerk fil-Linux ]

X'inhu Trickle?

Trickle hija għodda tal-formazzjoni tal-bandwidth tan-netwerk li tippermettilna niġġestixxu l-veloċitajiet tat-tlugħ u tat-tniżżil tal-applikazzjonijiet sabiex tipprevjeni li kwalunkwe waħda minnhom tgħaqqad il-bandwidth kollha (jew il-biċċa l-kbira) disponibbli.

Fi ftit kliem, trickle iħallik tikkontrolla r-rata tat-traffiku tan-netwerk fuq bażi ta 'kull applikazzjoni, għall-kuntrarju tal-kontroll għal kull utent, li huwa l-eżempju klassiku ta' iffurmar ta 'bandwidth f'ambjent klijent-server, u huwa probabbilment is-setup li aħna aktar familjari magħhom.

Kif jaħdem Trickle?

Barra minn hekk, trickle jista 'jgħinna niddefinixxu l-prijoritajiet fuq bażi ta' kull applikazzjoni sabiex meta jkunu ġew stabbiliti limiti ġenerali għas-sistema kollha, l-apps prijoritarji xorta jkollhom aktar bandwidth awtomatikament.

Biex twettaq dan il-kompitu, it-trickle jistabbilixxi limiti tat-traffiku għall-mod li bih id-dejta tintbagħat lil u tiġi riċevuta minn, sokits li jużaw konnessjonijiet TCP. Irridu ninnotaw li, minbarra r-rati tat-trasferiment tad-data, trickle ma jimmodifika bl-ebda mod l-imġieba tal-proċess li qed isawwar fi kwalunkwe mument partikolari.

X'Ma jistax jagħmel Trickle?

L-unika limitazzjoni, biex ngħidu hekk, hija li t-tnixxija mhux se taħdem ma 'applikazzjonijiet jew binarji konnessi b'mod statiku mal-bits SUID jew SGID stabbiliti peress li juża konnessjoni dinamika u tagħbija biex tpoġġi lilu nnifsu bejn il-proċess iffurmat u s-sokit tan-netwerk assoċjat tiegħu. Trickle imbagħad jaġixxi bħala prokura bejn dawn iż-żewġ komponenti tas-softwer.

Peress li t-trickle ma jeħtieġx privileġġi ta 'superuser sabiex jaħdem, l-utenti jistgħu jistabbilixxu l-limiti tat-traffiku tagħhom stess. Peress li dan jista' ma jkunx mixtieq, aħna se nesploraw kif nistabbilixxu limiti ġenerali li l-utenti tas-sistema ma jistgħux jaqbżu. Fi kliem ieħor, l-utenti xorta jkunu jistgħu jimmaniġġjaw ir-rati tat-traffiku tagħhom, iżda dejjem fil-limiti stabbiliti mill-amministratur tas-sistema.

F'dan l-artikolu, se nispjegaw kif nillimitaw il-bandwidth tan-netwerk użat mill-applikazzjonijiet f'server Linux bi trickle.

Biex niġġeneraw it-traffiku meħtieġ, se nużaw ncftpput u ncftpget (iż-żewġ għodod huma disponibbli billi ninstallaw ncftp) fuq il-klijent (server CentOS – dev1: 192.168.0.17), u vsftpd fuq is-server (Debian – dev2: 192.168.0.15) għal skopijiet ta' dimostrazzjoni. L-istess istruzzjonijiet jaħdmu wkoll fuq sistemi bbażati fuq RedHat, Fedora u Ubuntu.

Installazzjoni ta 'ncftp u vsftpd fil-Linux

1. Għal RHEL/CentOS 8/7, ppermettiet ir-repożitorju EPEL. Pakketti Extra għal Enterprise Linux (EPEL) huwa repożitorju ta’ softwer b’xejn u open-source ta’ kwalità għolja miżmum mill-proġett Fedora u huwa 100% kompatibbli mal-ispinoffs tiegħu, bħal Red Hat Enterprise Linux u CentOS. Kemm trickle kif ukoll ncftp huma disponibbli minn dan ir-repożitorju.

2. Installa ncftp kif ġej:

# yum update && sudo yum install ncftp		[On RedHat based systems]
# aptitude update && aptitude install ncftp	[On Debian based systems]	

3. Twaqqaf server FTP f'server separat. Jekk jogħġbok innota li għalkemm l-FTP hija intrinsikament sikura, xorta tintuża ħafna f'każijiet meta s-sigurtà fit-tlugħ jew it-tniżżil ta' fajls ma tkunx meħtieġa.

Qegħdin nużawha f'dan l-artikolu biex nispjegaw il-bontijiet ta 'trickle u minħabba li turi r-rati ta' trasferiment f'stdout fuq il-klijent, u se nħallu d-diskussjoni dwar jekk għandux jew m'għandux jintuża għal data u ħin ieħor.

# yum update && yum install vsftpd 		[On RedHat based systems]
# apt update && apt install vsftpd 	[On Debian based systems]

Issa, editja l-fajl /etc/vsftpd/vsftpd.conf fuq is-server FTP kif ġej:

$ sudo nano /etc/vsftpd/vsftpd.conf
OR
$ sudo /etc/vsftpd.conf

Agħmel il-bidliet li ġejjin:

anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES

Wara dan, kun żgur li tibda vsftpd għas-sessjoni attwali tiegħek u biex tagħmilha għal bidu awtomatiku fuq stivali futuri:

# systemctl start vsftpd 		[For systemd-based systems]
# systemctl enable vsftpd
# service vsftpd start 			[For init-based systems]
# chkconfig vsftpd on

4. Jekk għażilt li twaqqaf is-server FTP f'qatra CentOS/RHEL b'ċwievet SSH għal aċċess remot, ser ikollok bżonn kont tal-utent protett bil-password bid-direttorju xieraq u l-permessi tal-fajls għat-tlugħ u t-tniżżil tal-kontenut mixtieq BARRA mid-dar tal-għeruq. direttorju.

Imbagħad tista' tfittex fid-direttorju tad-dar tiegħek billi ddaħħal il-URL li ġej fil-browser tiegħek. Tieqa tal-login se titfaċċa li ġġiegħlek għal kont tal-utent validu u password fuq is-server FTP.

ftp://192.168.0.15

Jekk l-awtentikazzjoni tirnexxi, tara l-kontenut tad-direttorju tad-dar tiegħek. Aktar tard f'dan it-tutorja, tkun tista' taġġorna dik il-paġna biex turi l-fajls li ttellgħu matul il-passi preċedenti.

Kif Tinstalla Trickle fil-Linux

Issa installa trickle permezz ta 'yum jew apt.

Biex tiġi żgurata installazzjoni b'suċċess, hija kkunsidrata prattika tajba li jiġi żgurat li l-pakketti installati bħalissa huma aġġornati (bl-użu tal-aġġornament yum) qabel ma tinstalla l-għodda nnifisha.

# yum -y update && yum install trickle 		        [On RedHat based systems]
# apt -y update && apt install trickle 	[On Debian based systems]

Ivverifika jekk trickle se jaħdem bil-binarju mixtieq. Kif spjegajna qabel, it-trickle se jaħdem biss ma 'binaries bl-użu ta' libreriji dinamiċi jew kondiviżi. Biex nivverifikaw jekk nistgħux nużaw din l-għodda b'ċerta applikazzjoni, nistgħu nużaw l-utilità magħrufa ldd, fejn ldd tfisser lista dipendenzi dinamiċi.

Speċifikament, se nfittxu l-preżenza ta 'glibc (il-librerija GNU C) fil-lista ta' dipendenzi dinamiċi ta 'kwalunkwe programm partikolari għaliex hija preċiżament dik il-librerija li tiddefinixxi s-sejħiet tas-sistema involuti fil-komunikazzjoni permezz ta' sockets.

Mexxi l-kmand li ġej kontra binarju partikolari biex tara jekk trickle jistax jintuża biex jifforma l-bandwidth tiegħu:

# ldd $(which [binary]) | grep libc.so

Pereżempju,

# ldd $(which ncftp) | grep libc.so

li l-output tiegħu huwa:

# libc.so.6 => /lib64/libc.so.6 (0x00007efff2e6c000)

Is-sekwenza bejn il-parentesi fl-output tista' tinbidel minn sistema għal sistema u anke bejn ġirjiet sussegwenti tal-istess kmand peress li tirrappreżenta l-indirizz tat-tagħbija tal-librerija fil-memorja fiżika.

Jekk il-kmand ta 'hawn fuq ma jirritorna l-ebda riżultat, dan ifisser li l-binarju li kien immexxi miegħu ma jużax libc, u għalhekk trickle ma jistax jintuża bħala bandwidth shaper f'dak il-każ.

Tgħallem Kif tuża Trickle fil-Linux

L-aktar użu bażiku ta 'trickle huwa fil-modalità waħedha. Bl-użu ta 'dan l-approċċ, trickle jintuża biex tiddefinixxi b'mod espliċitu l-veloċitajiet ta' download u upload ta 'applikazzjoni partikolari. Kif spjegajna qabel, għall-finijiet tal-qosor, se nużaw l-istess applikazzjoni għat-testijiet tat-tniżżil u t-tlugħ.

Aħna se nqabblu l-veloċitajiet ta 'tniżżil u upload bi u mingħajr ma nużaw trickle. L-għażla -d tindika l-veloċità tat-tniżżil f'KB/s, filwaqt li l-bandiera -u tgħid li trickle tillimita l-veloċità tat-tlugħ bl-istess unità. Barra minn hekk, se nużaw il-bandiera -s, li tispeċifika li trickle għandu jaħdem f'modalità waħedha.

Is-sintassi bażika biex tmexxi trickle fil-modalità waħedha hija kif ġej:

# trickle -s -d [download rate in KB/s] -u [upload rate in KB/s]

Sabiex twettaq l-eżempji li ġejjin waħdek, kun żgur li jkollok trickle u ncftp installati fuq il-magna tal-klijent (192.168.0.17 fil-każ tiegħi).

Qed nużaw il-fajl PDF tal-Linux Fundamentals li jista' jitqassam liberament (disponibbli minn hawn) għat-testijiet li ġejjin.

Inizjalment tista' tniżżel dan il-fajl fid-direttorju tax-xogħol attwali tiegħek bil-kmand li ġej:

# wget http://linux-training.be/files/books/LinuxFun.pdf 

Is-sintassi biex ittella' fajl fuq is-server FTP tagħna mingħajr tqattigħ hija kif ġej:

# ncftpput -u username -p password 192.168.0.15  /remote_directory local-filename 

Fejn /remote_directory hija l-mogħdija tad-direttorju tat-tlugħ relattiv għad-dar tal-isem tal-utent, u l-isem tal-fajl lokali huwa fajl fid-direttorju tax-xogħol attwali tiegħek.

Speċifikament, mingħajr trickle jkollna l-ogħla veloċità ta 'upload ta' 52.02 MB/s (jekk jogħġbok innota li din mhix il-veloċità medja reali ta 'upload, iżda quċċata tal-bidu instantanju), u l-fajl jittella' kważi istantanjament:

# ncftpput -u username -p password 192.168.0.15  /testdir LinuxFun.pdf 

Output:

LinuxFun.pdf:                                        	2.79 MB   52.02 MB/s

Bil trickle, aħna se jillimitaw ir-rata ta 'trasferiment upload għal 5 KB/s. Qabel ittella 'l-fajl għat-tieni darba, għandna bżonn inħassarha mid-direttorju tad-destinazzjoni; inkella, ncftp jinfurmana li l-fajl fid-direttorju tad-destinazzjoni huwa l-istess li qed nippruvaw intellgħu, u mhux se jwettaq it-trasferiment:

# rm /absolute/path/to/destination/directory/LinuxFun.pdf 

Imbagħad:

# trickle -s -u 5 ncftpput -u username -p password 111.111.111.111 /testdir LinuxFun.pdf 

Output:

LinuxFun.pdf:                                        	2.79 MB	4.94 kB/s

Fl-eżempju ta 'hawn fuq, nistgħu naraw li l-veloċità medja ta' upload niżlet għal ~ 5 KB/s.

L-ewwel, ftakar li tħassar il-PDF mid-direttorju tas-sors oriġinali:

# rm /absolute/path/to/source/directory/LinuxFun.pdf 

Jekk jogħġbok innota li l-każijiet li ġejjin se jniżżlu l-fajl remot fid-direttorju attwali fil-magna tal-klijent. Dan il-fatt huwa indikat mill-perjodu (‘.‘) li jidher wara l-indirizz IP tas-server FTP.

Mingħajr tqattigħ:

# ncftpget -u username -p  password 111.111.111.111 . /testdir/LinuxFun.pdf 

Output:

LinuxFun.pdf:                                        	2.79 MB  260.53 MB/s

Bi trickle, tillimita l-veloċità tat-tniżżil għal 20 KB/s:

# trickle -s -d 30 ncftpget -u username -p password 111.111.111.111 . /testdir/LinuxFun.pdf 

Output:

LinuxFun.pdf:                                        	2.79 MB   17.76 kB/s

Running Trickle fil-Modalità Supervisata [mhux ġestita].

Trickle jista' jaħdem ukoll f'modalità mhux ġestita, wara serje ta' parametri definiti f'/etc/trickled.conf. Dan il-fajl jiddefinixxi kif trickled (id-daemon) jaġixxi u jimmaniġġja trickle.

Barra minn hekk, jekk irridu nissettjaw settings globali biex jintużaw, b'mod ġenerali, mill-applikazzjonijiet kollha, ikollna bżonn nużaw il-kmand trickled. Dan il-kmand imexxi d-daemon u jippermettilna niddefinixxu l-limiti tat-tniżżil u t-tlugħ li se jkunu kondiviżi mill-applikazzjonijiet kollha mmexxija minn trickle mingħajr ma jkollna bżonn nispeċifikaw limiti kull darba.

Per eżempju, taħdem:

# trickled -d 50 -u 10

Se tikkawża li l-veloċitajiet tat-tniżżil u t-tlugħ ta' kwalunkwe applikazzjoni li taħdem permezz ta' trickle tkun limitata għal 30 KB/s u 10 KB/s, rispettivament.

Jekk jogħġbok innota li tista' tiċċekkja fi kwalunkwe ħin jekk trickled huwiex qed jaħdem u b'liema argumenti:

# ps -ef | grep trickled | grep -v grep

Output:

root 	16475 	1  0 Dec24 ?    	00:00:04 trickled -d 50 -u 10

F'dan l-eżempju se nużaw il-video li jista' jitqassam liberament Huwa r-rigal, disponibbli biex jitniżżel minn din il-link.

Inizjalment se niżżlu dan il-fajl fid-direttorju tax-xogħol attwali tiegħek bil-kmand li ġej:

# wget http://media2.ldscdn.org/assets/missionary/our-people-2014/2014-00-1460-he-is-the-gift-360p-eng.mp4 

L-ewwelnett, se nibdew id-daemon trickled bil-kmand elenkat hawn fuq:

# trickled -d 30 -u 10

Mingħajr tqattigħ:

# ncftpput -u username -p password 192.168.0.15 /testdir 2014-00-1460-he-is-the-gift-360p-eng.mp4 

Output:

2014-00-1460-he-is-the-gift-360p-eng.mp4:           	18.53 MB   36.31 MB/s

Bi tqattigħ:

# trickle ncftpput -u username -p password 192.168.0.15 /testdir 2014-00-1460-he-is-the-gift-360p-eng.mp4 

Output:

2014-00-1460-he-is-the-gift-360p-eng.mp4:           	18.53 MB	9.51 kB/s

Kif nistgħu naraw fl-output ta 'hawn fuq, ir-rata ta' trasferiment ta 'upload niżlet għal ~ 10 KB/s.

Bħal fl-Eżempju 2, se nkunu qed iniżżlu l-fajl fid-direttorju tax-xogħol attwali.

Mingħajr tqattigħ:

# ncftpget -u username -p password 192.168.0.15 . /testdir/2014-00-1460-he-is-the-gift-360p-eng.mp4 

Output:

2014-00-1460-he-is-the-gift-360p-eng.mp4:           	18.53 MB  108.34 MB/s

Bi tqattigħ:

# trickle ncftpget -u username -p password 111.111.111.111 . /testdir/2014-00-1460-he-is-the-gift-360p-eng.mp4 

Output:

2014-00-1460-he-is-the-gift-360p-eng.mp4:           	18.53 MB   29.28 kB/s

Li huwa skond il-limitu tat-tniżżil stabbilit qabel (30 KB/s).

Nota: Li ladarba d-daemon ikun inbeda, m'hemmx bżonn li jiġu stabbiliti limiti individwali għal kull applikazzjoni li tuża trickle.

Kif semmejna qabel, wieħed jista 'jippersonalizza aktar it-tiswir tal-bandwidth ta' trickle permezz ta 'trickled.conf. Sezzjoni tipika f'dan il-fajl tikkonsisti f'dan li ġej:

[service]
Priority = <value>
Time-Smoothing = <value>
Length-Smoothing = <value>

Fejn,

  1. [servizz] jindika l-isem tal-applikazzjoni li l-użu tal-bandwidth tagħha bi ħsiebna nsawru.
  2. Prijorità tippermettilna nispeċifikaw li servizz ikollu prijorità ogħla meta mqabbel ma' ieħor, u b'hekk ma tippermettix li applikazzjoni waħda tiġbor il-bandwidth kollu li d-daemon ikun qed jimmaniġġja. Aktar ma jkun baxx in-numru, iktar ikun hemm bandwidth li jiġi assenjat lil [servizz].
  3. Time-Smoothing [f'sekondi]: jiddefinixxi b'liema intervalli ta 'ħin trickled se jipprova jħalli l-applikazzjoni tittrasferixxi u/jew tirċievi data. Valuri iżgħar (xi ħaġa bejn il-medda ta '0.1 – 1s) huma ideali għal applikazzjonijiet interattivi u se jirriżultaw f'sessjoni aktar kontinwa (bla xkiel) filwaqt li valuri kemmxejn akbar (1 – 10 s) huma aħjar għal applikazzjonijiet li jeħtieġu trasferiment bl-ingrossa. Jekk ma jkun speċifikat l-ebda valur, jintuża l-default (5 s).
  4. Length-Smoothing [f'KB]: l-idea hija l-istess bħal fil-Time-Smoothing, iżda bbażata fuq it-tul ta' operazzjoni I/O. Jekk ma jkun speċifikat l-ebda valur, jintuża d-default (10 KB).

It-tibdil tal-valuri tal-illixxar jissarraf fl-applikazzjoni speċifikata minn [servizz] bl-użu ta' rati ta' trasferiment f'intervall minflok valur fiss. Sfortunatament, m'hemm l-ebda formula biex jiġu kkalkulati l-limiti aktar baxxi u ta' fuq ta' dan l-intervall peress li tiddependi prinċipalment minn kull xenarju ta' każ speċifiku.

Dan li ġej huwa fajl kampjun trickled.conf fil-klijent CentOS 7 (192.168.0.17):

[ssh]
Priority = 1
Time-Smoothing = 0.1
Length-Smoothing = 2

[ftp]
Priority = 2
Time-Smoothing = 1
Length-Smoothing = 3

Bl-użu ta 'din is-setup, trickled se jipprijoritizza konnessjonijiet SSH fuq trasferimenti FTP. Innota li proċess interattiv, bħal SSH, juża valuri iżgħar li jnaqqsu l-ħin, filwaqt li servizz li jwettaq trasferimenti ta' data bl-ingrossa (FTP) juża valur akbar.

Il-valuri ta 'twittija huma responsabbli għall-veloċitajiet ta' download u upload fl-eżempju preċedenti tagħna li ma jaqblux mal-valur eżatt speċifikat mid-daemon trickled iżda jimxu f'intervall qrib tiegħu.

[ Tista 'tħobb ukoll: Kif Tiżgura u Tibbies OpenSSH Server ]

Konklużjoni

F'dan l-artikolu esplorajna kif nillimitaw il-bandwidth użata mill-applikazzjonijiet li jużaw trickle fuq distribuzzjonijiet ibbażati fuq Fedora u Debian/derivattivi. Każijiet oħra ta' użu possibbli jinkludu, iżda mhumiex limitati għal:

  • Li jillimitaw il-veloċità tat-tniżżil permezz ta' utilità tas-sistema bħal klijent tat-torrent, pereżempju.
  • Li tillimita l-veloċità li biha s-sistema tiegħek tista' tiġi aġġornata permezz ta' \aptitude\, jekk int f'sistema bbażata fuq Debian), is-sistema ta' ġestjoni tal-pakketti.
  • Jekk is-server tiegħek jiġri li jkun wara proxy jew firewall (jew huwa l-proxy jew firewall innifsu), tista' tuża trickle biex tiffissa limiti kemm fuq it-tniżżil kif ukoll fuq it-tlugħ jew il-veloċità tal-komunikazzjoni mal-klijenti jew barra.

Mistoqsijiet u kummenti huma milqugħa ħafna. Ħossok liberu li tuża l-formola hawn taħt biex tibgħathom mod tagħna.