DNS serveriai svetainės greitis

DNS nustatymai, su kuriais interneto svetainė veiks greičiau

Problema

Naudojantis kokybišku DNS serveriu, svetainė vis tiek gali gaišinti lankytojus ir veikti nepatikimai dėl klaidingų DNS nustatymų.

Kodėl taip yra?

CNAME įrašai ir per trumpi TTL nustatymai sukuria nereikalingas DNS užklausas, per ilgi – neleidžia pakeisti serverio avarinėse situacijose.

Kaip spręsti?

Naudokite tiesioginius A tipo įrašus ir apskaičiuokite jūsų svetainei optimaliausius TTL nustatymų trukmes.

DNS zonos nustatymai nurodo, kuriame serveryje laikoma mūsų interneto svetainė, kur nukreipti į domeno el. pašto dėžutes  gaunamus laiškus ir t.t. Patobulinę DNS nustatymus pagal savo individualią situaciją, galime pagreitinti savo interneto svetainės veikimą ir el. pašto patikimumą.

Kas yra DNS serveris ir kaip jis veikia, jau rašiau anksčiau. Mano bandyme, skirtingų DNS serverių atsakymo laikas svyravo nuo 0,001s iki 0,336s, t.y. šimtus kartų. Naudojantis lėtu DNS serveriu, kiekvieno naujo svetainės lankytojo įėjimas į svetainę yra bereikalingai uždelsiamas trečdaliu sekundės.

Kai pasijungiate greitą DNS serverį, kitas žingsnis – optimaliai susikonfigūruoti DNS zonos įrašus.

Interneto svetainės DNS nustatymai

Kaip bendrai veikia DNS nustatymai ir kaip konfigūruoti DNS zoną, trumpai paaiškinau straipsnyje „Domeno DNS nustatymų keitimas žaliems“.

Kiekviena šiuolaikinė interneto svetainė privalo turėti bent 2 A tipo įrašus – @ ir www – kad veiktų ir pakamore.lt, ir www.pakamore.lt.

Beje, dviem adresais veikianti ta pati svetainė yra SEO klaida. Todėl reikia išsirinkti vieną pagrindinį svetainės adresą, o kitą peradresuoti į pirmąjį svetainės lygmenyje (angl. redirect su kodu 301). Plačiau apie nukreipimą čia: Kaip teisingai nukreipti domeną į kitą svetainę.

Svetainių veikimui dar naudojami CNAME įrašai. Pavyzdžiui: www CNAME pakamore.lt 21600. Šis įrašas reiškia, kad www.pakamore.lt naudoja tuos pačius IPv4 ir IPv6 IP adresus, kaip ir pakamore.lt. Tai labai patogu, nes jei keičiasi IP adresas, jį reikės pakeisti tik pagrindiniame DNS įraše @.

Tačiau tai yra stiprus stabdis DNS zonos išsprendimui. Kad lankytojo kompiuteris sužinotų IP adresą, jis turės eiti per visą CNAME įrašų grandinę, kol galiausiai ras A įrašą su IP adresu. Vadinasi, procesas pailgės mažiausiai dvigubai. Kad svetainė krautųsi kaip įmanoma greičiau, vieno serverio aptarnaujamoms svetainėms visuomet rekomenduoju vietoj CNAME naudoti A įrašus.

Dažniausiai kiekvienas vardas (host) turi po vieną A arba CNAME tipo DNS įrašą. Tačiau A įrašų tuo pačiu vardu gali būti ir daugiau. Tai naudojama paskirstant srautą tarp kelių serverių, segmentuojant lankytojus geografiškai ir pan. Tokią DNS zoną teisingai suprojektuoti gali tik DNS specialistas. Jei patys susikursime kelis A įrašus tam pačiam vardui, turėsime problemų, kurių patys galime ir nepastebėti.

Kiti įrašų tipai skirti specifinėms situacijoms ir el. paštui. Apie juos plačiau rašiau čia: Planas, kaip persikelti el. pašto dėžutes nepertraukiant darbo.

DNS įrašo galiojimo laikas – TTL

DNS įrašo vardą, tipą ir reikšmę be jokių svarstymų nusistatome tokius, kokių reikalauja serverio programinė įranga. Tuo tarpu galiojimo laiką (TTL) pasirenkame patys. Tai yra tas nustatymas, kurį galime optimizuoti pagal savo individualią situaciją.

Kuo ilgesniam laikui lankytojų kompiuteriai išsisaugos DNS įrašą, tuo ilgiau jiems nebereikės kreiptis į DNS įrašo ir kiekvienas puslapio atvertimas sutrumpės tuo iki 0,336s siekiančiu laukimo laiku: nustatymas bus paimamas lokaliai per kelias mikrosekundes.

Interneto paslaugų teikėjai (IPT) taip pat gali išsisaugoti šiuos DNS įrašus savo maršrutizatoriuose. Tuomet vienam IPT klientui apsilankius mūsų svetainėje, tūkstančiams per tą patį maršrutizatorių besijungiančių klientų nebereikės kreiptis į mūsų DNS serverį ir svetainė užsikraus greičiau.

Kuo TTL didesnis, tuo ilgiau galios vartotojų kompiuteriuose ir maršrutizatoriuose išsaugoti DNS įrašai. Vadinasi, tuo greičiau bus įvykdomi pakartoniniai lankytojų apsilankymai.

Problema kyla tuomet, kai reikia tuos įrašus atnaujinti. Pakeitę DNS įrašo nustatymus, turėsime laukti visą TTL laiką, kol lankytojų kompiuteriai pradės reaguoti į pakeitimus. Todėl reikia apskaičiuoti optimalų TTL konkrečiai savo svetainei: kad jis būtų pakankamai ilgas greitam svetainės veikimui, bet ne per ilgas reikalingiems pakeitimams.

Greitesnis ir patikimesnis svetainės veikimas

Jei žinome, kad serverių IP adresų mums nereikės keisti, galime nustatyti labai ilgą TTL. Rekomenduoju 24 val. – 86400. Ilgesnius nustatymus gali ignoruoti klientų programinė įranga kaip neracionaliai ilgus, todėl atsiranda nežinomybė ir kyla komplikacijų.

Jei turime svetainės darbo avarinio atkūrimo ar atstatymo planą (angl. Disaster Recovery Plan), pagal kurį reikės keisti serverio IP adresą, TTL turi būti kuo mažesnis. Visgi rekomenduoju nuolat nenaudoti mažesnių kaip 30 min. – 1800 – TTL reikšmių. Kitaip tas pats lankytojas, naršantis po svetainę keliolika minučių, turės DNS nustatymus atsisiųsti keliskart. Greitesniam avariniam srauto nukreipimui reiktų naudoti IP, o ne domeno maršruto keitimą.

Aš pats daugumai svetainių naudoju 6 val. – 21600. Tai yra pakankamai ilgas laiko tarpas, viršijantis vieno apsilankymo sesijos trukmę. Tuomet kiekvienas lankytojas DNS įrašą turi atsisiųsti ne daugiau kaip 1 kartą per sesiją. Tuo pačiu tai už darbo dieną trumpesnis laiko tarpas, tad ryte nusprendus keisti serverį, tą galima atlikti tą pačią darbo dieną.

Jei visi svetainės lankytojai ateina ne dažniau kaip vieną kartą per dieną ir svetainėje naršo trumpiau nei valandą, taip pat greitai ir patikimai svetainė veiks ir su trumpesniais TTL nustatymais tarp 1 ir 6 valandų.

DNS nustatymų keitimas praktiškai

Daugumai svetainių tinka standartiniai paslaugų teikėjų siūlomi TTL nustatymai. Jei mūsų paslaugų teikėjo rekomendacijos apgalvotos pagal mūsų individualią situaciją, dažniausiai nieko keisti nebereikia.

TTL keitimas į nestandartinius tampa ypatingai svarbus ruošiantis svetainės perkėlimui į kitą serverį. Apie svetainės perkėlimą nuo A iki Z rašysiu ateityje.

Autoriaus interesų atskleidimas

Mano vadovaujama UAB „Virtuali erdvė“ teikia verslo klasės Unicast DNS serverių paslaugas. Stambių sistemų operatoriams suteikiame Anycast DNS serverių tinklus ir padedame išnaudoti jų galimybes maksimaliam veikimo greičiui ir patikimumui pasiekti.

Autorių teisės

Creative Commons licencija Straipsnis „DNS nustatymai, su kuriais interneto svetainė veiks greičiau“, kurio autorius Pakamore pasilieka ir saugo visas savo autoriaus teises, yra licencijuotas publikavimui pagal Creative Commons Priskyrimas + Jokių išvestinių darbų (BY-ND) 4.0 tarptautinę licenciją.