infrastruktura v oblakuuravnoteženje obremenitveusmerjanjeuspešnostmreženje
Usmerjanje, ki upošteva zakasnitev, v primerjavi z naključno porazdelitvijo zahtev
Usmerjanje, ki upošteva zakasnitev, usmerja promet na strežnik ali končno točko z najhitrejšim odzivnim časom, medtem ko naključna porazdelitev zahtev porazdeli obremenitev brez upoštevanja zmogljivosti. Izbira med njima vpliva na uporabniško izkušnjo, stroške infrastrukture in odpornost sistema v oblačnih okoljih.
Poudarki
Usmerjanje, ki upošteva zakasnitev, aktivno meri in optimizira odzivni čas, medtem ko naključna porazdelitev v celoti ignorira zmogljivost.
Naključna porazdelitev je bistveno enostavnejša za izvedbo in ima skoraj ničelne stroške.
Usmerjanje, ki upošteva zakasnitev, zagotavlja opazno boljšo uporabniško izkušnjo za globalno porazdeljene aplikacije.
Naključna porazdelitev lahko pošlje promet na počasne ali degradirane strežnike, ne da bi se kdo zavedal njihovega stanja.
Kaj je Usmerjanje, ki upošteva zakasnitev?
Strategija porazdelitve prometa, ki pošilja zahteve v zaledno omrežje, kar ponuja najkrajši odzivni čas ali geografsko bližino.
Neprekinjeno meri čase prenosa podatkov med uravnalnikom obremenitve in zalednimi strežniki, da lahko sprejema odločitve o usmerjanju.
AWS je leta 2013 za Route 53 uvedel usmerjanje na podlagi zakasnitve, s čimer je postal ena najzgodnejših implementacij za širšo javnost.
Običajno izboljša zaznano učinkovitost končnega uporabnika za 20–50 % v primerjavi z krožnimi ali naključnimi metodami.
Pristop deluje dobro za globalno porazdeljene uporabniške baze, kjer geografska razdalja močno vpliva na odzivne čase.
Zahteva stalne preglede zdravja in merjenje zakasnitve, kar doda majhno količino režijskih stroškov usmerjevalni plasti.
Kaj je Naključna porazdelitev zahtev?
Metoda uravnoteženja obremenitve, ki vsako dohodno zahtevo dodeli povsem naključno izbranemu strežniku v ozadju.
Vsak strežnik v zaledju obravnava kot enako verjetno prejem naslednje zahteve, pri čemer ignorira trenutno obremenitev ali hitrost odziva.
Algoritem je eden najpreprostejših za izvedbo in skoraj ne zahteva sledenja stanju.
Statistično gledano naključna porazdelitev doseže razumno porazdelitev obremenitve med številnimi strežniki skozi čas.
Slabo deluje, ko imajo strežniki različne zmogljivosti ali ko so nekatera vozlišča bistveno počasnejša od drugih.
Naključna izbira se pogosto uporablja kot osnova v akademskih merilih za primerjavo pametnejših algoritmov usmerjanja.
Primerjalna tabela
Funkcija
Usmerjanje, ki upošteva zakasnitev
Naključna porazdelitev zahtev
Logika usmerjanja
Izbere strežnik z najnižjo izmerjeno latenco
Naključno izbere strežnik brez vnosa zmogljivosti
Optimizacija delovanja
Visoka – aktivno skrajša odzivne čase
Nizka – hitrosti sploh ne upošteva
Kompleksnost izvedbe
Zmerna do visoka – potrebno je spremljanje in meritve
Zelo nizko – potrebna je minimalna koda
Kakovost porazdelitve obremenitve
Dobro, vendar lahko daje prednost hitrejšim vozliščem
Tudi sčasoma, neenakomerno v kratkih sunkih
Najboljši primer uporabe
Globalne aplikacije z geografsko raznolikimi uporabniki
Homogeni strežniški bazeni s podobnimi specifikacijami
Režijski stroški
Neprekinjeni pregledi zdravja in sonde zakasnitve
Zanemarljivi računski stroški
Toleranca napak
Lahko usmerja mimo počasnih ali odpovedujočih vozlišč
Promet se lahko pošlje na nezdrava vozlišča
Prilagodljivost
Dobro se skalira, vendar potrebuje združevanje metrik
Brez težav se prilagaja brez skupnega stanja
Podrobna primerjava
Kako posamezna metoda sprejema odločitve
Usmerjanje, ki upošteva zakasnitev, se zanaša na meritve v realnem ali skoraj realnem času, koliko časa potrebuje vsak strežnik za odziv. Izenačevalnik obremenitve spremlja odzivne čase in usmerja nove zahteve proti strežniku, ki je trenutno najhitrejši. Nasprotno pa naključna porazdelitev zahtev sprejema vsako odločitev neodvisno in brez pomnilnika. Vsaka zahteva je v bistvu met kocke, zato se sistem nikoli ne nauči, kateri strežnik deluje dobro in kateri ima težave.
Vpliv na uporabniško izkušnjo
Ko je zakasnitev pomembna, to uporabniki opazijo. Usmerjanje, ki upošteva zakasnitev, lahko skrajša nalaganje strani za več sto milisekund, saj se izogne preobremenjenim ali geografsko oddaljenim strežnikom. Za aplikacije, kot so pretakanje videoposnetkov, igre ali finančno trgovanje, je ta razlika ogromna. Naključna porazdelitev ne ponuja takšne prednosti. Uporabniki imajo lahko srečo in naletijo na hiter strežnik ali pa dosledno naletijo na počasnega. Izkušnja postane nepredvidljiva, kar si produktne ekipe le redko želijo.
Stroški infrastrukture in uporaba virov
Usmerjanje, ki upošteva zakasnitev, opravi dodatno delo. Za vsako zahtevo izvaja sonde, združuje metrike in sprejema bolj kompleksne odločitve. To pomeni nekoliko večjo porabo CPE-ja in pomnilnika v uravnalniku obremenitve. Naključna porazdelitev je v bistvu brezplačna z vidika računalništva. Za majhne uvedbe ali stroškovno občutljive projekte je ta preprostost privlačna. Vendar pa izboljšave zmogljivosti zaradi usmerjanja, ki upošteva zakasnitev, pogosto upravičujejo dodatne stroške z zmanjšanjem potrebe po preveč oskrbljenih strežnikih.
Zanesljivost v primeru okvare
Počasen strežnik ni enak mrtvemu strežniku, vendar oba škodujeta uporabnikom. Usmerjanje, ki se zaveda zakasnitve, lahko zazna poslabšanje delovanja in preusmeri promet, preden se stvari zapletejo. Naključna porazdelitev nima takšne zaznave. Če se strežnik zaradi pomnilniškega pritiska ali hrupnega soseda začne odzivati počasi, mu bo naključno usmerjanje še naprej pošiljalo promet. Kljub temu je naključna porazdelitev naravno odporna na določene načine napak, ker ni odvisna od nobenega skupnega stanja, ki bi lahko postalo enotna točka napake.
Ko preprostost zmaga
Ni vsaka delovna obremenitev potrebuje pametno usmerjanje. Če za uravnalnikom obremenitve uporabljate majhno gručo enakih strežnikov in so vaši uporabniki večinoma v eni regiji, lahko naključna porazdelitev deluje brezhibno. Statistično povprečenje pomeni, da noben posamezen strežnik ni preobremenjen. Dodajanje logike, ki upošteva zakasnitev, v takšni nastavitvi bi bilo pretirano inženirstvo. Ključno vprašanje je, ali ima vaše okolje dovolj razlik v zmogljivosti strežnikov ali lokaciji uporabnikov, da se pametno usmerjanje splača.
Prednosti in slabosti
Usmerjanje, ki upošteva zakasnitev
Prednosti
+Hitrejša uporabniška izkušnja
+Prilagodi se stanju strežnika
+Geografska optimizacija
+Boljše za globalne aplikacije
Vse
−Višja kompleksnost
−Več režijskih stroškov
−Zahteva zbiranje meritev
−Lahko neenakomerno daje prednost hitrim vozliščem
Naključna porazdelitev zahtev
Prednosti
+Izjemno preprosto
+Ni potrebna država
+Statistično enakomerna obremenitev
+Enostavno odpravljanje napak
Vse
−Ignorira hitrost strežnika
−Nepredvidljivo kratkoročno
−Brez zavedanja o napakah
−Slabo za raznoliko strojno opremo
Pogoste zablode
Mit
Naključna porazdelitev je zaradi zakona velikih števil prav tako dobra kot pametno usmerjanje.
Resničnost
Čeprav se naključna porazdelitev enakomerno porazdeli po tisočih zahtevah, posamezni uporabniki še vedno občutijo varianco. Uporabniku, ki naleti na počasen strežnik, ni mar za statistična povprečja. Usmerjanje, ki upošteva zakasnitev, zmanjša varianco na zahtevo, kar je dejansko pomembno za uporabniško izkušnjo.
Mit
Usmerjanje, ki upošteva zakasnitev, vedno izbere geografsko najbližji strežnik.
Resničnost
Geografska bližina je en vhodni dejavnik, vendar usmerjanje, ki upošteva zakasnitev, meri dejanske odzivne čase, ki se lahko razlikujejo od fizične razdalje zaradi preobremenjenosti omrežja, dogovorov o peeringu ali obremenitve strežnika. Geografsko bližji strežnik se lahko dejansko odziva počasneje kot bolj oddaljen.
Mit
Naključna porazdelitev je zastarela in je nihče ne uporablja v produkciji.
Resničnost
Naključna porazdelitev se še vedno pojavlja v produkcijskih sistemih, zlasti kot odločilni dejavnik v hibridnih algoritmih ali v okoljih z enotnimi specifikacijami strežnikov. Nekateri CDN-ji in robne platforme uporabljajo naključno izbiro kot del svoje širše logike usmerjanja.
Mit
Usmerjanje, ki upošteva zakasnitev, odpravlja potrebo po načrtovanju zmogljivosti.
Resničnost
Pametno usmerjanje pomaga učinkovito porazdeliti obremenitev, vendar ne ustvarja zmogljivosti iz nič. Če je vaš zaledni sistem premajhen, bo usmerjanje, ki upošteva zakasnitev, preprosto usmerjalo okoli najpočasnejših strežnikov, dokler ne postane vse počasno. Pravilno načrtovanje zmogljivosti ostaja bistvenega pomena.
Mit
Naključna porazdelitev je nepoštena do uporabnikov, ker imajo nekateri vedno počasne strežnike.
Resničnost
Naključna porazdelitev je pravična v smislu, da ima vsak strežnik enako verjetnost, da bo izbran, zato noben uporabnik ni sistematično prikrajšan. Težava je v tem, da ne optimizira za nikogar, temveč da aktivno škoduje določenim uporabnikom.
Pogosto zastavljena vprašanja
Kaj je usmerjanje, ki upošteva zakasnitev, poenostavljeno povedano?
Usmerjanje glede na zakasnitev je strategija uravnoteženja obremenitve, pri kateri sistem meri, kako hitro se odziva vsak strežnik v ozadju, in pošilja nove zahteve tistemu, ki je trenutno najhitrejši. Namesto da bi vse strežnike obravnaval enako, aktivno poskuša čim bolj zmanjšati odzivni čas za vsakega uporabnika. To je še posebej uporabno, kadar so strežniki razpršeni po različnih regijah ali imajo različne ravni zmogljivosti.
Kako dejansko deluje naključna porazdelitev zahtev?
Naključna porazdelitev zahtev deluje tako, da se za vsako dohodno zahtevo naključno izbere strežnik v ozadju, ne da bi se upoštevala trenutna obremenitev, stanje strežnika ali odzivni časi. Pri mnogih zahtevah se obremenitev statistično enakomerno porazdeli, vendar lahko vsaka posamezna zahteva pristane na hitrem ali počasnem strežniku. To je eden najpreprostejših algoritmov za uravnoteženje obremenitve.
Katera metoda je boljša za globalno uporabo?
Usmerjanje, ki upošteva zakasnitev, je skoraj vedno boljše za globalne aplikacije. Uporabniki na različnih celinah imajo zelo različne odzivne čase, odvisno od tega, na kateri strežnik naletijo, usmerjanje, ki upošteva zakasnitev, pa lahko vsakega uporabnika usmeri v najbližjo ali najhitrejšo regijo. Naključna porazdelitev bi nekatere uporabnike po nepotrebnem poslala po svetu, kar bi škodovalo njihovi izkušnji.
Ali je usmerjanje, ki upošteva zakasnitev, dražje za izvajanje?
Da, to doda nekaj režijskih stroškov. Izenačevalnik obremenitve mora nenehno preverjati strežnike, shranjevati meritve zakasnitve in sprejemati bolj kompleksne odločitve za vsako zahtevo. To pomeni nekoliko večjo porabo procesorja in pomnilnika. Vendar pa prednosti zmogljivosti pogosto zmanjšajo potrebo po preveč opremljeni infrastrukturi, kar lahko izravna te stroške.
Ali lahko združite oba pristopa?
Absolutno. Številni produkcijski sistemi uporabljajo hibridne pristope, kot je naključna izbira znotraj skupine zdravih strežnikov ali usmerjanje, ki upošteva zakasnitev, z naključnim prekinjanjem neodločenosti, ko ima več strežnikov podobne odzivne čase. Kombiniranje metod vam omogoča preprostost naključne porazdelitve z nekaj optimizacije usmerjanja, ki upošteva zakasnitev.
Ali se naključna porazdelitev še vedno uporablja v sodobnih platformah v oblaku?
Da, čeprav pogosto kot komponenta večjih sistemov. Nekateri uravnalniki obremenitve uporabljajo naključno izbiro kot osnovo ali merilo za razreševanje razlik, nekatere raziskovalne naloge pa še vedno uporabljajo naključno porazdelitev kot merilo. V resnih produkcijskih okoljih je manj pogosta kot edina strategija usmerjanja, vendar koncept ostaja relevanten.
Koliko hitrejše je usmerjanje, ki upošteva zakasnitev, v praksi?
Izboljšave v resničnem svetu se razlikujejo, vendar študije in poročila prodajalcev običajno kažejo 20–50-odstotno zmanjšanje povprečnega odzivnega časa v primerjavi z metodami krožnega dela ali naključnimi metodami, zlasti v geografsko porazdeljenih okoljih. Največje koristi izhajajo iz izogibanja medcelinskim skokom in usmerjanja okoli preobremenjenih vozlišč.
Kaj se zgodi, če so meritve latence napačne?
Slabe meritve vodijo do slabih odločitev o usmerjanju. Če sistem meni, da je počasen strežnik hiter, bo tja še naprej pošiljal promet, kar bo poslabšalo delovanje uporabnikov. Zato sistemi usmerjanja, ki se zavedajo zakasnitve, uporabljajo več sond, zaznavanje izstopajočih vrednosti in časovno omejena povprečja, da se izognejo zavajanju zaradi začasnih konic ali zastarelih podatkov.
Ali CDN-ji uporabljajo usmerjanje, ki upošteva zakasnitev?
Večina večjih omrežij za dostavo podatkov (CDN) uporablja neko obliko usmerjanja na podlagi zakasnitve ali zmogljivosti, da uporabnike usmeri na najboljšo lokacijo na robu omrežja. Storitve, kot so Cloudflare, AWS CloudFront in Akamai, merijo zakasnitev v resničnem svetu in ustrezno usmerjajo. Naključna porazdelitev bi bila za promet CDN slaba izbira, ker so uporabniki razpršeni po vsem svetu.
Kateri pristop je lažje odpravljati napake?
Naključno porazdelitev je veliko lažje odpravljati napake, ker ni skritega stanja ali logike odločanja, ki bi ji bilo treba slediti. Vsaka zahteva je neodvisna, zato je reprodukcija težav preprosta. Usmerjanje, ki upošteva zakasnitev, vključuje metrike, pragove in prilagodljivo vedenje, zaradi česar je odpravljanje težav lahko bolj zapleteno, a tudi bolj informativno, ko gre kaj narobe.
Ocena
Izberite usmerjanje, ki upošteva zakasnitev, kadar so vaši uporabniki razpršeni po regijah ali kadar imajo vaši strežniki v ozadju bistveno različne značilnosti delovanja in če izboljšave uporabniške izkušnje upravičujejo dodatno kompleksnost. Izberite naključno porazdelitev zahtev, kadar želite najpreprostejšo možno nastavitev, kadar so vaši strežniki homogeni in vaši vzorci prometa ne nagrajujejo optimizacije.