Kuidas optimeerida Ubuntu Interneti-kiirust MTU seadetega



Proovige Meie Instrumenti Probleemide Kõrvaldamiseks

Ehkki arvutitekstid erinevad selle termini rakendamise poolest, kasutab Ubuntu TCP maksimaalset edastusüksust (MTU), et viidata suurimale TCP-paketile, mille masin TCP / IP-võrguühenduse kaudu edastada saab. Kuigi selle väärtuse arvutamine on suhteliselt lihtne ja vaikeseaded töötavad enamikus masinates, võib osutuda võimalikuks süsteemi veelgi optimeerida, kui paketid killustuvad ebatavaliste sätete tõttu. Suurte üksikute väljuvate pakettide saatmine on tõhusam kui mitme väiksema väljuva paketi saatmine.



Lihtsaim viis oma masina õige MTU väärtuse väljaselgitamiseks on terminaliakna avamine. Hoidke all CTRL, ATL ja T või alustage seda Unity kriipsust. Kui töötate Ubuntu Serveriga, on teil vaikimisi CLI-liides, millel puudub üldse graafiline keskkond. Kui olete terminalis, sisestage ping -s 1464 -1 distrowatch.com ja oodake väljundit. Kui te midagi ei saa, pole teie võrguühendust õigesti konfigureeritud. Eeldades, et olete saanud õige väljundi, siis otsige jaotist, mis loeb 1464 (1492) baiti andmeid, mis näitab, et saadate paketi 28 baiti päiseteabega.



1. meetod: pakettide killustumise pingiväljundi uurimine

Pingkäsk annab teile teada, kas pakett saadeti rohkem kui ühe fragmendina, millele oli lisatud mitu päiseandmeid. Uurige mis tahes rea väljundit, mis hoiatab millegi eest seoses „Frag vaja ja DF-seadistusega (mtu = 1492)” või muu sarnase tekstiga. Sõltuvalt sellest, milline pingi versioon teie Ubuntu versiooniga kaasas oli, võib hoiatus olla teisiti sõnastatud. Kui seda teksti ei oleks, töötate enam kui tõenäoliselt mõne MTU mõõtmisega, mis praegu killustatud pakette ei saada.



Oma süsteemile kõige optimeerituma MTU leidmiseks peaksite seda ping-käsku käivitama väikese paketimõõduga ja seejärel aja jooksul seda suurendama, kuni see hakkab killustuma, pärast mida peate seda oma piiripunktiks. Pidage meeles, et MTU = kasulik koormus + 28, kuna päise andmete jaoks peab olema ruumi. Kui nüüd saate ilma fragmentideta suuruse muuta millekski väga suureks, võib teie võrguliides hakkama saada massiivsete pakettidega, ilma et oleks vaja fragmente genereerida. Kui näete lõpuks Frag-i vajaminevat hoiatust, tähendab see, et kõik paketid, mis on saadetud teie kasutatava suurusega või suurema kasuliku koormaga, saadetakse mitme paketina. Oletame, et kui proovite ping -s 2464 -c1 distrowatch.com ilma hoiatuseta, kuid ping -s 2465 -c1 distrowatch.com saadab hoiatuse, tähendab see, et 2464 + 28 on suurim MTU seade, millega teie TCP / IP konfiguratsioon saab hakkama enne mitme killustatud paketi saatmist. Täpse väärtuse kindlakstegemiseks võib kuluda mõni hetk.



Kui olete pingi käskluse mitu korda käivitamist silmas pidanud, peate selle käivitama sudo ifconfig teadaolevate võrguliideste loendi leidmiseks. Ubuntu ja selle tuletised räsivad juurkonto välja, kuid opereerisime näitena sudo bashi loodud kestast. Soovitatav on lihtsalt sisestada iga käsk sudoga eraldi.

Niipea kui teate õiget seadet, proovige:

sudo ifconfig liidesNimi mees ####

Asendage interfaceName selle võrgukaardi nimega, millega töötate, ja asendage seejärel #### leitud suurusega pluss 28 päise teabe jaoks. Võite käivitada ifconfig, et näha, milline oli teie NIC-i vaikimisi MTU, ja käivitada see mitu korda uuesti, et näha, kas see eelmine käsk seda muudab. Mõni võrguliidese adapter ei lase teil seda lihtsalt muuta. Sel juhul on edasine optimeerimine kahjuks viljatu. Kui see siiski õnnestus, saate selle tegelikult püsivaks muuta. Proovige joosta ifconfig | grep MTU kõigi väärtuste leidmiseks, kui teil on mitu pistikut, ja seejärel saate need sobitada pistikutega, millega töötate.

2. meetod: MTU optimeerimise kleepimine

Siiani pole te oma süsteemis püsivalt muudatusi teinud. Kui taaskäivitate, siis kustutate kõik muudatused, mis on hea, kui olete teinud mingisuguse vea ja leidnud, et te ei saa enam Internetiga ühendust luua. Teiselt poolt, kui olete leidnud oma MTU-le täpse väärtuse, peate seda muutma dokument. See on ilmselt hea aeg sellest koopia teha, kui midagi juhtub. Proovige või midagi sarnast, nii et teil on igaks juhuks koopia olemas. Kui soovite seda graafiliselt muuta, tippige ja sisestage oma parool. Kui kasutate Kubuntut, Xubuntut või Lubuntut, peate gediti asendama graafilise tekstiredaktoriga, mida Ubuntu respin kasutab. Näiteks Xubuntu kasutab gediti asemel hiireplaati. Kui kasutate Ubuntu Serverit või eelistate lihtsalt käsureaga töötamist, tippige selle asemel , eeldades, et te ei kasuta juurkesta.

Sõltumata sellest, millist meetodit selle muutmiseks kasutasite, leidke liidese nimi, kui ifconfig enne välja sülitas. Oletame, et vaatasite oma masina esimest Wifi-pistikut, mille nimi oleks tõenäoliselt wlan0 või midagi sarnast. Sel juhul leidke koodilõik, mis algab iface wlan0 inet staatilisest vms. Teie läbisõit võib erineda, kuid järgmisel real loetakse aadress, millele järgneb IP-aadress vormingus ###. ###. #. ##. See võib olla vormindatud teisiti, kui teil on loomulik IPv6-ühendus. Teil on võrgumask ja lüüsiliin, millele järgneb miski, mis loetleb hosti nime või midagi muud sarnast. Allosas on veel üks rida, mis loeb mtu ja numbri. Asendage see number MTU optimeerimise väärtusega, salvestage dokument ja seejärel väljuge tekstiredaktorist. Selle toimimise tagamiseks peate süsteemi taaskäivitama.

Kui pärast mitut taaskäivitamist peaks kõik korras olema, kustutage fail ~ interfaces.bak kataloogist ~ / Documents. Selle asemel võite kasutada sudo mv-d ja siis

kui selle käigus midagi viltu läks.

3. meetod: TCP vastuvõtuakna (RWIN) sätete muutmine

Ubuntu viitab suurimale andmehulgale, mille host aktsepteerib, enne kui ta tunnustab saatjat RWIN-väärtusena. Kui laadite alla 30 MB faili, ei saada kaugserver teile kohe 30 MB andmeplokki. Teie Ubuntu host saadab faili taotlemisel kindla RWIN-numbri ja seejärel hakkab server voogesitama andmeid, kuni see on jõudnud baitide arvuni, enne kui ta ootab kinnitust, et teie süsteem on andmed kätte saanud. Kui server on selle kätte saanud, hakkab ta enne uue kinnituse ootamist saatma täiendavaid plokke.

Latentsus on aeg, mis kulub pakettide edastamiseks ja vastuvõtmiseks kaugserverist. Ühenduse määrad annavad sellele väärtusele panuse, aga ka paljud muud viivitused. Pingikäsk selgitab latentsust edasi-tagasi numbrite (RTT) numbritega. Vaadake meie eelmise pingi DistroWatch väljundit. Leiate rea, mis loeb aega = 134 ms, mis on aeg, mis kulus pakettide edasi-tagasi sõitmiseks meie Ubuntu masinast distrowatch.com-i ja tagasi. Saatsime 1492-baidist paketti, nii et 134 ms jooksul saime kogu ülekandekiiruse leidmiseks arvutada valemi:

1 492 / 0,134 sekundit = 11 134,328 baiti sekundis, mis väljub umbes 10,88 binaarse kilobaidini sekundis. See on üldiselt üsna aeglane, mistõttu RWIN on paigas, et hoida ära iga eraldi saadetud paketi kinnitamist.

Ubuntu RWIN-i seaded on MTU seadetest eraldi. Arvutage Interneti-ühenduse ribalaiuse viivituse toode (BDP) järgmise valemiga:

(Maksimaalne kogu ribalaius, mille Interneti-ühendus peaks pakkuma baitides sekundis) (RTT sekundites) = BDP

TCP paketi suurus ei mõjuta RWIN-i, kuid paketi suurust ise mõjutab meetodis 1 valitud väärtus. Kasutage seda käsku RWIN-iga seotud kerneli muutujate leidmiseks:

Pidage meeles, et _memi järel on tühik, kuid kusagil mujal tsiteeritud tekstis pole. Saate mitu väärtust tagasi. Vajalikud on net.ipv4.tcp_rmem, net.ipv4.tcp_wmem ja net.ipv4.tcp_mem . Nende väärtuste järel olevad numbrid tähistavad igaühe minimaalset, vaikimisi ja maksimaalset väärtust. Need tähistavad vastuvõtuakna mäluvektorit, saatmisvektorit ja TCP-korstnavektorit. Kui kasutate Ubuntu Kylinit, võib teil olla pikk nimekiri täiendavatest. Kõiki neid lisaväärtusi võite julgelt ignoreerida. Mõned Kylini kasutajad võivad näha mõningaid väärtusi, mis on piiritletud teistes skriptides, kuid otsivad veel kord lihtsalt neid ridu.

Ubuntul pole RWIN-muutujat, kuid net.ipv4.tcp_rmem on lähedal. Need muutujad kontrollivad mälukasutust ja mitte ainult TCP suurust. Need hõlmavad mälupesasid, mida on söönud andmesidepesade struktuurid, ja lühikesi pakette massiivsetes puhvrites. Kui soovite neid väärtusi optimeerida, saatke 1. meetodis määratud maksimaalse suurusega paketid teisele kaugserverile. Kasutame uuesti 1442-baidist vaikeväärtust, lahutades päise teabe jaoks 28 baiti, kuid pidage meeles, et teil võib olla erinev väärtus. RTT-täiendavate andmete saamiseks kasutage käsku ping -s 1464 -c5 distrowatch.com.

Te soovite seda testi teha mitu korda päevas ja öösel erinevatel aegadel. Proovige ka mõnda muud kaugserverit pingida, et näha, kui palju RTT varieerub. Kuna meil oli iga kord, kui seda prooviti, oli keskmiselt veidi üle 130 ms, saame valemi abil oma BDP välja selgitada. Oletame, et teil on väga üldine ühendus 6 Mbit / s. BDP oleks:

(6 000 000 bitti / s) (. 133 sek) * (1 baiti / 8 bitti) = 99 750 baiti

See tähendab, et net.ipv4.tcp_rmemi vaikeväärtus peaks olema kuskil 100 000. Saate selle veelgi kõrgemaks seada, kui kardate, et saate nii sekundi jooksul halva RTT. Kõik võrkudes net.ipv4.tcp_rmem ja net.ipv4.tcp_wmem leitud väärtused tuleb seada identselt, kuna pakettide edastamine ja vastuvõtmine toimub sama Interneti-ühenduse kaudu. Üldiselt soovite seada net.ipv4.tcp_mem samale väärtusele, mida kasutavad net.ipv4.tcp_wmem ja net.ipv4.tcp_rmem, kuna see esimene muutuja on kogu TCP-tehingute jaoks määratud puhvermälu suurus.

Andke välja käsk ja vaadake, kas mõlema sätte väärtuseks on seatud 0 või 1, mis näitavad olekut välja või sisse.

Kui määrate net.ipv4.tcp_no_metrics_save väärtuseks 1, sunnib Linuxi kernel optimeerima dünaamiliselt net.ipv4.tcp_rmem ja net.ipv4.tcp_wmem väärtuste vahelist vastuvõtuakent. Kui net.ipv4.tcp_moderate_rcvbuf on lubatud, ei lase see ülekoormusel järgnevat ühendust mõjutada. Enne püsivate muudatuste tegemist kontrollige kiirust veebisaidil http://www.speedtest.net või http://www.bing.com/search?q=speed+test, veendumaks, et teil on mõõtmistel käepide.

Muutke ajutiselt muutujaid arvutatud väärtustega. Asendage # s arvutatud summadega.

sudo sysctl -w net.ipv4.tcp_rmem = ”#### ##### ######” net.ipv4.tcp_wmem = ”#### ##### ######” net.ipv4.tcp_mem = ”#### ##### ######” net.ipv4.tcp_no_metrics_save = 1 net.ipv4.tcp_moderate_rcvbuf = 1

Proovige uuesti ühendust, et näha, kas kiirus on paranenud, ja kui mitte, siis kohandage käsku uuesti ja käivitage see uuesti. Pidage meeles, et viimati kasutatud käsu kordamiseks võite terminalis üles klahvi vajutada. Kui olete leidnud sobivad väärtused, avage koos gksu või sudo tekstiredaktori käsk 1. meetodist ja muutke ridu järgmiseks lugemiseks, asendades #-id veel kord arvutatud väärtustega. Muidugi soovite ka varundada fail samamoodi, nagu tegite esimeses osas igaks juhuks, kui teete vea. Kui olete selle teinud, saate ka samal viisil taastada.

net.ipv4.tcp_rmem = #### ##### ######

net.ipv4.tcp_wmem = #### ##### ######

net.ipv4.tcp_mem = #### ##### ######

net.ipv4.tcp_no_metrics_save = 1

net.ipv4.tcp_moderate_rcvbuf = 1

Salvestage see, kui olete kindel, et kõik on korras. Andke välja järgmine käsk:

sudo sysctl -p

See sunnib Linuxi tuuma seadistused uuesti sisse laadima ja kui kõik sujus, peaks see teile pakkuma vähemalt mõnevõrra kiirema võrguühenduse. Sõltuvalt teie algsetest vaikeväärtustest võib erinevus olla dramaatiline või potentsiaalselt üldse mitte märgatav.

8 minutit loetud