Paano Ma-optimize ang Bilis ng Internet sa Ubuntu sa Mga Setting ng MTU



Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema

Habang magkakaiba ang mga teksto ng computer sa kanilang aplikasyon ng term, ginagamit ng Ubuntu ang TCP Maximum Transmission Unit (MTU) upang sumangguni sa pinakamalaking sukat ng isang TCP packet na maaaring maipasa ng isang makina sa isang koneksyon sa TCP / IP networking. Habang ang pagkalkula ng halagang ito ay medyo simple at gumagana ang mga default sa isang karamihan ng mga machine, maaaring posible na karagdagang i-optimize ang iyong system kung ang mga packet ay nagkakalat dahil sa hindi pangkaraniwang mga setting. Ang pagpapadala ng mga malalaking solong papalabas na packet ay mas mahusay kaysa sa pagpapadala ng maraming mas maliit na mga papalabas.



Ang pinakamadaling paraan upang malaman ang tamang halaga ng MTU para sa iyong makina ay upang buksan ang isang window ng terminal. Pindutin nang matagal ang CTRL, ATL at T o baka simulan ito mula sa Unity dash. Kung nagtatrabaho ka sa Ubuntu Server, pagkatapos ay magde-default ka sa isang interface ng CLI na walang graphic na kapaligiran. Kapag nasa terminal ka na, i-type ang ping -s 1464 -c1 distrowatch.com at hintayin ang output. Kung wala kang natatanggap na anumang bagay, kung gayon ang iyong koneksyon sa networking ay hindi nai-configure nang tama. Ipagpalagay na nakatanggap ka ng wastong output, pagkatapos ay hanapin ang isang seksyon na nagbabasa ng 1464 (1492) bytes ng data, na nagpapahiwatig na nagpapadala ka ng packet na may 28 bytes ng header na impormasyon.



Paraan 1: Sinusuri ang Output ng ping para sa Packet Fragmentation

Ipapaalam sa iyo ng ping utos kung ang packet ay ipinadala bilang higit sa isang fragment na may kalakip na maraming data ng header. Suriin ang output para sa anumang linya na nagbababala tungkol sa isang bagay tungkol sa 'Frag kinakailangan at DF set (mtu = 1492)' o anumang katulad na teksto. Nakasalalay sa aling bersyon ng ping ang isinama sa iyong bersyon ng Ubuntu, ang babala ay maaaring naiiba ang pagkakasabi. Kung hindi naroroon ang tekstong ito, mas malamang na nakikipagtulungan ka na sa ilang pagsukat sa MTU na hindi nagpapadala ng mga fragment na packet sa kasalukuyang oras.



Upang mahanap ang pinaka-na-optimize na MTU para sa iyong system, gugustuhin mong patakbuhin ang ping na ito ng isang maliit na laki ng packet, at pagkatapos ay dagdagan ito hanggang sa magsimula itong mag-fragment pagkatapos na isaalang-alang mo ang iyong cutoff point. Tandaan na ang MTU = payload + 28, yamang kailangang may ilang silid para sa data ng header. Ngayon, kung maaari mong taasan ang laki sa isang bagay na napakalaki nang walang anumang mga fragment, maaaring mapanghawakan ng iyong interface ng network ang napakalaking mga packet nang hindi nangangailangan ng pagbuo ng mga fragment. Kapag nakita mo sa wakas ang isang babalang kinakailangan ng Frag, nangangahulugan ito na ang anumang packet na ipinadala na may isang kargamento na laki na iyong pinatakbo o mas mataas ay magpapadala ng maraming mga packet. Ipagpalagay na kung susubukan mo ang ping -s 2464 -c1 distrowatch.com nang walang anumang babala, ngunit ang ping -s 2465 -c1 distrowatch.com ay nagpapadala ng isang babala, nangangahulugan ito na 2,464 + 28 ang pinakamalaking MTU na setting na maaaring hawakan ng iyong pagsasaayos ng TCP / IP bago magpadala ng maraming fragmented na mga packet. Maaaring tumagal ng ilang sandali upang matukoy ang isang eksaktong halaga.



Kapag may naisip kang halaga mula sa pagpapatakbo ng ping command ng maraming beses, kakailanganin mong tumakbo sudo ifconfig upang makahanap ng isang listahan ng mga kilalang mga interface ng network. Ang Ubuntu at ang mga derivatives nito ay inalis ang root account, ngunit nagpatakbo kami mula sa isang shell na nilikha ng sudo bash para sa aming mga halimbawa. Inirerekumenda sa iyo na paunahin lamang ang bawat utos sa sudo nang paisa-isa.

Sa sandaling malalaman mo ang tamang aparato, subukan:

sudo ifconfig interfaceName man ####

Palitan ang interfaceName ng pangalan ng network adapter na iyong pinagtatrabaho, at pagkatapos ay palitan ang #### ng laki na iyong nahanap kasama ang 28 para sa impormasyon ng header. Maaari kang magpatakbo ng ifconfig upang makita kung ano ang default na MTU para sa iyong NIC at patakbuhin itong muli nang maraming beses upang makita kung binago ito ng dating utos na ito. Ang ilang mga adaptor ng interface ng network ay hindi ka hahayaan na baguhin ito. Kung iyon ang kaso, kung gayon ang karagdagang pag-optimize ay magiging walang bunga sa kasamaang palad. Kung, gayunpaman, nagtrabaho ito, pagkatapos ay maaari mo talaga itong gawing permanente. Subukang tumakbo ifconfig | grep MTU upang mahanap ang lahat ng mga halaga kung mayroon kang maraming mga konektor, at pagkatapos ay maaari mong maitugma ang mga halaga sa mga konektor na iyong ginagawa.

Paraan 2: Gumagawa ng stick ng Mga Pag-optimize ng MTU

Sa ngayon wala kang permanenteng pagbabago sa iyong system. Kung mag-reboot ka, tatapusin mo ang anumang mga pagbabago, na mabuti kung nakagawa ka ng isang uri ng pagkakamali at nalaman na hindi ka na makakonekta sa Internet. Sa kabilang banda, kung nakakita ka ng isang tumpak na halaga para sa iyong MTU, kung gayon kakailanganin mong i-edit ang dokumento Marahil ito ay isang magandang panahon upang makagawa ng isang kopya nito kung sakaling may mangyari. Subukan mo o isang bagay na pamilyar kaya mayroon kang isang kopya kung sakali. Kung nais mong i-edit ito nang grapiko, pagkatapos ay i-type at ipasok ang iyong password. Kung gumagamit ka ng Kubuntu, Xubuntu o Lubuntu, kailangan mong palitan ang gedit ng graphic na text editor na ginagamit ng iyong Ubuntu respin. Halimbawa, ang Xubuntu ay gumagamit ng mousepad sa halip na gedit. Kung gumagamit ka ng Ubuntu Server o mas gusto mo lang ang pagtatrabaho sa linya ng utos, pagkatapos ay i-type lang , sa pag-aakalang hindi ka gumagamit ng isang root shell.

Hindi alintana kung aling pamamaraan ang ginamit mo upang mai-edit ito, hanapin ang pangalan ng interface kung ang config ay dumura bago. Ipagpalagay natin na tinitingnan mo ang unang konektor ng Wifi sa iyong makina, na marahil ay mapangalanan na wlan0 o isang bagay na katulad. Sa kasong ito, hanapin ang isang snippet ng code na nagsisimula sa iface wlan0 inet static o katulad na bagay. Maaaring mag-iba ang iyong agwat ng mga milya, ngunit ang susunod na linya ay basahin ang address na sinusundan ng isang IP address sa ###. ###. #. ## format. Maaaring nai-format ito nang iba kung ikaw ay nasa isang katutubong koneksyon sa IPv6. Magkakaroon ka ng isang netmask at linya ng gateway, na sinusundan ng isang bagay na naglilista ng isang pangalan ng host o katulad na bagay. Sa ibaba, magkakaroon ka ng isa pang linya na mabasa ang mtu at isang numero. Palitan ang numerong iyon ng na-optimize na halaga ng MTU, i-save ang dokumento at pagkatapos ay lumabas sa text editor. Gusto mong i-reboot ang system upang matiyak na gumana ito.

Dapat maging maayos ang lahat pagkatapos ng maraming mga pag-reboot, pagkatapos ay tanggalin ang mga interface .bak file sa iyong direktoryo ng ~ / Mga Dokumento. Maaari mong gamitin sa halip ang sudo mv at pagkatapos

kung may anumang naging masama sa proseso.

Paraan 3: Pag-edit sa Mga Setting ng TCP Tumanggap ng Window (RWIN)

Tumutukoy ang Ubuntu sa pinakamalaking halaga ng data na tinatanggap ng isang host bago ito kilalanin ang nagpadala bilang ang halaga ng RWIN. Kung mag-download ka ng isang 30 MB file, kung gayon ang remote server ay hindi kaagad magpapadala sa iyo ng isang 30 MB na bloke ng data. Nagpadala ang iyong host ng Ubuntu ng isang tukoy na numero ng RWIN kapag hiniling nito ang file, at pagkatapos ay magsisimulang mag-streaming ng data ang server hanggang sa maabot ang bilang ng mga byte bago ito maghintay para sa isang pagkilala na nakuha ng iyong system ang data. Kapag natanggap ito ng server, nagsisimula itong magpadala ng mga karagdagang bloke bago maghintay para sa isa pang pagkilala.

Ang latency ay ang oras na kinakailangan upang maipadala at makatanggap ng mga packet mula sa isang remote server. Ang mga rate ng koneksyon ay nag-aambag sa halagang ito, ngunit gayun din sa maraming iba pang mga pagkaantala. Ipapaliwanag ng utos ng ping ang latency sa mga tuntunin ng mga numero ng oras ng pag-ikot (RTT). Tingnan ang output mula sa aming nakaraang ping ng DistroWatch. Mahahanap mo ang isang linya na nagbabasa ng oras = 134 ms, na kung gaano katagal bago umikot ang mga packet mula sa aming Ubuntu machine sa distrowatch.com at bumalik muli. Nagpapadala kami ng isang 1,492-byte packet, kaya sa 134 ms maaari naming kalkulahin ang isang formula upang makita ang kabuuang bilis ng paglipat:

1,492 / .134 segundo = 11,134.328 bytes / segundo, na lumalabas sa humigit-kumulang na 10.88 binary kilobytes bawat segundo. Sa halip mabagal ang pangkalahatang iyon, kung kaya't nasa lugar ang RWIN upang hindi ka makilala ang bawat packet na naisa-isa na ipinadala.

Ang mga setting ng RWIN sa Ubuntu ay hiwalay mula sa mga setting ng MTU. Kalkulahin ang Bandwidth Delay Product (BDP) para sa iyong koneksyon sa Internet sa pormulang ito:

(Kabuuang maximum na bandwidth ng iyong koneksyon sa Internet ay dapat na magbigay sa Bytes bawat Segundo) (RTT sa Segundo) = BDP

Ang laki ng TCP packet ay hindi nakakaimpluwensya sa RWIN, ngunit ang laki ng packet mismo ay naiimpluwensyahan ng halagang napili sa Paraan 1. Gamitin ang utos na ito upang hanapin ang mga variable ng kernel na nauugnay sa RWIN:

Mangyaring tandaan na mayroong isang puwang pagkatapos ng _mem, ngunit wala saanman sa naka-quote na teksto. Makakakuha ka ng maraming mga halaga. Ang kailangan ay net.ipv4.tcp_rmem, net.ipv4.tcp_wmem at net.ipv4.tcp_mem . Ang mga numero pagkatapos ng mga halagang ito ay kumakatawan sa minimum, default at maximum na mga halaga para sa bawat isa. Kinakatawan nila ang makatanggap ng vector memory memory, magpadala ng vector at TCP stack vector. Kung nagpapatakbo ka ng Ubuntu Kylin, maaari kang magkaroon ng isang mahabang listahan ng mga karagdagang. Maaari mong ligtas na balewalain ang anuman sa mga karagdagang halagang ito. Ang ilang mga gumagamit ng Kylin ay maaari ring makakita ng ilan sa mga halagang binilang sa iba pang mga script, ngunit sa sandaling mas simpleng hanapin ang mga linyang ito.

Ang Ubuntu ay walang variable na RWIN, ngunit malapit ang net.ipv4.tcp_rmem. Kinokontrol ng mga variable na ito ang paggamit ng memorya at hindi lamang ang laki ng TCP. Nagsasama sila ng memorya na kinakain ng mga istraktura ng socket ng data at mga maikling packet sa napakalaking buffer. Kung nais mong i-optimize ang mga halagang ito, pagkatapos ay ipadala ang maximum na laki ng mga packet na itinakda mo sa Paraan 1 sa isa pang remote server. Gumamit ulit tayo ng 1,492-byte default, ibabawas ang 28 byte para sa impormasyon ng header, ngunit tandaan na maaari kang magkaroon ng ibang halaga. Gamitin ang command ping -s 1464 -c5 distrowatch.com upang makakuha ng karagdagang data ng RTT.

Gusto mong patakbuhin ang pagsubok na ito nang higit sa isang beses sa iba't ibang oras ng araw at gabi. Subukang i-ping din ang ilang iba pang mga remote server upang makita kung magkano ang pagkakaiba-iba ng RTT. Dahil mayroon kaming average na bahagyang mahigit sa 130 ms sa tuwing susubukan namin ito, maaari naming gamitin ang formula upang malaman ang aming BDP. Ipagpalagay na nasa isang napaka-generic na 6 Mbits / segundo na koneksyon ka. Ang BDP ay magiging:

(6,000,000 bits / sec) (. 133 sec) * (1 byte / 8 bits) = 99,750 bytes

Nangangahulugan ito na ang default na net.ipv4.tcp_rmem na halaga ay dapat na sa paligid ng 100,000. Maaari mo itong itakda nang mas mataas pa kung natatakot kang makakuha ng isang RTT na masama sa kalahating segundo. Ang lahat ng mga halagang matatagpuan sa net.ipv4.tcp_rmem at net.ipv4.tcp_wmem ay kailangang maitakda nang magkapareho, dahil ang paghahatid at pagtanggap ng mga packet ay nangyayari sa parehong koneksyon sa Internet. Sa pangkalahatan ay nais mong itakda ang net.ipv4.tcp_mem sa parehong halagang ginamit ng net.ipv4.tcp_wmem at net.ipv4.tcp_rmem dahil ang unang variable na ito ay ang kabuuang pinakamalaking laki ng memorya ng buffer na itinakda para sa mga transaksyon sa TCP.

Iisyu ang utos at tingnan kung ang pareho ng mga setting na ito ay nakatakda sa 0 o 1, na nagsasaad ng isang estado ng off o sa.

Ang pagtatakda ng net.ipv4.tcp_no_metrics_save sa 1 ay pipilitin ang kernel ng Linux na i-optimize ang natanggap na window sa pagitan ng net.ipv4.tcp_rmem at net.ipv4.tcp_wmem na mga halaga sa isang makabagong paraan. Kapag pinagana ang net.ipv4.tcp_moderate_rcvbuf, pinipigilan nito ang kasikipan mula sa nakakaimpluwensya sa kasunod na pagkakakonekta. Bago gumawa ng anumang permanenteng pagbabago, magsagawa ng isang mabilis na pagsusuri sa pamamagitan ng http://www.speedtest.net o http://www.bing.com/search?q=speed+test upang matiyak na mayroon kang hawakan sa iyong mga sukat.

Pansamantalang baguhin ang mga variable sa iyong kinakalkula na mga halaga. Tiyaking palitan ang #s sa iyong kinakalkula na kabuuan.

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

Muling subukang muli ang iyong koneksyon upang makita kung ang bilis ay napabuti, at kung hindi sabunutan muli ang iyong utos at muling isagawa ito. Tandaan na maaari mong itulak ang up key sa iyong terminal upang ulitin ang huling ginamit na utos. Kapag nahanap mo na ang mga naaangkop na halaga, buksan kasama ang gksu o sudo utos ng editor ng teksto mula sa Paraan 1, at i-edit ang mga linya upang mabasa bilang sumusunod, sa sandaling palitan ang #s ng iyong kinakalkula na mga halaga. Siyempre gugustuhin mong i-backup din ang mag-file ng parehong paraan sa iyong ginawa sa bahaging isa kung sakali kang magkamali. Kung nakagawa ka ng isa, maaari mo ring ibalik sa parehong fashion din.

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

I-save ito kapag natitiyak mong okay ang lahat. Isyu ang sumusunod na utos:

sudo sysctl -p

Pipilitin nito ang kernel ng Linux na i-reload ang mga setting sa , at kung naging maayos ang lahat kung gayon dapat itong bigyan ka ng hindi bababa sa isang medyo mas mabilis na koneksyon sa network. Nakasalalay sa iyong orihinal na mga default, ang pagkakaiba ay maaaring talagang dramatiko o potensyal na hindi kapansin-pansin.

8 minuto basahin