Greitai atsisiųsti didelį failą ir paskui jausti, kad kiekvienas paspaudimas lėtas, nėra prieštaravimas. Pralaidumas sako, kiek gali judėti per sekundę; kelionės pirmyn ir atgal laikas sako, kiek trunka apsikeitimas, kol įvyksta kas nors naudingo. Pirmą pagerinus antram tai nieko neduoda, o antras yra tai, ką žmogus pastebi rašydamas, spausdamas ar kalbėdamas. Matuokite skundą, o ne ryšį.

Greitas failas, lėtas paspaudimas: du skirtingi skaičiai

Masinis perdavimas nuolat laiko duomenis judėjime, todėl gali pranešti sveiką greitį net tada, kai kiekviena atskira užklausa laukia. Daugelis bandymų taip pat atidaro kelis ryšius vienu metu, o tai padidina bendrą skaičių, kol viena užklausa lieka lėta. Abu rezultatai suderinami, o didesnio skaičiaus citavimas vartotojui, kuris skundžiasi delsavimu, yra būdas prarasti pasitikėjimą.

Puslapio įkėlimas yra mažų apsikeitimų grandinė: vardų sprendimas, ryšio užmezgimas, užklausa, atsakymas ir tada priklausomos užklausos. Kiekvienas žingsnis vėl moka kelionės laiką, todėl didelio vėlavimo kelias atrodo lėtas net turėdamas daug pralaidumo.

Tunelis prideda savo kelionę ir apdorojimą, o maršrutas svarbesnis už etiketę žemėlapyje. Du išėjimai toje pačioje šalyje gali turėti labai skirtingus kelius į vieną paskirties vietą. Dviejų dešimčių milisekundžių skirtumas pakanka puslapio pojūčiui pakeisti, nors pralaidumo skaičių beveik nepajudina. Todėl išėjimo pasirinkimas turėtų sekti vėlavimo imtį, o ne vėliavėlės piktogramą.

Matuokite skundą, o ne ryšį

Pasirinkite matavimą, kuris atitinka vartotojo pasakytą sakinį. Lėtam atsisiuntimui reikia pastovaus greičio teisinga kryptimi; vėluojančiam skambučiui reikia tos programos statistikos; lėtai prasidedančiam puslapiui reikia vardų sprendimo ir užmezgimo laikų.

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

Pirmoji komanda duoda kelionės pirmyn ir atgal imtį į hostą, kuris atsako nuspėjamai, antroji praneša laiką iki pirmo baito ir vieno ryšio pastovų greitį, o trečioji matuoja bendrą pralaidumą keturiais lygiagrečiais srautais. Paleiskite jas prieš tą pačią paskirties vietą tuo pačiu paros metu, nes ryto imties palyginimas su vakaro imtimi sukuria istoriją, o ne matavimą.

Lyginant išėjimus, laikykite paskirties vietą fiksuotą. Pakeitus ir serverį, ir tunelį, vienas kintamasis tampa dviem, o rezultatas negali pasakyti, kuris buvo svarbus. Paleiskite kiekvieną išėjimą bent tris kartus, nes viena imtis dažnai patenka į maršruto pakeitimą ar triukšmingą minutę. Mediana naudingesnė už geriausią atvejį.

ICMP traktuokite kaip užuominą, o ne atsakymą. Atsakantis hostas gali apdoroti aido užklausas kitu keliu nei tuo, kurį naudoja jūsų programa, o vienas prarastas atsakymas neįrodo, kad kiekviena programa praranda paketus.

Vėlavimas esant apkrovai yra eilės problema

Labiausiai žmones klaidina modelis, kai ryšys atrodo geras tuščias, o atsarginės kopijos metu yra netinkamas. Tai eilė, o ne pralaidumas. Prisotintas išėjimo kanalas sukuria buferį prieš kiekvieną kitą paketą, todėl klavišo paspaudimas laukia už įkėlimo dalies.

ping -c 20 10.60.0.5 &
iperf3 -c 10.60.0.5 -t 20 -R -b 20M

Pirmoji komanda fone ima vėlavimo pavyzdžius, o antroji prisotina priešingą kryptį. Jei ping laikai perdavimo metu šokteli ir paskui atsistato, jūs atkūrėte bufferbloat, o neradote maršruto gedimo. Pataisa paprastai yra eilės valdymo nustatymas, mažesnis fono greitis arba masinio perdavimo perkėlimas nuo interaktyvaus kelio.

Pasirenkamo fono srauto mažinimas dažnai padeda labiau nei išėjimo šalies keitimas. Tai taip pat pigiau, grįžtama ir patikrinama per minutę. Jei eilės valdyti negalima, didelius įkėlimus suplanuokite ne darbo valandomis, o jei jie turi veikti dieną, apribokite jų greitį. Kai maršrutizatorius palaiko, eilės valdymo nustatymas yra geresnė pataisa.

Pakeiskite vieną dalyką ir lyginkite panašų su panašiu

Esant dideliam tuščios eigos vėlavimui, lyginkite išėjimus laikydami paskirties vietą fiksuotą, tada lyginkite maršrutus geriausiam kandidatui. Esant mažam stabiliam pralaidumui, vietoj to žiūrėkite į pralaidumą, serverio apkrovą ir kliento apdorojimą, nes tai skirtingos ribos.

Užsirašykite, ką matavote, prieš kokią paskirties vietą, kokiu metu ir su kokiais nustatymais. Palyginimo be šių keturių faktų neįmanoma pakartoti, o kitas žmogus pradės nuo nulio.

Tada pritaikykite įrankį bilieto teiginiui. "Lėtas internetas" nėra matavimas; "pirmas baitas užtruko 900 ms iki šio hosto, o pralaidumas buvo geras" yra matavimas, ir jis tiesiogiai nurodo vėlavimą, o ne pralaidumą.

Susiję straipsniai