Kā optimizēt Ubuntu interneta ātrumu, izmantojot MTU iestatījumus



Izmēģiniet Mūsu Instrumentu Problēmu Novēršanai

Kaut arī datorteksti atšķiras pēc šī termina pielietojuma, Ubuntu izmanto TCP maksimālo pārraides vienību (MTU), lai norādītu uz lielāko TCP paketes lielumu, ko mašīna var nodot TCP / IP tīkla savienojumam. Lai gan šīs vērtības aprēķināšana ir salīdzinoši vienkārša un noklusējuma iestatījumi darbojas lielākajā daļā mašīnu, iespējams, būs iespējams vēl vairāk optimizēt sistēmu, ja pakešu fragmenti rodas neparastu iestatījumu dēļ. Lielu atsevišķu izejošo pakešu sūtīšana ir efektīvāka nekā vairāku mazāku izejošo pakešu sūtīšana.



Vieglākais veids, kā uzzināt pareizo MTU vērtību savai mašīnai, ir atvērt termināla logu. Turiet nospiestu CTRL, ATL un T vai varbūt sāciet to no Vienības domuzīmes. Ja strādājat ar Ubuntu Server, noklusējuma iestatījums būs CLI interfeiss, kurā vispār nav grafiskas vides. Kad esat nonācis terminālā, ierakstiet ping -s 1464 -c1 distrowatch.com un gaidiet izvadi. Ja neko nesaņemat, tīkla savienojums nav pareizi konfigurēts. Pieņemot, ka esat saņēmis pareizu izvadi, pēc tam meklējiet sadaļu, kurā nolasīti 1464 (1492) baiti datu, kas norāda, ka sūtāt pakešu ar 28 baitu galvenes informāciju.



1. metode: Pingu izvades pārbaude pakešu sadrumstalotībai

Pinga komanda jums paziņos, vai pakete tika nosūtīta kā vairāk nekā viens fragments ar vairākiem galvenes datiem. Pārbaudiet jebkuras rindas izvadi, kas brīdina par kaut ko saistībā ar “Frag needed and DF set (mtu = 1492)” vai jebkuru līdzīgu tekstu. Atkarībā no tā, kura ping versija tika iekļauta jūsu Ubuntu versijā, brīdinājums var būt formulēts atšķirīgi. Ja šī teksta nav, tad, visticamāk, jūs jau strādājat ar kādu MTU mērījumu, kas pašlaik nesūta fragmentētas paketes.



Lai atrastu optimizētāko MTU savai sistēmai, jūs vēlaties palaist šo ping komandu ar nelielu paketes lielumu un pēc tam laika gaitā to palielināt, līdz tā sāk fragmentēties, pēc kuras jūs uzskatāt, ka tas ir jūsu nogriešanas punkts. Paturiet prātā, ka MTU = lietderīgā slodze + 28, jo galvenes datiem ir jābūt nedaudz vietas. Tagad, ja jūs varat palielināt izmēru līdz kaut kam ļoti lielam bez fragmentiem, tad jūsu tīkla interfeiss, iespējams, varēs apstrādāt masveida paketes bez nepieciešamības ģenerēt fragmentus. Kad jūs beidzot redzat Frag vajadzīgo brīdinājumu, tas nozīmē, ka jebkura pakete, kas nosūtīta ar lietderīgo kravu, kuras izmērs ir lielāks vai lielāks, tiks nosūtīta kā vairākas paketes. Pieņemsim, ka, izmēģinot ping -s 2464 -c1 distrowatch.com bez brīdinājuma, bet ping -s 2465 -c1 distrowatch.com nosūta brīdinājumu, tas nozīmē, ka 2464 + 28 ir lielākais MTU iestatījums, ko TCP / IP konfigurācija var apstrādāt pirms vairāku sadrumstalotu pakešu nosūtīšanas. Lai noteiktu precīzu vērtību, var būt nepieciešami daži mirkļi.



Kad esat padomājis par vērtību, ka vairākas reizes palaidīsit ping komandu, tā būs jāpalaiž sudo ifconfig lai atrastu zināmo tīkla saskarņu sarakstu. Ubuntu un tā atvasinājumi sajauc saknes kontu, taču mēs saviem piemēriem darbojāmies no čaulas, kuru izveidoja sudo bash. Ieteicams vienkārši ievadīt katru komandu ar sudo atsevišķi.

Tiklīdz jūs zināt pareizo ierīci, mēģiniet:

sudo ifconfig interfeiss Nosaukums man ####

Nomainiet interfaceName ar tā tīkla adaptera nosaukumu, ar kuru strādājat, un pēc tam aizstājiet #### ar atrasto izmēru plus 28 galvenes informācijai. Varat palaist ifconfig, lai uzzinātu, kāds noklusējuma MTU bija jūsu NIC, un palaidiet to vēlreiz vairākas reizes, lai redzētu, vai šī iepriekšējā komanda to maina. Daži tīkla interfeisa adapteri vienkārši neļaus jums to mainīt. Ja tas tā ir, tad turpmāka optimizācija diemžēl būs bez rezultātiem. Ja tas tomēr darbojās, tad to faktiski var padarīt pastāvīgu. Mēģiniet skriet ifconfig | grep MTU lai atrastu visas vērtības, ja jums ir vairāki savienotāji, un pēc tam varat tās saskaņot ar savienotājiem, ar kuriem strādājat.

2. metode: MTU optimizācijas pielīmēšana

Līdz šim jūs savā sistēmā neesat veicis pastāvīgas izmaiņas. Ja jūs atsāknējat, tad visas izmaiņas tiks izdzēstas, kas ir labi, ja esat pieļāvis kādu kļūdu un atklājāt, ka vairs nevarat izveidot savienojumu ar internetu. No otras puses, ja esat atradis precīzu MTU vērtību, jums tas būs jārediģē dokumentu. Tas, iespējams, ir piemērots laiks, lai to kopētu, ja kaut kas notiek. Izmēģiniet vai kaut kas līdzīgs, lai jums katram gadījumam būtu kopija. Ja vēlaties to rediģēt grafiski, ierakstiet un ievadiet paroli. Ja izmantojat Kubuntu, Xubuntu vai Lubuntu, jums jāaizstāj gedit ar grafisko teksta redaktoru, kuru izmantojat Ubuntu respin. Piemēram, Xubuntu gedit vietā izmanto peles paliktni. Ja izmantojat Ubuntu Server vai vienkārši vēlaties strādāt ar komandrindu, tad tā vietā ierakstiet , pieņemot, ka neizmantojat saknes apvalku.

Neatkarīgi no tā, kuru metodi izmantojāt, lai to rediģētu, atrodiet saskarnes nosaukumu, ja iepriekš izspēlēts. Pieņemsim, ka jūs aplūkojāt pirmo Wifi savienotāju savā datorā, kura nosaukums varētu būt wlan0 vai kaut kas līdzīgs. Šajā gadījumā atrodiet koda fragmentu, kas sākas ar iface wlan0 inet static vai kaut ko līdzīgu. Jūsu nobraukums var atšķirties, bet nākamajā rindā tiks parādīta adrese, kam sekos IP adrese ###. ###. #. ## formātā. Tas, iespējams, būs formatēts atšķirīgi, ja izmantojat vietējo IPv6 savienojumu. Jums būs tīkla maska ​​un vārtejas līnija, kam sekos kaut kas, kurā ir norādīts resursdatora nosaukums vai kaut kas līdzīgs. Apakšdaļā būs vēl viena rindiņa, kurā rakstīts mtu un skaitlis. Nomainiet šo numuru ar optimizēt MTU vērtību, saglabājiet dokumentu un pēc tam izejiet no teksta redaktora. Jūs vēlaties atsāknēt sistēmu, lai pārliecinātos, ka tā darbojas.

Ja pēc vairākām atkārtotām palaišanām viss ir kārtībā, izdzēsiet failu interfaces.bak direktorijā ~ / Documents. Tā vietā jūs varētu izmantot sudo mv un tad

ja šajā procesā kaut kas noiet greizi.

3. metode: TCP saņemšanas loga (RWIN) iestatījumu rediģēšana

Ubuntu attiecas uz lielāko datu apjomu, ko resursdators pieņem, pirms tas sūtītāju atzīst par RWIN vērtību. Ja lejupielādējat 30 MB failu, attālais serveris faktiski nekavējoties nesūta jums 30 MB datu bloku. Jūsu Ubuntu resursdators nosūta noteiktu RWIN numuru, kad tas pieprasa failu, un pēc tam serveris sāk straumēt datus, līdz tas ir sasniedzis baitu skaitu, pirms tas gaida apstiprinājumu, ka jūsu sistēma ir ieguvusi datus. Kad serveris to saņem, tas sāk sūtīt papildu blokus, pirms gaida citu apstiprinājumu.

Latentums ir laiks, kas nepieciešams pakešu pārsūtīšanai un saņemšanai no attālā servera. Savienojuma ātrums veicina šo vērtību, bet tāpat arī daudzi citi kavējumi. Pinga komanda izskaidros latentumu, norādot turp un atpakaļ brauciena laika (RTT) numurus. Apskatiet mūsu iepriekšējā DistroWatch ping izlaidi. Jūs atradīsit līniju, kas nolasīs laiku = 134 ms, tas ir, cik ilgs laiks pagāja, kamēr paketes no mūsu Ubuntu mašīnas turpināja virzīties turp un atpakaļ. Mēs nosūtījām 1 492 baitu paketi, tāpēc 134 ms laikā mēs varējām aprēķināt formulu, lai atrastu kopējo pārsūtīšanas ātrumu:

1 492 / 0,134 sekundes = 11 134,328 baiti / sekundē, kas sasniedz aptuveni 10,88 bināros kilobaitus sekundē. Tas kopumā ir diezgan lēns, tāpēc RWIN ir izveidots, lai neļautu jums apstiprināt katru atsevišķi nosūtīto paketi.

RWIN iestatījumi Ubuntu ir atsevišķi no MTU iestatījumiem. Aprēķiniet interneta savienojuma joslas platuma aizkaves produktu (BDP), izmantojot šo formulu:

(Kopējais maksimālais joslas platums, kas jūsu interneta savienojumam jānodrošina baitos sekundē) (RTT sekundēs) = BDP

TCP pakešu lielums neietekmē RWIN, bet pašu pakešu lielumu ietekmē 1. metodē atlasītā vērtība. Izmantojiet šo komandu, lai atrastu ar RWIN saistītos kodola mainīgos:

Lūdzu, ņemiet vērā, ka aiz _mem ir atstarpe, bet citur citētajā tekstā nav nevienas vietas. Jūs atgūsiet vairākas vērtības. Nepieciešamie ir net.ipv4.tcp_rmem, net.ipv4.tcp_wmem un net.ipv4.tcp_mem . Skaitļi aiz šīm vērtībām apzīmē katra minimālo, noklusējuma un maksimālo vērtību. Tie attēlo saņemšanas loga atmiņas vektoru, nosūtīšanas vektoru un TCP kaudzes vektoru. Ja jūs izmantojat Ubuntu Kylin, jums var būt garš saraksts ar citiem. Jebkuru no šīm papildu vērtībām varat droši ignorēt. Daži Kylin lietotāji, iespējams, redzēs arī dažas vērtības, kas izklāstītas citos skriptos, bet vēlreiz vienkārši meklējiet šīs rindas.

Ubuntu nav RWIN mainīgā, bet net.ipv4.tcp_rmem ir tuvu. Šie mainīgie kontrolē atmiņas izmantošanu, nevis tikai TCP lielumu. Tajos ietilpst atmiņa, ko aprij datu ligzdu struktūras, un īsas paketes masveida buferos. Ja vēlaties optimizēt šīs vērtības, nosūtiet 1. metodē iestatītos maksimālā izmēra paketes uz citu attālo serveri. Atkal izmantosim 1442 baitu noklusējumu, galvenes informācijai atņemot 28 baitus, taču atcerieties, ka jums var būt atšķirīga vērtība. Izmantojiet komandu ping -s 1464 -c5 distrowatch.com, lai iegūtu papildu RTT datus.

Šo testu vēlaties veikt vairāk nekā vienu reizi dažādos dienas un nakts laikos. Mēģiniet pingēt arī dažus citus attālos serverus, lai redzētu, cik daudz RTT mainās. Tā kā katru reizi, kad to izmēģinājām, vidēji bija nedaudz virs 130 ms, mēs varam izmantot formulu, lai noskaidrotu mūsu BDP. Pieņemsim, ka jums ir ļoti vispārīgs savienojums ar 6 Mb / s. BDP būtu:

(6 000 000 biti / s) (. 133 s) * (1 baits / 8 biti) = 99 750 baiti

Tas nozīmē, ka noklusējuma net.ipv4.tcp_rmem vērtībai jābūt aptuveni 100 000. Jūs varētu to iestatīt vēl augstāk, ja baidāties, ka saņemsit tik sliktu RTT kā pussekundi. Visas vērtības, kas atrodamas tīklos net.ipv4.tcp_rmem un net.ipv4.tcp_wmem, jāiestata identiski, jo pakešu pārsūtīšana un saņemšana notiek vienā un tajā pašā interneta savienojumā. Parasti net.ipv4.tcp_mem vēlaties iestatīt uz to pašu vērtību, ko izmanto net.ipv4.tcp_wmem un net.ipv4.tcp_rmem, jo ​​šis pirmais mainīgais ir kopējais lielākais bufera atmiņas lielums, kas iestatīts TCP darījumiem.

Izdodiet komandu un pārbaudiet, vai abi šie iestatījumi ir iestatīti uz 0 vai 1, kas norāda izslēgta vai ieslēgta stāvokli.

Iestatot net.ipv4.tcp_no_metrics_save uz 1, Linux kodols tiks piespiests dinamiski optimizēt saņemšanas logu starp net.ipv4.tcp_rmem un net.ipv4.tcp_wmem vērtībām. Ja ir iespējots net.ipv4.tcp_moderate_rcvbuf, tas novērš sastrēgumu ietekmi uz turpmāko savienojamību. Pirms jebkādu pastāvīgu izmaiņu veikšanas veiciet ātruma pārbaudi, izmantojot vietni http://www.speedtest.net vai http://www.bing.com/search?q=speed+test, lai pārliecinātos, vai jums ir mērījumu rokturis.

Pagaidām mainiet mainīgos ar aprēķinātajām vērtībām. Noteikti aizstājiet #s ar aprēķinātajām summām.

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

Pārbaudiet savienojumu vēlreiz, lai redzētu, vai ātrums ir uzlabojies, un, ja nē, vēlreiz pielabojiet komandu un atkārtojiet to. Atcerieties, ka varat nospiest augšup taustiņu savā terminālā, lai atkārtotu pēdējo izmantoto komandu. Kad esat atradis atbilstošās vērtības, atveriet Ar gksu vai sudo teksta redaktora komandu no 1. metodes un rediģējiet rindas, lai tās lasītu šādi, vēlreiz aizstājot #s ar aprēķinātajām vērtībām. Protams, jūs vēlaties arī dublēt failu tāpat kā pirmajā daļā, gadījumam, ja kļūdāties. Ja esat tādu izveidojis, varat atjaunot arī tādā pašā veidā.

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

Saglabājiet to, kad esat pārliecināts, ka viss ir kārtībā. Izdodiet šādu komandu:

sudo sysctl -p

Tas liks Linux kodolam atkārtoti ielādēt iestatījumus , un, ja viss noritēja labi, tam vajadzētu dot jums vismaz nedaudz ātrāku tīkla savienojumu. Atkarībā no sākotnējiem noklusējumiem atšķirība faktiski var būt dramatiska vai, iespējams, nemaz nav pamanāma.

Lasītas 8 minūtes