Ваша загрузка хуткая, дык чаму кожны клік здаецца павольным?
Вялікая перадача можа ісці на поўнай хуткасці, пакуль званкі і клікі запазніваюцца. Мерце час кругавога шляху, устойлівую хуткасць і затрымку пад нагрузкай як тры асобныя пытанні.
Хутка спампаваць вялікі файл і потым адчуць, што кожны клік павольны, — гэта не супярэчнасць. Прапускная здольнасць кажа, колькі можа прайсці за секунду; час кругавога шляху кажа, колькі доўжыцца абмен, перш чым адбудзецца нешта карыснае. Паляпшэнне першага нічога не дае для другога, а другое — гэта тое, што чалавек заўважае падчас набору, кліку ці размовы. Мерце скаргу, а не злучэнне.
Хуткі файл, павольны клік: два розныя лікі
Масавая перадача ўвесь час трымае даныя ў руху, таму можа паказваць здаровую хуткасць нават тады, калі кожны асобны запыт чакае. Многія бэнчмаркі таксама адкрываюць некалькі злучэнняў адначасова, што павялічвае сумарны паказчык, пакуль адзін запыт застаецца павольным. Абодва вынікі сумяшчальныя, і цытаванне большага карыстальніку, які скардзіцца на затрымку, — гэта шлях да страты даверу.
Загрузка старонкі — гэта ланцуг дробных абменаў: развязанне імён, усталяванне злучэння, запыт, адказ, а затым залежныя запыты. Кожны крок зноў плаціць за кругавы шлях, таму шлях з высокай затрымкай здаецца павольным, нават калі мае багата прапускной здольнасці.
Тунэль дадае свой шлях і апрацоўку, і маршрут важнейшы за пазнаку на карце. Два выхады ў адной краіне могуць мець вельмі розныя шляхі да адной прызначэнні. Розніца ў дваццаць мілісекунд дастатковая, каб змяніць адчуванне старонкі, хоць яна ледзь рухае лік прапускной здольнасці. Таму выбар выхаду павінен ісці за выбаркай затрымкі, а не за значком сцяга.
Мерце скаргу, а не злучэнне
Выберыце вымярэнне, якое адпавядае фразе, якую сказаў карыстальнік. Павольнаму спампоўванню патрэбна ўстойлівая хуткасць у патрэбным кірунку; званку з затрымкай патрэбна ўласная статыстыка гэтага дадатку; старонцы, якая павольна пачынаецца, патрэбны час развязання імён і ўсталявання.
ping -c 20 10.60.0.5
curl -sS -o /dev/null -w 'ttfb=%{time_starttransfer} rate=%{speed_download}\n' https://files.plant.example/1gb.bin
iperf3 -c 10.60.0.5 -t 10 -P 4Першая каманда дае выбарку кругавога шляху да хоста, які адказвае прадказальна, другая паведамляе час да першага байта і ўстойлівую хуткасць для аднаго злучэння, а трэцяя вымярае сумарную прапускную здольнасць чатырма паралельнымі патокамі. Запусціце іх да адной і той жа прызначэнні ў адзін і той жа час дня, бо параўнанне ранішняй выбаркі з вячэрняй стварае гісторыю, а не вымярэнне.
Трымайце прызначэнне нязменным пры параўнанні выхадаў. Змена і сервера, і тунэля ператварае адну зменную ў дзве, і вынік не можа сказаць, што мела значэнне. Запускайце кожны выхад як мінімум тры разы, бо адзіночная выбарка часта трапляе ў змену маршрутызацыі ці шумную хвіліну. Медыяна карыснейшая за найлепшы выпадак.
Стаўцеся да ICMP як да падказкі, а не як да адказу. Хост, які адказвае, можа апрацоўваць запыты рэха на іншым шляху, чым той, які выкарыстоўвае ваш дадатак, і адзін страчаны адказ не доказ таго, што ўсе дадаткі губляюць пакеты.
Затрымка пад нагрузкай — гэта праблема чаргі
Схема, якая бянтэжыць людзей найбольш, — гэта злучэнне, якое выглядае добрым у стане простаю і непрыдатным падчас рэзервовага капіявання. Гэта чарга, а не прапускная здольнасць. Насычанае ўзыходнае злучэнне будуе буфер перад кожным іншым пакетам, таму націск клавішы чакае за часткай загрузкі.
ping -c 20 10.60.0.5 & iperf3 -c 10.60.0.5 -t 20 -R -b 20M
Першая каманда бярэ выбаркі затрымкі ў фоне, пакуль другая насычае зваротны кірунак. Калі часы ping падскокваюць падчас перадачы і потым аднаўляюцца, вы ўзнавілі bufferbloat, а не знайшлі збой маршрутызацыі. Выпраўленне звычайна — налада кіравання чаргой, ніжэйшая фонавая хуткасць або перанос масавай перадачы з інтэрактыўнага шляху.
Змяншэнне неабавязковага фонавага трафіку часта дапамагае больш, чым змена краіны выхаду. Гэта таксама танней, зваротна і можа быць праверана за хвіліну. Плануйце вялікія загрузкі па-за працоўнымі гадзінамі, калі чаргой нельга кіраваць, і абмяжуйце іх хуткасць, калі яны мусяць ісці ўдзень. Налада кіравання чаргой — лепшае выпраўленне, калі роўтар яе падтрымлівае.
Змяніце адно і параўноўвайце падобнае з падобным
Пры высокай затрымцы простаю параўноўвайце выхады, трымаючы прызначэнне нязменным, потым параўноўвайце маршруты для найлепшага кандыдата. Пры нізкай устойлівай прапускной здольнасці глядзіце на прапускную здольнасць, нагрузку сервера і апрацоўку кліента, бо гэта розныя абмежаванні.
Запішыце, што вы вымяралі, супраць якога прызначэння, у які час і з якімі наладамі. Параўнанне без гэтых чатырох фактаў нельга паўтарыць, і наступны чалавек пачне з нуля.
Затым падбярыце інструмент да сцвярджэння ў заяўцы. "Павольны інтэрнэт" — не вымярэнне; "першы байт заняў 900 мс да гэтага хоста, хаця прапускная здольнасць была добрай" — гэта вымярэнне, і яно паказвае непасрэдна на затрымку, а не на прапускную здольнасць.