Kuinka optimoida Ubuntun Internet-nopeus MTU-asetuksilla



Kokeile Instrumenttia Ongelmien Poistamiseksi

Vaikka tietokonetekstit eroavat toisistaan ​​termin soveltamisessa, Ubuntu käyttää TCP Maximum Transmission Unit (MTU) -viitettä viittaamaan suurimpaan kokoon, jonka kone voi siirtää TCP / IP-verkkoyhteyden kautta. Vaikka tämän arvon laskeminen on suhteellisen yksinkertaista ja oletusasetukset toimivat useimmissa koneissa, järjestelmää voidaan ehkä optimoida edelleen, jos paketit pirstoutuvat epätavallisten asetusten vuoksi. Suurten yksittäisten lähtevien pakettien lähettäminen on tehokkaampaa kuin useiden pienempien lähtevien pakettien lähettäminen.



Helpoin tapa selvittää koneellesi oikea MTU-arvo on avata pääteikkuna. Pidä CTRL-, ATL- ja T-painikkeita alhaalla tai ehkä aloita se Unity-viivasta. Jos työskentelet Ubuntu Serverin kanssa, oletuksena on CLI-käyttöliittymä ilman graafista ympäristöä lainkaan. Kun olet terminaalissa, kirjoita ping -s 1464 -c1 distrowatch.com ja odota lähtöä. Jos et saa mitään, verkkoyhteyttäsi ei ole määritetty oikein. Olettaen, että sait oikean tuloksen, etsi sitten osa, joka lukee 1464 (1492) tavua dataa, mikä osoittaa, että lähetät paketin 28 tavua otsikkotietoja.



Tapa 1: Ping-lähdön tutkiminen pakettien sirpaloitumiselle

Ping-komento ilmoittaa, lähetetäänkö paketti useammana kuin yhtenä fragmenttina, joihin on liitetty useita otsikkotietoja. Tarkasta minkä tahansa rivin tulos, joka varoittaa jostakin ”Frag needed and DF set (mtu = 1492)” tai vastaavasta tekstistä. Varoitus voi olla muotoiltu eri tavalla riippuen siitä, mikä ping-versio sisältyy Ubuntun versioon. Jos tätä tekstiä ei ole, työskentelet todennäköisesti jo jonkin MTU-mittauksen kanssa, joka ei tällä hetkellä lähetä pirstoutuneita paketteja.



Löydät järjestelmällesi parhaiten optimoidun MTU: n suorittamalla tämän ping-komennon pienellä pakettikoolla ja lisäämällä sitä ajan myötä, kunnes se alkaa pirstoutua, minkä jälkeen pidät tätä raja-alueena. Muista, että MTU = hyötykuorma + 28, koska otsikkotiedoille on oltava tilaa. Jos nyt voit kasvattaa koon erittäin suureksi ilman sirpaleita, verkon käyttöliittymä saattaa pystyä käsittelemään massiivisia paketteja ilman, että sinun tarvitsee luoda fragmentteja. Kun vihdoin näet Fragin tarvitseman varoituksen, tämä tarkoittaa, että kaikki paketit, jotka lähetetään hyötykuormalla, jonka koko on vähintään, lähetetään useina paketteina. Oletetaan, että jos yrität ping -s 2464 -c1 distrowatch.com -palvelua ilman varoitusta, mutta ping -s 2465 -c1 distrowatch.com lähettää varoituksen, tämä tarkoittaa, että 2464 + 28 on suurin MTU-asetus, jonka TCP / IP-kokoonpano voi käsitellä ennen kuin lähetät useita pirstoutuneita paketteja. Tarkan arvon määrittäminen voi kestää hetken.



Kun olet ajatellut arvoa suorittaa ping-komento useita kertoja, sinun on suoritettava sudo ifconfig löytää luettelo tunnetuista verkkoliitännöistä. Ubuntu ja sen johdannaiset hajauttavat juuritilin, mutta toimimme esimerkeissämme sudo bashin luomasta kuoresta. On suositeltavaa, että esitäytät vain komennot sudolla erikseen.

Heti kun tiedät oikean laitteen, yritä:

sudo ifconfig interfaceNimi mies ####

Korvaa interfaceName sen verkkosovittimen nimellä, jonka kanssa työskentelet, ja korvaa sitten #### löydetyllä koolla plus 28 otsikkotiedoilla. Voit suorittaa ifconfig-ohjelman nähdäksesi, mikä oletus MTU oli verkkokortillesi, ja ajaa se uudelleen useita kertoja nähdäksesi, muuttaakö tämä edellinen komento sitä. Jotkin verkkoliitäntäsovittimet eivät yksinkertaisesti anna sinun muuttaa sitä. Jos näin on, lisäoptimointi on valitettavasti hedelmätöntä. Jos tämä kuitenkin toimi, voit todella tehdä siitä pysyvän. Yritä juosta ifconfig | grep MTU löytää kaikki arvot, jos sinulla on useita liittimiä, ja voit sitten sovittaa arvot liittimiin, joiden kanssa työskentelet.

Tapa 2: MTU-optimointien tekeminen

Et ole toistaiseksi tehnyt pysyvää muutosta järjestelmääsi. Jos käynnistät tietokoneen uudelleen, pyyhit kaikki muutokset pois, mikä on hyvä, jos olet tehnyt jonkinlaisen virheen ja todennut, että et voi enää muodostaa yhteyttä Internetiin. Toisaalta, jos olet löytänyt tarkan arvon MTU: lle, sinun on muokattava asiakirja. Tämä on todennäköisesti hyvä aika tehdä siitä kopio, jos jotain tapahtuu. Yrittää tai jotain vastaavaa, joten sinulla on kopio joka tapauksessa. Jos haluat muokata sitä graafisesti, kirjoita ja kirjoita salasanasi. Jos käytät Kubuntua, Xubuntua tai Lubuntua, sinun on korvattava gedit graafisella tekstieditorilla, jota Ubuntu respin käyttää. Esimerkiksi Xubuntu käyttää hiirimattoa geditin sijaan. Jos käytät Ubuntu Serveria tai haluat mieluummin käyttää komentoriviä, kirjoita sen sijaan , olettaen, että et käytä juurikuorta.

Riippumatta siitä, mitä menetelmää käytit muokkaamaan sitä, etsi käyttöliittymän nimi, josconconfig spit out aiemmin. Oletetaan, että etsit koneesi ensimmäistä Wifi-liitintä, jonka nimi olisi todennäköisesti wlan0 tai jotain vastaavaa. Etsi tällöin koodinpätkä, joka alkaa iface wlan0 inet staattisesta tai vastaavasta. Mittarilukema voi vaihdella, mutta seuraava rivi lukee osoitteen ja sen jälkeen IP-osoitteen muodossa ###. ###. #. ##. Se voi olla muotoiltu eri tavalla, jos sinulla on natiivi IPv6-yhteys. Sinulla on verkkonaamio ja yhdyskäytävä, jota seuraa jokin, joka sisältää isäntänimen tai jotain vastaavaa. Alareunassa on toinen rivi, joka lukee mtu ja luvun. Korvaa numero optimoidulla MTU-arvolla, tallenna asiakirja ja poistu sitten tekstieditorista. Käynnistä järjestelmä uudelleen varmistaaksesi, että se toimii.

Jos kaikki on kunnossa useiden uudelleenkäynnistysten jälkeen, poista interfaces.bak-tiedosto ~ / Documents-hakemistosta. Voit sen sijaan käyttää sudo mv: tä ja sitten

jos jotain meni pieleen prosessin aikana.

Tapa 3: TCP-vastaanottoikkunan (RWIN) asetusten muokkaaminen

Ubuntu viittaa suurimpaan tietomäärään, jonka isäntä hyväksyy ennen kuin se tunnistaa lähettäjän RWIN-arvoksi. Jos lataat 30 Mt: n tiedoston, etäpalvelin ei lähetä sinulle välittömästi 30 Mt: n tietolohkoa. Ubuntu-isäntänne lähettää tietyn RWIN-numeron, kun se pyytää tiedostoa, ja sitten palvelin aloittaa tietojen suoratoiston, kunnes tavujen määrä on saavutettu, ennen kuin se odottaa vahvistusta siitä, että järjestelmäsi on saanut tiedot. Kun palvelin on vastaanottanut tämän, se alkaa lähettää lisää lohkoja ennen uuden kuittauksen odottamista.

Viive on aika, joka kuluu pakettien lähettämiseen ja vastaanottamiseen etäpalvelimelta. Yhteyshinnat lisäävät tätä arvoa, mutta niin myös monet muut viivästykset. Ping-komento selittää viiveen edestakaisen ajan (RTT) numeroina. Katso edellisen DistroWatch-pingin lähtö. Löydät rivin, joka lukee aika = 134 ms, eli kuinka kauan kesti pakettien edestakaisen matkan Ubuntu-koneeltamme distrowatch.comiin ja takaisin. Lähetimme 1 492 tavun paketin, joten 134 ms: n aikana voisimme laskea kaavan löytääksesi kokonaissiirtonopeuden:

1 492 / 0,134 sekuntia = 11 134,328 tavua / sekunti, mikä tuottaa noin 10,88 binääristä kilotavua sekunnissa. Se on kaiken kaikkiaan melko hidasta, minkä vuoksi RWIN on paikallaan estämään sinua tarvitsematta kuitata kutakin lähetettyä pakettia erikseen.

RWIN-asetukset Ubuntussa ovat erillisiä MTU-asetuksista. Laske Internet-yhteyden kaistanleveyden viivästystuote (BDP) tällä kaavalla:

(Internet-yhteyden tarjoaman enimmäiskaistanleveyden on oltava tavuina sekunnissa) (RTT sekunteina) = BDP

TCP-pakettikoko ei vaikuta RWIN-tiedostoon, mutta itse menetelmään 1 valittu arvo vaikuttaa paketin kokoon. Etsi tämä komento löytääksesi RWIN-tiedostoon liittyvät ytimen muuttujat:

Muista, että _memin jälkeen on välilyönti, mutta missään muualla lainatussa tekstissä. Saat useita arvoja takaisin. Tarvittavat ovat net.ipv4.tcp_rmem, net.ipv4.tcp_wmem ja net.ipv4.tcp_mem . Näiden arvojen jälkeiset numerot edustavat kullekin vähimmäis-, oletus- ja maksimiarvoja. Ne edustavat vastaanottoikkunamuistivektoria, lähetysvektoria ja TCP-pinovektoria. Jos sinulla on Ubuntu Kylin, sinulla saattaa olla pitkä luettelo muista. Voit ohittaa turvallisesti minkä tahansa näistä lisäarvoista. Jotkut Kylinin käyttäjät saattavat myös nähdä joitain arvoja, jotka on rajattu muihin skripteihin, mutta etsivät jälleen kerran näitä rivejä.

Ubuntulla ei ole RWIN-muuttujaa, mutta net.ipv4.tcp_rmem on lähellä. Nämä muuttujat ohjaavat muistin käyttöä eikä vain TCP-kokoa. Ne sisältävät datapistorakenteiden kuluttaman muistin ja lyhyet paketit massiivisissa puskureissa. Jos haluat optimoida nämä arvot, lähetä menetelmässä 1 asettamasi enimmäiskokoiset paketit toiselle etäpalvelimelle. Käytetään taas 1 492 tavun oletusarvoa vähentämällä 28 tavua otsikkotiedoiksi, mutta muista, että sinulla voi olla erilainen arvo. Käytä komentoa ping -s 1464 -c5 distrowatch.com saadaksesi lisää RTT-tietoja.

Haluat suorittaa tämän testin useammin kuin kerran eri aikaan päivästä ja yöstä. Yritä pingata myös muita etäpalvelimia nähdäksesi, kuinka paljon RTT vaihtelee. Koska meillä oli keskimäärin hieman yli 130 ms joka kerta, kun yritimme sitä, voimme käyttää kaavaa selvittääksemme BDP: n. Oletetaan, että sinulla on hyvin yleinen 6 Mbit / sekunti yhteys. BDP olisi:

(6.000.000 bittiä / s) (.133 s) * (1 tavu / 8 bittiä) = 99750 tavua

Tämä tarkoittaa, että oletusarvoisen net.ipv4.tcp_rmem-arvon tulisi olla noin 100 000. Voit asettaa sen vielä korkeammalle, jos pelkäät, että saat niin huonon RTT: n kuin puoli sekuntia. Kaikki kohdissa net.ipv4.tcp_rmem ja net.ipv4.tcp_wmem olevat arvot on asetettava identtisesti, koska pakettien lähetys ja vastaanotto tapahtuu samalla Internet-yhteydellä. Haluat yleensä asettaa net.ipv4.tcp_mem samaan arvoon, jota net.ipv4.tcp_wmem ja net.ipv4.tcp_rmem käyttävät, koska tämä ensimmäinen muuttuja on TCP-tapahtumille asetettu suurin puskurimuistikoko.

Anna komento ja katso, onko molemmille asetuksille asetettu 0 tai 1, mikä ilmaisee tilan pois päältä tai päällä.

Asettamalla net.ipv4.tcp_no_metrics_save arvoksi 1 pakotetaan Linux-ydin optimoimaan vastaanottoikkuna net.ipv4.tcp_rmem- ja net.ipv4.tcp_wmem-arvojen välillä dynaamisesti. Kun net.ipv4.tcp_moderate_rcvbuf on käytössä, se estää ruuhkia vaikuttamasta myöhempään yhteyteen. Ennen kuin teet pysyviä muutoksia, suorita nopeuden tarkistus http://www.speedtest.net tai http://www.bing.com/search?q=speed+test kautta varmistaaksesi, että sinulla on kahva mittauksiin.

Muuta muuttujia väliaikaisesti lasketuilla arvoilla. Muista korvata #s lasketuilla summillasi.

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

Testaa yhteys uudelleen nähdäksesi, onko nopeus parantunut, ja jos et muuta komentoa uudelleen ja suorita se uudelleen. Muista, että voit työntää terminaalin ylös-näppäintä toistaaksesi viimeksi käytetyn komennon. Kun olet löytänyt sopivat arvot, avaa kanssa gksu tai sudo tekstieditorin komento menetelmästä 1 ja muokkaa rivejä luettavaksi seuraavasti korvaamalla #s jälleen lasketuilla arvoillasi. Tietenkin haluat myös varmuuskopioida arkistoi samalla tavalla kuin osittain ensimmäisessä tapauksessa, jos teet virheen. Jos olet tehnyt sellaisen, voit myös palauttaa samalla tavalla.

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

Tallenna se, kun olet varma, että kaikki on kunnossa. Anna seuraava komento:

sudo sysctl -p

Tämä pakottaa Linux-ytimen lataamaan asetukset uudelleen , ja jos kaikki meni hyvin, sen pitäisi antaa sinulle ainakin jonkin verran nopeampi verkkoyhteys. Alkuperäisistä oletuksistasi riippuen ero voi olla dramaattinen tai mahdollisesti huomaamaton ollenkaan.

8 minuuttia luettu