„Amazon Redshift“ lygiagretaus mastelio keitimo vadovas ir bandymo rezultatai

„Amazon Redshift“ lygiagretaus mastelio keitimo vadovas ir bandymo rezultatai

„Skyeng“ naudojame „Amazon Redshift“, įskaitant lygiagretųjį mastelio keitimą, todėl mums pasirodė įdomus šis Stefan Gromoll, dotgo.com įkūrėjo straipsnis, skirtas intermix.io. Po vertimo šiek tiek mūsų patirties iš duomenų inžinieriaus Danijaro Belkhodžajevo.

„Amazon“ raudonojo poslinkio architektūra leidžia keisti mastelį, į klasterį įtraukiant naujų mazgų. Poreikis susidoroti su didžiausiu užklausų skaičiumi gali sukelti perteklinį mazgų aprūpinimą. Lygiagretumo mastelio keitimas, o ne naujų mazgų pridėjimas, prireikus padidina skaičiavimo galią.

„Amazon Redshift“ lygiagretus mastelio keitimas suteikia „Redshift“ klasteriams papildomos galimybės apdoroti didžiausius užklausų kiekius. Jis veikia perkeldamas užklausas į naujas „lygiagrečias“ grupes fone. Užklausos nukreipiamos pagal WLM konfigūraciją ir taisykles.

Lygiagretaus mastelio kainodara grindžiama kredito modeliu su nemokama pakopa. Be nemokamų kreditų, mokėjimas pagrįstas laiku, kai lygiagretaus mastelio keitimo grupė apdoroja užklausas.

Autorius išbandė lygiagretųjį mastelį vienoje iš vidinių grupių. Šiame įraše jis papasakos apie testo rezultatus ir pateiks patarimų, kaip pradėti.

Klasterio reikalavimai

Norint naudoti lygiagretųjį mastelį, jūsų Amazon Redshift klasteris turi atitikti šiuos reikalavimus:

- platforma: EC2-VPC;
— mazgo tipas: dc2.8xlarge, ds2.8xlarge, dc2.large arba ds2.xlarge;
— mazgų skaičius: nuo 2 iki 32 (vieno mazgo klasteriai nepalaikomi).

Priimtini užklausų tipai

Lygiagretusis mastelio keitimas netinka visų tipų užklausoms. Pirmojoje versijoje jis apdoroja tik skaitymo užklausas, kurios atitinka tris sąlygas:

— SELECT užklausos yra tik skaitomos (nors planuojama daugiau tipų);
— užklausa nenurodo lentelės su rūšiavimo stiliumi INTERLEAVED;
– Užklausoje nenaudojamas „Amazon Redshift Spectrum“, kad būtų nurodytos išorinės lentelės.

Kad užklausa būtų nukreipta į lygiagretaus mastelio keitimo grupę, ji turi būti įrašyta į eilę. Be to, užklausos, tinkamos į eilę SQA (trumpos užklausos pagreitis), neveiks lygiagrečios mastelio grupėse.

Eilės ir SQA reikalauja tinkamos konfigūracijos Raudonojo poslinkio darbo krūvio valdymas (WLM). Pirmiausia rekomenduojame optimizuoti WLM – tai sumažins lygiagretaus mastelio keitimo poreikį. Ir tai svarbu, nes lygiagretus mastelio keitimas nemokamas tik tam tikrą valandų skaičių. AWS teigia, kad lygiagretus mastelio keitimas bus nemokamas 97% klientų, todėl mes pereiname prie kainodaros klausimo.

Lygiagretaus mastelio keitimo kaina

AWS siūlo kredito modelį lygiagrečiam mastelio keitimui. Kiekviena aktyvi grupė „Amazon Redshift“ Kreditai kaupiami kas valandą, iki vienos valandos nemokamų lygiagretaus mastelio kreditų per dieną.

Mokate tik tada, kai lygiagretaus mastelio keitimo grupių naudojimas viršija gautų kreditų sumą.

Kaina apskaičiuojama taikant per sekundę pagal pareikalavimą lygiagrečiam klasteriui, kuris naudojamas didesnis nei nemokama norma. Mokestis imamas tik už užklausų trukmę, o minimalus mokestis yra viena minutė kiekvieną kartą, kai suaktyvinamas lygiagretaus mastelio keitimo klasteris. Sekundinė pagal pareikalavimą norma apskaičiuojama remiantis bendraisiais kainodaros principais „Amazon Redshift“, tai yra, tai priklauso nuo mazgo tipo ir mazgų skaičiaus jūsų klasteryje.

Parallel Scaling paleidimas

Kiekvienai WLM eilei suaktyvinamas lygiagretus mastelio keitimas. Eikite į AWS Redshift konsolę ir kairiajame naršymo meniu pasirinkite Darbo krūvio valdymas. Toliau pateiktame išskleidžiamajame meniu pasirinkite savo klasterio WLM parametrų grupę.

Šalia kiekvienos eilės pamatysite naują stulpelį pavadinimu „Lygiagrečios mastelio keitimo režimas“. Numatytasis nustatymas yra „Išjungta“. Spustelėkite „Redaguoti“ ir galėsite pakeisti kiekvienos eilės nustatymus.

„Amazon Redshift“ lygiagretaus mastelio keitimo vadovas ir bandymo rezultatai

Konfigūravimas

Lygiagretus mastelio keitimas veikia persiunčiant atitinkamas užklausas į naujas tam skirtas grupes. Nauji klasteriai yra tokio pat dydžio (tipas ir mazgų skaičius), kaip ir pagrindinis klasteris.

Numatytasis lygiagrečiam mastelio keitimui naudojamų grupių skaičius yra vienas (1), iš viso galima konfigūruoti iki dešimties (10) grupių.
Bendrą lygiagrečiam mastelio keitimui skirtų grupių skaičių galima nustatyti parametru max_concurrency_scaling_clusters. Padidinus šio parametro reikšmę, atsiranda papildomų perteklinių grupių.

„Amazon Redshift“ lygiagretaus mastelio keitimo vadovas ir bandymo rezultatai

Stebėjimas

AWS Redshift konsolėje yra keletas papildomų grafikų. Maksimaliai sukonfigūruotų lygiagretumo mastelio grupių diagramoje rodoma max_concurrency_scaling_clusters vertė laikui bėgant.

„Amazon Redshift“ lygiagretaus mastelio keitimo vadovas ir bandymo rezultatai

Aktyvių mastelio keitimo grupių skaičius rodomas vartotojo sąsajos skiltyje „Sugretinimo mastelio keitimo veikla“:

„Amazon Redshift“ lygiagretaus mastelio keitimo vadovas ir bandymo rezultatai

Skirtuke Užklausos yra stulpelis, nurodantis, ar užklausa buvo vykdoma pagrindiniame klasteryje, ar lygiagrečiame mastelio klasteryje:

„Amazon Redshift“ lygiagretaus mastelio keitimo vadovas ir bandymo rezultatai

Nepriklausomai nuo to, ar konkreti užklausa buvo vykdoma pagrindiniame klasteryje, ar per lygiagretųjį mastelio keitimo klasterį, ji saugoma stl_query.concurrency_scaling_status.

„Amazon Redshift“ lygiagretaus mastelio keitimo vadovas ir bandymo rezultatai

1 reikšmė rodo, kad užklausa buvo įvykdyta lygiagrečios skalės klasteryje, o kitos reikšmės rodo, kad ji buvo įvykdyta pirminiame klasteryje.

Pavyzdys:

„Amazon Redshift“ lygiagretaus mastelio keitimo vadovas ir bandymo rezultatai

Lygiagretumo mastelio informacija taip pat saugoma kai kuriose kitose lentelėse ir rodiniuose, pvz., SVCS_CONCURRENCY_SCALING_USAGE. Be to, yra keletas katalogų lentelių, kuriose saugoma informacija apie lygiagretųjį mastelį.

rezultatai

Autoriai pradėjo lygiagretų mastelio keitimą vienai eilei vidiniame klasteryje 18-30-00 maždaug 29.03.2019:3:20 GMT. 30-00-29.03.2019 parametrą max_concurrency_scaling_clusters pakeitė į XNUMX maždaug XNUMX:XNUMX:XNUMX.

Norėdami imituoti užklausų eilę, sumažinome šios eilės laiko tarpsnių skaičių nuo 15 iki 5.

Žemiau yra intermix.io prietaisų skydelio diagrama, kurioje rodomas vykdomų užklausų ir eilėje esančių užklausų skaičius sumažinus laiko tarpsnių skaičių.

„Amazon Redshift“ lygiagretaus mastelio keitimo vadovas ir bandymo rezultatai

Matome, kad užklausų laukimo laikas eilėje pailgėjo, maksimalus laikas – daugiau nei 5 minutės.

„Amazon Redshift“ lygiagretaus mastelio keitimo vadovas ir bandymo rezultatai

Čia yra atitinkama informacija iš AWS pulto apie tai, kas įvyko per šį laiką:

„Amazon Redshift“ lygiagretaus mastelio keitimo vadovas ir bandymo rezultatai

„Redshift“ paleido tris (3) lygiagrečius mastelio grupes, kaip sukonfigūruota. Atrodo, kad šios grupės buvo nepakankamai išnaudotos, nors daugelis užklausų mūsų grupėje buvo eilėje.

Naudojimo grafikas koreliuoja su mastelio keitimo veiklos grafiku:

„Amazon Redshift“ lygiagretaus mastelio keitimo vadovas ir bandymo rezultatai

Po kelių valandų autoriai patikrino eilę ir atrodė, kad lygiagrečiai buvo vykdomos 6 užklausos. Taip pat atsitiktinai išbandėme dvi užklausas per vartotojo sąsają. Nepatikrinome, kaip naudoti šias reikšmes, kai vienu metu aktyvios kelios lygiagrečios grupės.

„Amazon Redshift“ lygiagretaus mastelio keitimo vadovas ir bandymo rezultatai

išvados

Lygiagretus mastelio keitimas gali sumažinti užklausų eilėje praleistą laiką didžiausios apkrovos metu.

Remiantis pagrindinio testo rezultatais, paaiškėjo, kad situacija su užklausų įkėlimu iš dalies pagerėjo. Tačiau vien lygiagretus mastelio keitimas neišsprendė visų lygiagretumo problemų.

Taip yra dėl to, kad užklausų, kurios gali naudoti lygiagretųjį mastelį, tipų apribojimai. Pavyzdžiui, autoriai turi daug lentelių su įterptais rūšiavimo klavišais, o didžiąją dalį mūsų darbo krūvio sudaro rašymas.

Nors lygiagretusis mastelio keitimas nėra universalus WLM nustatymo sprendimas, naudotis šia funkcija paprasta ir nesudėtinga.

Todėl autorius rekomenduoja jį naudoti savo WLM eilėms. Pradėkite nuo vienos lygiagrečios grupės ir stebėkite didžiausią apkrovą per konsolę, kad nustatytumėte, ar visiškai išnaudojamos naujos grupės.

Kadangi AWS prideda papildomų užklausų tipų ir lentelių palaikymą, lygiagretusis mastelio keitimas palaipsniui turėtų tapti vis efektyvesnis.

Daniyar Belkhodzhaev, Skyeng duomenų inžinieriaus komentaras

Mes, Skyeng, taip pat iškart pastebėjome atsirandančią lygiagretaus mastelio keitimo galimybę.
Funkcionalumas labai patrauklus, ypač turint omenyje, kad AWS skaičiavimais, daugumai vartotojų net nereikės už tai papildomai mokėti.

Taip atsitiko, kad balandžio viduryje sulaukėme neįprasto užklausų „Raudonojo poslinkio“ klasteriui antplūdžio. Šiuo laikotarpiu dažnai naudojomės lygiagrečio mastelio keitimu; kartais papildomas klasteris dirbo 24 valandas per parą be sustojimo.

Tai leido jei ne visiškai išspręsti eilių problemą, tai bent jau padaryti situaciją priimtina.

Mūsų pastebėjimai iš esmės sutampa su vaikinų iš intermix.io įspūdžiais.

Taip pat pastebėjome, kad nors eilėje buvo laukiančių užklausų, ne visos užklausos buvo iš karto persiųstos į lygiagretųjį klasterį. Matyt, taip nutinka todėl, kad lygiagrečiai klasteriui paleisti dar reikia laiko. Dėl to trumpalaikių piko apkrovų metu vis dar susidaro nedidelės eilės, o atitinkami aliarmai turi laiko suveikti.

Balandžio mėnesį atsikratę nenormalių apkrovų, kaip ir tikėjosi AWS, perėjome į proginio naudojimo režimą – laisvos normos ribose.
Galite stebėti lygiagretaus mastelio keitimo išlaidas naudodami AWS Cost Explorer. Turite pasirinkti Paslauga - Redshift, Naudojimo tipas - CS, pavyzdžiui, USW2-CS:dc2.large.

Daugiau apie kainas galite pasiskaityti rusų kalba čia.

Šaltinis: www.habr.com

Добавить комментарий