Udhëzuesi i shkallëzimit paralel të Amazon Redshift dhe rezultatet e testimit

Udhëzuesi i shkallëzimit paralel të Amazon Redshift dhe rezultatet e testimit

Në Skyeng ne përdorim Amazon Redshift, duke përfshirë shkallëzimin paralel, kështu që ne e gjetëm interesant këtë artikull nga Stefan Gromoll, themeluesi i dotgo.com, për intermix.io. Pas përkthimit, pak nga përvoja jonë nga inxhinieri i të dhënave Daniyar Belkhodzhaev.

Arkitektura e Amazon Redshift lejon shkallëzimin duke shtuar nyje të reja në grup. Nevoja për të përballuar një numër maksimal kërkesash mund të çojë në ofrimin e tepërt të nyjeve. Scaling Concurrency, në krahasim me shtimin e nyjeve të reja, rrit fuqinë llogaritëse sipas nevojës.

Shkallëzimi paralel i Amazon Redshift u jep grupeve Redshift kapacitet shtesë për të trajtuar vëllimet e kërkesave maksimale. Ai funksionon duke zhvendosur kërkesat në grupe të reja "paralele" në sfond. Kërkesat drejtohen bazuar në konfigurimin dhe rregullat e WLM.

Çmimi i shkallëzimit paralel bazohet në një model kredie me një nivel të lirë. Mbi kreditë falas, pagesa bazohet në kohën kur grupi i shkallëzimit paralel përpunon kërkesat.

Autori testoi shkallëzimin paralel në një nga grupimet e brendshme. Në këtë postim, ai do të flasë për rezultatet e testit dhe do të japë këshilla se si të filloni.

Kërkesat e grupimit

Për të përdorur shkallëzimin paralel, grupi juaj Amazon Redshift duhet të plotësojë kërkesat e mëposhtme:

- platforma: EC2-VPC;
- lloji i nyjës: dc2.8xlarge, ds2.8xlarge, dc2.large ose ds2.xlarge;
- numri i nyjeve: nga 2 në 32 (grupet me një nyje nuk mbështeten).

Llojet e pranueshme të kërkesave

Shkallëzimi paralel nuk është i përshtatshëm për të gjitha llojet e pyetjeve. Në versionin e parë, ai përpunon vetëm kërkesat e leximit që plotësojnë tre kushte:

— Pyetjet SELECT janë vetëm për lexim (edhe pse janë planifikuar më shumë lloje);
— pyetja nuk i referohet një tabele me stilin e renditjes INTERLEAVED;
- Kërkesa nuk përdor Amazon Redshift Spectrum për të referuar tabelat e jashtme.

Për t'u drejtuar në grupin e shkallëzimit paralel, kërkesa duhet të jetë në radhë. Për më tepër, pyetjet që kanë të drejtë për radhë SQA (Përshpejtimi i pyetjeve të shkurtra), nuk do të funksionojë në grupe në shkallë paralele.

Radhët dhe SQA kërkojnë konfigurimin e duhur Menaxhimi i ngarkesës së punës Redshift (WLM). Ne rekomandojmë fillimisht optimizimin e WLM-së tuaj - kjo do të zvogëlojë nevojën për shkallëzim paralel. Dhe kjo është e rëndësishme sepse shkallëzimi paralel është falas vetëm për një numër të caktuar orësh. AWS pretendon se shkallëzimi paralel do të jetë falas për 97% të klientëve, gjë që na çon në çështjen e çmimeve.

Kostoja e shkallëzimit paralel

AWS ofron një model kredie për shkallëzimin paralel. Çdo grup aktiv Ndryshimi i Kuq i Amazonës Grumbullon kredite çdo orë, deri në një orë kredite të shkallëzimit paralel falas në ditë.

Ju paguani vetëm kur përdorimi i grupeve të shkallëzimit paralel tejkalon shumën e krediteve që keni marrë.

Kostoja llogaritet me një normë për sekondë sipas kërkesës për një grup paralel që përdoret mbi tarifën e lirë. Ju tarifoheni vetëm për kohëzgjatjen e kërkesave tuaja, me një tarifë minimale prej një minutë çdo herë që aktivizohet një grup i shkallëzimit paralel. Norma sipas kërkesës për sekondë llogaritet bazuar në parimet e përgjithshme të çmimeve Ndryshimi i Kuq i Amazonës, domethënë, varet nga lloji i nyjes dhe numri i nyjeve në grupin tuaj.

Nisja e shkallëzimit paralel

Shkallëzimi paralel aktivizohet për çdo radhë WLM. Shkoni te tastiera AWS Redshift dhe zgjidhni Menaxhimi i ngarkesës së punës nga menyja e majtë e navigimit. Zgjidhni grupin e parametrave WLM të grupit tuaj nga menyja rënëse e mëposhtme.

Do të shihni një kolonë të re të quajtur "Modaliteti i shkallëzimit të konkurencës" pranë çdo radhe. Parazgjedhja është "e paaftë". Klikoni "Ndrysho" dhe mund të ndryshoni cilësimet për secilën radhë.

Udhëzuesi i shkallëzimit paralel të Amazon Redshift dhe rezultatet e testimit

konfiguracion

Shkallëzimi paralel funksionon duke përcjellë kërkesat e duhura në grupime të reja të dedikuara. Grupet e reja kanë të njëjtën madhësi (lloji dhe numri i nyjeve) si grupi kryesor.

Numri i paracaktuar i grupimeve të përdorura për shkallëzimin paralel është një (1), me aftësinë për të konfiguruar deri në gjithsej dhjetë (10) grupime.
Numri i përgjithshëm i grupimeve për shkallëzimin paralel mund të vendoset nga parametri max_concurrency_scaling_clusters. Rritja e vlerës së këtij parametri siguron grupime shtesë të tepërta.

Udhëzuesi i shkallëzimit paralel të Amazon Redshift dhe rezultatet e testimit

Monitorimi

Ekzistojnë disa grafikë shtesë të disponueshëm në tastierën AWS Redshift. Grafiku i grupimeve të shkallëzimit të bashkëkohësisë maksimale të konfiguruar shfaq vlerën e grupimeve max_concurrency_scaling_max me kalimin e kohës.

Udhëzuesi i shkallëzimit paralel të Amazon Redshift dhe rezultatet e testimit

Numri i grupeve aktive të shkallëzimit shfaqet në ndërfaqen e përdoruesit në seksionin "Aktiviteti i shkallëzimit të njëkohshëm":

Udhëzuesi i shkallëzimit paralel të Amazon Redshift dhe rezultatet e testimit

Në skedën Queries, ekziston një kolonë që tregon nëse pyetja është ekzekutuar në grupimin kryesor ose në grupin e shkallëzimit paralel:

Udhëzuesi i shkallëzimit paralel të Amazon Redshift dhe rezultatet e testimit

Pavarësisht nëse një pyetje e veçantë është ekzekutuar në grupin kryesor ose përmes një grupi paralel të shkallëzimit, ai ruhet në stl_query.concurrency_scaling_status.

Udhëzuesi i shkallëzimit paralel të Amazon Redshift dhe rezultatet e testimit

Një vlerë prej 1 tregon që pyetja është ekzekutuar në grupimin e shkallës paralele, ndërsa vlerat e tjera tregojnë se është ekzekutuar në grupimin primar.

Shembull:

Udhëzuesi i shkallëzimit paralel të Amazon Redshift dhe rezultatet e testimit

Informacioni i shkallëzimit të njëkohshmërisë ruhet gjithashtu në disa tabela dhe pamje të tjera, si SVCS_CONCURRENCY_SCALING_USAGE. Përveç kësaj, ka një numër tabelash të katalogut që ruajnë informacione në lidhje me shkallëzimin paralel.

Gjetjet

Autorët filluan shkallëzimin paralel për një radhë në grupimin e brendshëm afërsisht në orën 18:30:00 GMT më 29.03.2019/3/20. Ndryshuan parametrin max_concurrency_scaling_clusters në 30 rreth orës 00:29.03.2019:XNUMX më XNUMX/XNUMX/XNUMX.

Për të simuluar një radhë kërkesash, ne reduktuam numrin e lojërave elektronike për këtë radhë nga 15 në 5.

Më poshtë është një tabelë e panelit intermix.io që tregon numrin e kërkesave të ekzekutuara dhe në radhë pas reduktimit të numrit të lojërave elektronike.

Udhëzuesi i shkallëzimit paralel të Amazon Redshift dhe rezultatet e testimit

Shohim që koha e pritjes së kërkesave në radhë është rritur, ku koha maksimale është më shumë se 5 minuta.

Udhëzuesi i shkallëzimit paralel të Amazon Redshift dhe rezultatet e testimit

Këtu janë informacionet përkatëse nga tastiera AWS për atë që ndodhi gjatë kësaj kohe:

Udhëzuesi i shkallëzimit paralel të Amazon Redshift dhe rezultatet e testimit

Redshift lançoi tre (3) grupime të shkallëzimit paralel siç është konfiguruar. Duket se këto grupime ishin të pashfrytëzuara, edhe pse shumë kërkesa në grupin tonë ishin në radhë.

Grafiku i përdorimit lidhet me grafikun e aktivitetit të shkallëzimit:

Udhëzuesi i shkallëzimit paralel të Amazon Redshift dhe rezultatet e testimit

Pas disa orësh, autorët kontrolluan radhën dhe dukej sikur 6 kërkesa po ekzekutoheshin në shkallë paralele. Ne gjithashtu testuam rastësisht dy kërkesa përmes ndërfaqes së përdoruesit. Ne nuk kemi kontrolluar se si t'i përdorim këto vlera kur disa grupime paralele janë aktive në të njëjtën kohë.

Udhëzuesi i shkallëzimit paralel të Amazon Redshift dhe rezultatet e testimit

Gjetjet

Shkallëzimi paralel mund të zvogëlojë kohën e shpenzimit të kërkesave në radhë gjatë ngarkesave maksimale.

Nga rezultatet e testit bazë, rezultoi se situata me ngarkimin e kërkesave është përmirësuar pjesërisht. Megjithatë, vetëm shkallëzimi paralel nuk zgjidhi të gjitha problemet e konkurencës.

Kjo është për shkak të kufizimeve në llojet e pyetjeve që mund të përdorin shkallëzimin paralel. Për shembull, autorët kanë shumë tabela me çelësa renditjeje të ndërlidhura, dhe pjesa më e madhe e ngarkesës sonë është shkrimi.

Megjithëse shkallëzimi paralel nuk është një zgjidhje universale për konfigurimin e WLM, përdorimi i kësaj veçorie është i thjeshtë dhe i drejtpërdrejtë.

Prandaj, autori rekomandon përdorimin e tij për radhët tuaja WLM. Filloni me një grup paralel dhe monitoroni ngarkesën maksimale përmes tastierës për të përcaktuar nëse grupet e reja po përdoren plotësisht.

Ndërsa AWS shton mbështetje për lloje dhe tabela shtesë të pyetjeve, shkallëzimi paralel gradualisht duhet të bëhet gjithnjë e më efikas.

Koment nga Daniyar Belkhodzhaev, inxhinier i të dhënave Skyeng

Ne në Skyeng gjithashtu vumë re menjëherë mundësinë e shfaqur të shkallëzimit paralel.
Funksionaliteti është shumë tërheqës, veçanërisht duke pasur parasysh që AWS vlerëson se shumica e përdoruesve as nuk do të duhet të paguajnë ekstra për të.

Kështu ndodhi që në mes të prillit kishim një stuhi të pazakontë kërkesash për grupin Redshift. Gjatë kësaj periudhe, ne shpesh i drejtoheshim shkallës së konkurencës; ndonjëherë një grup shtesë punonte 24 orë në ditë pa u ndalur.

Kjo bëri të mundur, nëse jo zgjidhjen e plotë të problemit me radhët, atëherë të paktën të bëhej e pranueshme situata.

Vëzhgimet tona kryesisht përkojnë me përshtypjet e djemve nga intermix.io.

Gjithashtu vumë re se megjithëse kishte kërkesa që prisnin në radhë, jo të gjitha kërkesat u përcollën menjëherë në grupin paralel. Me sa duket kjo ndodh sepse grupi paralel kërkon ende kohë për të filluar. Si rezultat, gjatë ngarkesave të pikut afatshkurtra kemi ende radhë të vogla dhe alarmet përkatëse kanë kohë të aktivizohen.

Pasi u çliruam nga ngarkesat jonormale në prill, ne, siç pritej AWS, hymë në modalitetin e përdorimit të rastësishëm - brenda normës falas.
Ju mund të gjurmoni kostot tuaja të shkallëzimit paralel në AWS Cost Explorer. Duhet të zgjidhni Shërbimi - Redshift, Lloji i Përdorimit - CS, për shembull USW2-CS:dc2.large.

Ju mund të lexoni më shumë rreth çmimeve në Rusisht këtu.

Burimi: www.habr.com

Shto një koment