Hur man optimerar Ubuntu Internet Speed ​​med MTU-inställningar

Medan datatekster skiljer sig från användningen av termen använder Ubuntu TCP Maximum Transmission Unit (MTU) för att referera till den största storleken av ett TCP-paket som en maskin kan passera över en TCP / IP-nätverksanslutning. Under beräkningen är detta värde relativt enkelt och standardinställningar fungerar på en majoritet av maskiner, det kan vara möjligt att ytterligare optimera ditt system om paket fragmenterar på grund av ovanliga inställningar. Att skicka stora enskilda utgående paket är effektivare än att skicka flera mindre utgående.

Det enklaste sättet att hitta rätt MTU-värde för din maskin är att öppna ett terminalfönster. Håll ner CTRL, ATL och T eller starta det från enhetens streckkod. Om du arbetar med Ubuntu Server, kommer du som standard till ett CLI-gränssnitt utan grafisk miljö alls. När du är på terminalen skriver du in ping-s 1464-c1 distrowatch.com och väntar på utmatningen. Om du inte tar emot något har din nätverksanslutning inte konfigurerats korrekt. Om du antar att du har fått korrekt utmatning, leta efter en sektion som läser 1464 (1492) byte data, vilket indikerar att du skickar paketet med 28 byte av headerinformation.

Metod 1: Undersökning av pingutgång för paketfragmentering

Ping-kommandot meddelar dig om paketet skickades som mer än ett fragment med bifogad flera rubrikdata. Undersök produktionen för alla rader som varnar för något om Frag needed och DF set (mtu = 1492) eller någon liknande text. Beroende på vilken version av ping som inkluderades i din version av Ubuntu, kan varningen vara ordnad annorlunda. Skulle den här texten inte vara närvarande, så arbetar du förmodligen redan med vissa MTU-mätningar som inte skickar ut fragmenterade paket för närvarande.

För att hitta den mest optimerade MTU-enheten för ditt system vill du köra det här ping-kommandot med en liten paketstorlek och öka sedan över tiden tills det börjar fragmentera, varefter du anser att det här är din cutoff-punkt. Tänk på att MTU = nyttolast + 28, eftersom det måste finnas plats för huvuddata. Om du nu kan öka storleken till något mycket stort utan några fragment kan ditt nätverksgränssnitt kunna hantera massiva paket utan att behöva skapa fragment. När du äntligen ser en Frag-nödvändig varning betyder det att paket som skickas med en nyttolast, storleken du körde eller högre kommer att skickas som flera paket. Antag att om du försöker ping-s 2464-c1 distrowatch.com utan varning, men ping-s 2465-c1 distrowatch.com skickar en varning betyder det att 2.464 + 28 är den största MTU-inställningen som din TCP / IP-konfiguration kan hantera innan du skickar flera fragmenterade paket. Det kan ta några ögonblick att ange ett exakt värde.

När du har ett värde i åtanke från att köra ping-kommandot flera gånger måste du köra sudo ifconfig för att hitta en lista över kända nätverksgränssnitt. Ubuntu och dess derivat har ut rotkontot, men vi drivs från ett skal skapat av sudo bash för våra exempel. Det rekommenderas att du hellre bara förordar varje kommando med sudo individuellt.

Så fort du vet rätt enhet, försök:

sudo ifconfig interfaceName mtu ####

Byt gränssnittsnamn med namnet på nätverksadaptern du arbetar med, och ersätt sedan #### med den storlek du hittade plus 28 för huvudinformation. Du kan köra ifconfig för att se vad standard MTU var för din NIC och köra den igen flera gånger för att se om det här föregående kommandot ändrar det. Vissa nätverksgränssnittskort får inte låta dig ändra det. Om så är fallet kommer ytterligare optimering att vara fruktlös tyvärr. Om det dock fungerade, kan du faktiskt göra det permanent. Prova att springa ifconfig | grep MTU för att hitta alla värden om du har flera kontakter, och då kan du matcha värdena till de kontakter du jobbar med.

Metod 2: Att göra MTU-optimeringar Stick

Hittills har du inte gjort någon permanent förändring i ditt system. Om du startar om, torkar du bort ändringar, vilket är bra om du har gjort något slags misstag och upptäcker att du inte längre kan ansluta till Internet. Å andra sidan, om du har hittat ett exakt värde för din MTU, måste du redigera dokumentera. Det här är nog en bra tid att göra en kopia av det om något händer. Prova eller något liknande så att du har en kopia bara i fallet. Om du vill redigera den grafiskt, skriv sedan och ange ditt lösenord. Om du använder Kubuntu, Xubuntu eller Lubuntu måste du ersätta gedit med den grafiska textredigeraren som din Ubuntu respin använder. Xubuntu använder till exempel mousepad istället för gedit. Om du använder Ubuntu Server eller bara föredrar att arbeta med kommandoraden skriver du istället , förutsatt att du inte använder ett rotskal.

Oavsett vilken metod du använde för att redigera den, hitta namnet på gränssnittet ifconfig spit out tidigare. Låt oss anta att du tittade på den första Wifi-kontakten på din maskin, som förmodligen skulle kallas wlan0 eller något liknande. I det här fallet hitta ett kodstycke som börjar med iface wlan0 inet static eller något liknande. Din körsträcka kan variera, men nästa rad kommer att läsa adress följt av en IP-adress i ###. ###. #. ## format. Det kan vara formaterat annorlunda om du har en IPv6-anslutning. Du har en nätmaske och gateway linje följt av något som listar ett värdnamn eller något liknande. I botten har du en annan rad som läser mtu och ett nummer. Ersätt det numret med optimera MTU-värdet, spara dokumentet och avsluta textredigeraren. Du vill starta om systemet så att det fungerar.

Skulle allt vara bra efter flera omstart, ta sedan bort gränssnittet.bak-filen i din ~ / Dokument-katalog. Du kan istället använda sudo mv och då

om något gick fel i processen.

PRO TIPS: Om problemet är med din dator eller en bärbar dator, bör du försöka använda Reimage Plus-programvaran som kan skanna förvaret och ersätta korrupta och saknade filer. Detta fungerar i de flesta fall där problemet uppstått på grund av systemkorruption. Du kan ladda ner Reimage Plus genom att klicka här

Metod 3: Redigera inställningar för TCP-mottagningsfönster (RWIN)

Ubuntu refererar till den största mängd data som en värd accepterar innan den bekräftar avsändaren som RWIN-värdet. Om du laddar ner en 30 MB-fil skickar den externa servern inte omedelbart ett 30 MB block av data. Din Ubuntu-värd skickar ett specifikt RWIN-nummer när det begär filen, och sedan börjar servern att strömma data tills den når antalet byte innan den väntar på en bekräftelse på att ditt system har fått data. När servern tar emot detta börjar det skicka ytterligare block innan du väntar på en annan bekräftelse.

Latency är den tid det tar att sända och ta emot paket från en fjärrserver. Anslutningsgraden bidrar till detta värde, men det gör också många andra förseningar. Ping-kommandot kommer att förklara latens när det gäller RTT-nummer. Titta på produktionen från vår tidigare ping av DistroWatch. Du hittar en rad som läser tid = 134 ms, vilket är hur lång tid det tog för paket att gå tur från vår Ubuntu-maskin till distrowatch.com och tillbaka igen. Vi skickade ett 1, 492 byte paket, så vid 134 ms kunde vi beräkna en formel för att hitta den totala överföringshastigheten:

1.492 / .134 sekunder = 11.134.328 byte / sekund, vilket kommer ut till ungefär 10, 88 binära kilobytes per sekund. Det är ganska långsamt övergripande, varför RWIN är på plats för att hålla dig från att behöva erkänna varje paket som skickas individuellt.

RWIN-inställningarna i Ubuntu är separata från MTU-inställningarna. Beräkna bandbreddsfördröjningsprodukten (BDP) för din Internetanslutning med denna formel:

(Total maximal bandbredd som din Internetanslutning ska tillhandahålla i Bytes per sekund) (RTT i sekunder) = BDP

TCP-paketstorlek påverkar inte RWIN, men själva paketpaketet påverkas av det värde som valts i metod 1. Använd det här kommandot för att hitta kärnvariablerna som är relaterade till RWIN:

Tänk på att det finns ett mellanslag efter _mem, men ingen annanstans i den citerade texten. Du får flera värden tillbaka. De som behövs är net.ipv4.tcp_rmem, net.ipv4.tcp_wmem och net.ipv4.tcp_mem . Siffrorna efter dessa värden representerar minimi-, standard- och maximivärdena för varje. De representerar mottagningsfönsterminnesvektorn, sänd vektor och TCP-stapelvektor. Om du kör Ubuntu Kylin kan du ha en lång lista över ytterligare. Du kan säkert ignorera något av dessa ytterligare värden. Vissa användare av Kylin kan också se några av de värden som anges i andra skript, men återigen letar du efter dessa linjer.

Ubuntu har ingen RWIN-variabel, men net.ipv4.tcp_rmem är nära. Dessa variabler styr minnesanvändningen och inte bara TCP-storleken. De inkluderar minne som upptas av datakontaktstrukturer och korta paket i massiva buffertar. Om du vill optimera dessa värden skickar du de maximala storlekspaket som du ställde in i metod 1 till en annan fjärrserver. Låt oss använda 1, 492-byte-standard igen, subtrahera 28 byte för huvudinformation, men kom ihåg att du kan ha ett annat värde. Använd kommandot ping-s 1464-c5 distrowatch.com för att få ytterligare RTT-data.

Du kommer att vilja köra detta test mer än en gång vid olika tider av dagen och natten. Försök också pinga några andra fjärrservrar för att se hur mycket RTT varierar. Eftersom vi hade ett genomsnitt på drygt 130 ms varje gång vi försökte det, kan vi använda formeln för att räkna ut vår BDP. Låt oss anta att du har en mycket generisk 6 Mbit / sekund-anslutning. BDP skulle vara:

(6 000 000 bitar / sek) (. 133 sek) * (1 byte / 8 bitar) = 99 750 byte

Det innebär att standardvärdet net.ipv4.tcp_rmem ska vara någonstans runt 100 000. Du kan ställa det ännu högre om du fruktar att du skulle få en RTT så illa som en halv sekund. Alla värden som hittas i net.ipv4.tcp_rmem och net.ipv4.tcp_wmem måste ställas in på samma sätt, eftersom sändning och mottagning av paket sker över samma Internetanslutning. Du vill i allmänhet ange net.ipv4.tcp_mem till samma värde som används av net.ipv4.tcp_wmem och net.ipv4.tcp_rmem eftersom den här första variabeln är den totala största buffertminnesstorleken för TCP-transaktioner.

Utfärda kommandot och se om båda dessa inställningar är inställda på 0 eller 1, vilket indikerar ett läge av eller på.

Inställning av net.ipv4.tcp_no_metrics_save till 1 kommer att tvinga Linux-kärnan att optimera mottagningsfönstret mellan net.ipv4.tcp_rmem och net.ipv4.tcp_wmem-värdena på ett dynamiskt sätt. När net.ipv4.tcp_moderate_rcvbuf är aktiverat hindrar det att trafikstockningar påverkar efterföljande anslutning. Innan du gör några permanenta ändringar, utför en hastighetskontroll genom http://www.speedtest.net eller http://www.bing.com/search?q=speed+test för att se till att du har ett handtag på dina mätningar.

Ändra temporärt variablerna med dina beräknade värden. Se till att du ersätter #s med dina beräknade summor.

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

Testa din anslutning för att se om hastigheten har förbättrats, och om inte tweak ditt kommando igen och kör om det. Kom ihåg att du kan trycka upp-knappen i din terminal för att upprepa det senast använda kommandot. När du har hittat lämpliga värden öppnar du med kommandot gksu eller sudo textredigerare från metod 1 och redigera linjerna som ska läsas som följande, ersätta #s igen med dina beräknade värden. Du vill naturligtvis också säkerhetskopiera fil samma sätt som du gjorde i del ett bara om du gör ett misstag. Om du har gjort en, kan du också återställa på samma sätt också.

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

Spara det när du är säker på att allt är okej. Utfärda följande kommando:

sudo sysctl -p

Detta kommer att tvinga Linux-kärnan att ladda om inställningarna i , och om allt gick bra så borde det ge dig åtminstone en något snabbare nätverksanslutning. Beroende på dina ursprungliga standardvärden kan skillnaden faktiskt vara dramatisk eller eventuellt inte märkbar alls.

PRO TIPS: Om problemet är med din dator eller en bärbar dator, bör du försöka använda Reimage Plus-programvaran som kan skanna förvaret och ersätta korrupta och saknade filer. Detta fungerar i de flesta fall där problemet uppstått på grund av systemkorruption. Du kan ladda ner Reimage Plus genom att klicka här

Facebook Twitter Google Plus Pinterest