Yadda ake Iyakaita Bandwidth na hanyar sadarwa da Aikace-aikace ke Amfani da su a cikin Tsarin Linux tare da Trickle


Shin kun taɓa fuskantar yanayi inda aikace-aikacen ɗaya ya mamaye duk bandwidth na cibiyar sadarwar ku? Idan kun taɓa kasancewa cikin yanayin da aikace-aikacen guda ɗaya ya cinye duk zirga-zirgar ku, to zaku daraja aikin aikace-aikacen sigar bandwidth ɗin trickle.

Ko dai kai mai sarrafa tsarin ne ko kuma kawai mai amfani da Linux, kana buƙatar koyon yadda ake sarrafa saurin lodawa da zazzagewa don aikace-aikacen don tabbatar da cewa ba a ƙone bandwidth na cibiyar sadarwarka ta aikace-aikacen guda ɗaya ba.

Hakanan kuna iya son: 16 Kayan aikin Kula da Bandwidth masu Amfani don Binciken Amfani da hanyar sadarwa a Linux

Menene Trickle?

Trickle kayan aiki ne mai siffar bandwidth na cibiyar sadarwa wanda ke ba mu damar sarrafa haɓakawa da zazzage saurin aikace-aikace don hana kowane ɗayan su yin hog duka (ko mafi yawan) na bandwidth da ake samu.

A cikin 'yan kalmomi kaɗan, trickle yana ba ku damar sarrafa ƙimar zirga-zirgar hanyar sadarwa akan kowane aikace-aikacen aikace-aikacen, sabanin sarrafa kowane mai amfani, wanda shine babban misali na ƙirar bandwidth a cikin mahallin uwar garken abokin ciniki, kuma tabbas shine saitin da muka fi girma. saba da.

Yaya Trickle Aiki?

Bugu da kari, dabara na iya taimaka mana mu ayyana fifiko kan kowane aikace-aikace ta yadda lokacin da aka saita iyakoki gabaɗaya ga tsarin gabaɗaya, ƙa'idodin fifiko za su sami ƙarin bandwidth ta atomatik.

Don cim ma wannan aikin, trickle yana saita iyakokin zirga-zirga zuwa hanyar da ake aika bayanai da karɓa daga, soket ta amfani da haɗin TCP. Dole ne mu lura cewa, ban da ƙimar canja wurin bayanai, trickle baya canzawa ta kowace hanya halayen tsarin da yake tsarawa a kowane lokaci.

Me Trickle ba zai iya yi ba?

Iyaka kawai, don yin magana, ita ce dabarar ba za ta yi aiki tare da aikace-aikacen da ke da alaƙa ba ko binaries tare da saiti na SUID ko SGID tunda yana amfani da haɗin kai mai ƙarfi da ɗaukar nauyi don sanya kanta tsakanin tsarin da aka siffa da soket ɗin hanyar sadarwa mai alaƙa. Trickle sannan yana aiki azaman wakili tsakanin waɗannan abubuwan software guda biyu.

Tun da trickle baya buƙatar gata na masu amfani don yin aiki, masu amfani za su iya saita iyakokin zirga-zirgar nasu. Tun da wannan bazai zama kyawawa ba, za mu bincika yadda ake saita iyakokin gabaɗaya waɗanda masu amfani da tsarin ba za su iya wuce su ba. A takaice dai, masu amfani za su iya sarrafa ƙimar zirga-zirgar su, amma koyaushe cikin iyakokin da mai sarrafa tsarin ya saita.

A cikin wannan labarin, za mu bayyana yadda za a iyakance bandwidth cibiyar sadarwa da aikace-aikace amfani a cikin Linux uwar garken tare da trickle.

Don samar da zirga-zirgar da ake buƙata, za mu yi amfani da ncftpput da ncftpget (duka kayan aikin suna samuwa ta hanyar shigar da ncftp) akan abokin ciniki (Sabar CentOS - dev1: 192.168.0.17), da vsftpd akan uwar garke (Debian - dev2: 192.168.0.15) don dalilai na zanga-zanga. Umurnai iri ɗaya kuma suna aiki akan tsarin tushen RedHat, Fedora da Ubuntu.

Shigar da ncftp da vsftpd a cikin Linux

1. Don RHEL/CentOS 8/7, kunna maajiyar EPEL. Extra Packages for Enterprise Linux (EPEL) maajiyar ingantacciyar software ce ta kyauta da buɗaɗɗen software wanda aikin Fedora ke kiyaye shi kuma yana dacewa da 100% tare da kayan aikin sa, kamar Red Hat Enterprise Linux da CentOS. Dukansu trickle da ncftp ana samun su daga wannan ma'ajiyar.

2. Shigar ncftp kamar haka:

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

3. Saita uwar garken FTP a cikin uwar garken daban. Lura cewa ko da yake FTP ba ta da tsaro, har yanzu ana amfani da ita sosai a lokuta lokacin da ba a buƙatar tsaro a lodawa ko zazzage fayiloli.

Muna amfani da shi a cikin wannan labarin don kwatanta falalar trickle kuma saboda yana nuna ƙimar canja wuri a cikin stdout akan abokin ciniki, kuma za mu bar tattaunawar ko ya kamata ko kada a yi amfani da shi don wani kwanan wata da lokaci.

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

Yanzu, gyara fayil ɗin /etc/vsftpd/vsftpd.conf akan sabar FTP kamar haka:

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

Yi canje-canje masu zuwa:

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

Bayan haka, tabbatar da fara vsftpd don zaman ku na yanzu kuma don kunna shi don farawa ta atomatik akan takalma na gaba:

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

4. Idan kun zaɓi saita uwar garken FTP a cikin ɗigon CentOS/RHEL tare da maɓallan SSH don shiga nesa, kuna buƙatar asusun mai amfani mai kare kalmar sirri tare da jagorar da ya dace da izinin fayil don lodawa da zazzage abubuwan da ake so A WAJEN gidan tushen tushen. directory.

Sannan zaku iya lilo zuwa kundin adireshin gidanku ta shigar da URL mai zuwa a cikin burauzar ku. Tagar shiga za ta tashi wanda zai nuna maka ingantaccen asusun mai amfani da kalmar wucewa akan sabar FTP.

ftp://192.168.0.15

Idan amincin ya yi nasara, za ku ga abubuwan da ke cikin kundin adireshin gidan ku. Daga baya a cikin wannan koyawa, zaku iya sabunta wancan shafin don nuna fayilolin da aka ɗora a matakan baya.

Yadda ake Sanya Trickle a cikin Linux

Yanzu shigar da trickle ta yum ko dace.

Don tabbatar da ingantaccen shigarwa, ana ɗaukar kyakkyawan aiki don tabbatar da cewa fakitin da aka shigar a halin yanzu sun kasance na zamani (ta amfani da yum update) kafin shigar da kayan aikin da kansa.

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

Tabbatar da ko trickle zai yi aiki tare da binary da ake so. Kamar yadda muka yi bayani a baya, trickle zai yi aiki tare da binaries ne kawai ta amfani da ɗakunan karatu masu ƙarfi ko haɗin gwiwa. Don tabbatar da ko za mu iya amfani da wannan kayan aikin tare da takamaiman aikace-aikace, za mu iya amfani da sanannen mai amfani ldd, inda ldd ke tsaye ga jerin abubuwan dogaro.

Musamman, za mu nemo kasancewar glibc (laburaren GNU C) a cikin jerin abubuwan dogaro na kowane shirin da aka bayar saboda daidai ɗakin karatu ne ke bayyana tsarin kiran da ke cikin sadarwa ta hanyar kwasfa.

Gudun umarni mai zuwa akan binary da aka bayar don ganin idan za'a iya amfani da trickle don siffanta bandwidth ɗin sa:

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

Misali,

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

wanda fitarsa shine:

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

Kirtani tsakanin brackets a cikin fitarwa na iya canzawa daga tsari zuwa tsari har ma tsakanin runduna masu zuwa na umarni iri ɗaya tunda yana wakiltar adireshin lodin ɗakin karatu a ƙwaƙwalwar ajiyar jiki.

Idan umarnin da ke sama bai dawo da wani sakamako ba, yana nufin cewa binary ɗin da aka gudanar da shi baya amfani da libc, don haka ba za a iya amfani da trickle azaman mai siffanta bandwidth a wannan yanayin ba.

Koyi Yadda ake Amfani da Trickle a cikin Linux

Babban amfani na yau da kullun na trickle yana cikin keɓantaccen yanayi. Yin amfani da wannan hanyar, ana amfani da trickle don bayyana saurin saukewa da lodawa na aikace-aikacen da aka bayar. Kamar yadda muka yi bayani a baya, domin takaitawa, za mu yi amfani da wannan application ne wajen yin gwaji da saukewa.

Za mu kwatanta saurin saukewa da lodawa tare da kuma ba tare da amfani da dabara ba. Zaɓin -d yana nuna saurin saukewa a cikin KB/s, yayin da alamar -u ke gaya wa dabara don iyakance saurin lodawa ta raka'a ɗaya. Ƙari ga haka, za mu yi amfani da tutar -s, wanda ke ƙayyadad da cewa ya kamata a yi wa rugujewa cikin yanayin keɓewa.

Mahimmin tsarin haɗin gwiwa don gudanar da trickle a cikin keɓantaccen yanayi shine kamar haka:

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

Domin yin waɗannan misalan da kanku, tabbatar cewa an shigar da trickle da ncftp akan injin abokin ciniki (192.168.0.17 a cikin akwati na).

Muna amfani da fayil ɗin PDF Fundamentals Linux ɗin da ake rabawa kyauta (samuwa daga nan) don gwaje-gwaje masu zuwa.

Kuna iya fara saukar da wannan fayil ɗin zuwa kundin adireshin ku na yanzu tare da umarni mai zuwa:

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

Rubutun don loda fayil zuwa sabar FTP ɗin mu ba tare da yaudara ba shine kamar haka:

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

Inda /remote_directory hanya ce ta kundin adireshi dangane da gidan sunan mai amfani, kuma sunan gida fayil ne a cikin kundin adireshin ku na yanzu.

Musamman, ba tare da wayo ba muna samun saurin ƙaddamarwa na 52.02 MB/s (da fatan za a lura cewa wannan ba shine ainihin matsakaicin saurin lodawa ba, amma saurin farawa nan take), kuma ana ɗora fayil ɗin kusan nan take:

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

Fitowa:

LinuxFun.pdf:                                        	2.79 MB   52.02 MB/s

Tare da dabara, za mu iyakance adadin canja wurin kaya a 5 KB/s. Kafin loda fayil ɗin a karo na biyu, muna buƙatar share shi daga adireshin inda ake nufi; in ba haka ba, ncftp zai sanar da mu cewa fayil ɗin da ke wurin jagorar manufa ɗaya ne wanda muke ƙoƙarin lodawa, kuma ba zai aiwatar da canja wuri ba:

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

Sannan:

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

Fitowa:

LinuxFun.pdf:                                        	2.79 MB	4.94 kB/s

A cikin misalin da ke sama, muna iya ganin cewa matsakaicin saurin lodawa ya ragu zuwa ~5 KB/s.

Da farko, ku tuna share PDF ɗin daga asalin tushen asalin adireshin:

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

Lura cewa lokuta masu zuwa za su sauke fayil ɗin nesa zuwa kundin adireshi na yanzu a cikin injin abokin ciniki. Ana nuna wannan gaskiyar ta lokacin ('.') wanda ke bayyana bayan adireshin IP na uwar garken FTP.

Ba tare da dabara ba:

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

Fitowa:

LinuxFun.pdf:                                        	2.79 MB  260.53 MB/s

Tare da dabara, iyakance saurin saukewa a 20 KB/s:

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

Fitowa:

LinuxFun.pdf:                                        	2.79 MB   17.76 kB/s

Gudun Trickle a Yanayin kulawa [wanda ba a sarrafa shi ba].

Trickle kuma na iya aiki a cikin yanayin da ba a sarrafa ba, yana bin jerin sigogi da aka ayyana a /etc/trickled.conf. Wannan fayil ɗin yana bayyana yadda yaudara (daemon) ke aiki da sarrafa trickle.

Bugu da kari, idan muna son saita saitunan duniya da za a yi amfani da su, gabaɗaya, ta kowane aikace-aikacen, za mu buƙaci yin amfani da umarnin da aka zalunta. Wannan umarni yana gudanar da daemon kuma yana ba mu damar ayyana zazzagewa da iyakoki waɗanda duk aikace-aikacen da ke gudana za su raba su ba tare da buƙatar ƙayyade iyaka kowane lokaci ba.

Misali, gudu:

# trickled -d 50 -u 10

Zai haifar da cewa zazzagewa da lodawa kowane aikace-aikacen da ke gudana ta hanyar yaudara za a iyakance su zuwa 30 KB/s da 10 KB/s, bi da bi.

Lura cewa zaku iya bincika kowane lokaci ko yaudara yana gudana kuma da waɗanne dalilai:

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

Fitowa:

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

A cikin wannan misalin za mu yi amfani da bidiyon “Shine kyauta” wanda ake rabawa kyauta, akwai don saukewa daga wannan hanyar haɗin yanar gizon.

Za mu fara zazzage wannan fayil ɗin zuwa kundin adireshin ku na yanzu tare da umarni mai zuwa:

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

Da farko, za mu fara daemon mai yaudara tare da umarnin da aka jera a sama:

# trickled -d 30 -u 10

Ba tare da dabara ba:

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

Fitowa:

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

Tare da dabara:

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

Fitowa:

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

Kamar yadda muke iya gani a cikin abubuwan da aka fitar a sama, ƙimar canja wuri ya ragu zuwa ~10 KB/s.

Kamar a cikin Misali na 2, za mu zazzage fayil ɗin zuwa kundin adireshi na yanzu.

Ba tare da dabara ba:

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

Fitowa:

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

Tare da dabara:

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

Fitowa:

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

Wanda ya yi daidai da iyakar zazzagewar da aka saita a baya (30 KB/s).

Lura: Da zarar an fara daemon, babu buƙatar saita iyakoki na kowane aikace-aikacen da ke amfani da dabara.

Kamar yadda muka ambata a baya, mutum na iya ƙara keɓance fasalin bandwidth na trickle ta hanyar trickled.conf. Sashe na yau da kullun a cikin wannan fayil ya ƙunshi abubuwa masu zuwa:

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

Ina,

  1. [sabis] yana nuna sunan aikace-aikacen da muke da niyyar siffanta amfani da bandwidth.
  2. Fififici yana ba mu damar ƙayyade sabis don samun fifiko mafi girma dangane da wani, don haka ba mu ƙyale aikace-aikacen guda ɗaya don hog duk bandwidth ɗin da daemon ke gudanarwa ba. Ƙarƙashin lambar, ƙarin bandwidth ɗin da aka sanya wa [service].
  3. Lokaci-Smoothing [a cikin daƙiƙa]: yana bayyana tare da wane tazara tsakanin lokaci zai yi ƙoƙarin barin aikace-aikacen canja wuri da/ko karɓar bayanai. Ƙananan dabi'u (wani abu tsakanin kewayon 0.1 - 1s) yana da kyau don aikace-aikacen hulɗa kuma zai haifar da ƙarin ci gaba (mai laushi) yayin da ƙananan ƙananan dabi'u (1 - 10 s) sun fi kyau ga aikace-aikacen da ke buƙatar canja wuri mai yawa. Idan ba a bayyana ƙima ba, ana amfani da tsoho (5 s).
  4. Length-Smoothing [a cikin KB]: ra'ayin daidai yake da na Lokaci-Smoothing, amma dangane da tsawon aikin I/O. Idan ba a bayyana ƙima ba, ana amfani da tsoho (10 KB).

Canza ƙimar santsi za ta fassara zuwa aikace-aikacen da aka ƙayyade ta [sabis] ta amfani da ƙimar canja wuri tsakanin tazara maimakon ƙayyadaddun ƙima. Abin takaici, babu wata dabara don ƙididdige ƙananan iyaka da babba na wannan tazara saboda ya dogara da kowane takamaiman yanayin yanayin.

Mai zuwa fayil ɗin samfurin trickled.conf ne a cikin abokin ciniki na 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

Yin amfani da wannan saitin, yaudara zai ba da fifikon haɗin SSH akan canja wurin FTP. Lura cewa tsarin hulɗa, irin su SSH, yana amfani da ƙananan dabi'u masu laushi na lokaci, yayin da sabis ɗin da ke aiwatar da canja wurin bayanai (FTP) yana amfani da ƙima mafi girma.

Ƙididdiga masu sassauƙa suna da alhakin zazzagewa da ɗora sauri a cikin misalinmu na baya ba daidai da ainihin ƙimar da daemon da aka zalunta ya kayyade ba amma yana motsawa cikin tazara kusa da shi.

[Za ku iya kuma son: Yadda ake Aminta da Harden OpenSSH Server]

Kammalawa

A cikin wannan labarin mun bincika yadda ake iyakance bandwidth ɗin da aikace-aikacen ke amfani da shi ta amfani da trickle akan rarraba tushen Fedora da Debian/abubuwan da suka samo asali. Sauran abubuwan da za a iya amfani da su sun haɗa da, amma ba'a iyakance ga:

  • Takaita saurin saukewa ta hanyar tsarin amfani kamar abokin ciniki torrent, misali.
  • Ƙayyadadden saurin da za'a iya sabunta tsarin ku ta hanyar \aptitude\, idan kuna cikin tsarin tushen Debian), tsarin sarrafa fakitin.
  • Idan uwar garken ku ya faru yana bayan wakili ko Tacewar zaɓi (ko kuma shine wakili ko Tacewar zaɓi kanta), zaku iya amfani da dabara don saita iyaka akan saurin saukewa da lodawa ko saurin sadarwa tare da abokan ciniki ko waje.
  • >

Tambayoyi da sharhi ana maraba da su. Jin kyauta don amfani da fom ɗin da ke ƙasa don aika musu hanyarmu.