Amazon Redshift-ի զուգահեռ մասշտաբի ուղեցույց և փորձարկման արդյունքներ

Amazon Redshift-ի զուգահեռ մասշտաբի ուղեցույց և փորձարկման արդյունքներ

Skyeng-ում մենք օգտագործում ենք Amazon Redshift-ը, ներառյալ զուգահեռ մասշտաբը, ուստի հետաքրքիր համարեցինք dotgo.com-ի հիմնադիր Ստեֆան Գրոմոլի այս հոդվածը intermix.io-ի համար: Թարգմանությունից հետո մի փոքր մեր փորձը տվյալների ինժեներ Դանիյար Բելխոջաևից:

Amazon Redshift Architecture թույլ է տալիս մասշտաբել՝ նոր հանգույցներ ավելացնելով կլաստերին: Հարցումների գագաթնակետին դիմակայելու անհրաժեշտությունը կարող է հանգեցնել հանգույցների չափից ավելի տրամադրման: Concurrency Scaling-ը, ի տարբերություն նոր հանգույցների ավելացման, անհրաժեշտության դեպքում ավելացնում է հաշվողական հզորությունը:

Amazon Redshift-ի զուգահեռ մասշտաբը Redshift կլաստերներին տալիս է լրացուցիչ հզորություն՝ առավելագույն պահանջների ծավալները կարգավորելու համար: Այն աշխատում է՝ հարցումները տեղափոխելով հետին պլանում գտնվող նոր «զուգահեռ» կլաստերներ: Հարցումները ուղղվում են WLM կոնֆիգուրացիայի և կանոնների հիման վրա:

Զուգահեռ մասշտաբային գնագոյացումը հիմնված է անվճար մակարդակով վարկային մոդելի վրա: Բացի անվճար վարկերից, վճարումը հիմնված է այն ժամանակի վրա, երբ Զուգահեռ մասշտաբային կլաստերը մշակում է հարցումները:

Հեղինակը փորձարկել է զուգահեռ մասշտաբը ներքին կլաստերներից մեկի վրա: Այս գրառման մեջ նա կխոսի թեստի արդյունքների մասին և խորհուրդներ կտա, թե ինչպես սկսել:

Կլաստերային պահանջներ

Զուգահեռ մասշտաբավորումն օգտագործելու համար ձեր Amazon Redshift կլաստերը պետք է համապատասխանի հետևյալ պահանջներին.

- հարթակ: EC2-VPC;
- հանգույցի տեսակը. dc2.8xlarge, ds2.8xlarge, dc2.large կամ ds2.xlarge;
- հանգույցների քանակը. 2-ից մինչև 32 (մեկ հանգույցների կլաստերները չեն ապահովվում):

Ընդունելի հայտերի տեսակները

Զուգահեռ մասշտաբը հարմար չէ բոլոր տեսակի հարցումների համար: Առաջին տարբերակում այն ​​մշակում է միայն կարդալու հարցումները, որոնք բավարարում են երեք պայման.

— SELECT հարցումները միայն կարդալու են (չնայած ավելի շատ տեսակներ են նախատեսվում);
— հարցումը չի հղում INTERLEAVED տեսակավորման ոճով աղյուսակին.
- Հարցումը չի օգտագործում Amazon Redshift Spectrum-ը արտաքին աղյուսակներին հղում կատարելու համար:

Զուգահեռ մասշտաբային կլաստերին ուղղորդելու համար հարցումը պետք է հերթագրվի: Բացի այդ, հարցումներ, որոնք համապատասխանում են հերթին SQA (կարճ հարցման արագացում), չի աշխատի զուգահեռ մասշտաբով կլաստերների վրա:

Հերթերը և SQA-ն պահանջում են համապատասխան կոնֆիգուրացիա Redshift Workload Management (WLM). Մենք խորհուրդ ենք տալիս նախ օպտիմալացնել ձեր WLM-ը. դա կնվազեցնի զուգահեռ մասշտաբավորման անհրաժեշտությունը: Եվ դա կարևոր է, քանի որ զուգահեռ մասշտաբը անվճար է միայն որոշակի ժամերի համար: AWS-ը պնդում է, որ զուգահեռ մասշտաբը անվճար կլինի հաճախորդների 97%-ի համար, ինչը մեզ բերում է գնագոյացման խնդրին:

Զուգահեռ մասշտաբի արժեքը

AWS-ն առաջարկում է վարկային մոդել զուգահեռ մասշտաբավորման համար: Յուրաքանչյուր ակտիվ կլաստեր Amazon RedShift Կուտակում է վարկեր ամեն ժամ, մինչև մեկ ժամ անվճար զուգահեռ մասշտաբային վարկեր օրական:

Դուք վճարում եք միայն այն դեպքում, երբ ձեր Parallel Scaling Cluster-ի օգտագործումը գերազանցում է ձեր ստացած վարկերի գումարը:

Զուգահեռ կլաստերի համար, որն օգտագործվում է անվճար դրույքաչափից բարձր, արժեքը հաշվարկվում է վայրկյանում ըստ պահանջի փոխարժեքով: Ձեզանից գանձվում է միայն ձեր հարցումների տևողության համար՝ նվազագույնը մեկ րոպեի չափով, երբ Զուգահեռ մասշտաբային կլաստերը ակտիվանում է: Վայրկյան վրա պահանջարկի դրույքաչափը հաշվարկվում է գնագոյացման ընդհանուր սկզբունքների հիման վրա Amazon RedShift, այսինքն՝ դա կախված է հանգույցի տեսակից և ձեր կլաստերի հանգույցների քանակից։

Զուգահեռ մասշտաբի գործարկում

Զուգահեռ մասշտաբավորումը գործարկվում է WLM յուրաքանչյուր հերթի համար: Գնացեք AWS Redshift վահանակ և ձախ նավիգացիոն ընտրացանկից ընտրեք Աշխատանքային բեռների կառավարում: Ընտրեք ձեր կլաստերի WLM պարամետրերի խումբը հետևյալ բացվող ընտրացանկից:

Յուրաքանչյուր հերթի կողքին կտեսնեք նոր սյունակ, որը կոչվում է «Concurrency Scaling Mode»: Կանխադրվածը «Անջատված է»: Սեղմեք «Խմբագրել» և կարող եք փոխել պարամետրերը յուրաքանչյուր հերթի համար:

Amazon Redshift-ի զուգահեռ մասշտաբի ուղեցույց և փորձարկման արդյունքներ

Տեսիլ

Զուգահեռ մասշտաբավորումն աշխատում է՝ համապատասխան հարցումները փոխանցելով նոր նվիրված կլաստերներին: Նոր կլաստերներն ունեն նույն չափը (հանգույցների տեսակը և թիվը), ինչ հիմնական կլաստերը:

Զուգահեռ մասշտաբավորման համար օգտագործվող կլաստերների լռելյայն թիվը մեկն է (1), ընդհանուր մինչև տասը (10) կլաստեր կազմաձևելու հնարավորությամբ:
Զուգահեռ մասշտաբավորման համար կլաստերների ընդհանուր թիվը կարող է սահմանվել max_concurrency_scaling_clusters պարամետրով: Այս պարամետրի արժեքի մեծացումը լրացուցիչ ավելորդ կլաստերներ է ապահովում:

Amazon Redshift-ի զուգահեռ մասշտաբի ուղեցույց և փորձարկման արդյունքներ

Մոնիտորինգ

AWS Redshift վահանակում կան մի քանի լրացուցիչ գրաֆիկներ: Max Configured Concurrency Scaling Clusters աղյուսակը ցուցադրում է max_concurrency_scaling_clusters-ի արժեքը ժամանակի ընթացքում:

Amazon Redshift-ի զուգահեռ մասշտաբի ուղեցույց և փորձարկման արդյունքներ

Ակտիվ մասշտաբավորման կլաստերների թիվը ցուցադրվում է օգտատիրոջ միջերեսում՝ «Համաժամանակյա մասշտաբավորման գործունեություն» բաժնում.

Amazon Redshift-ի զուգահեռ մասշտաբի ուղեցույց և փորձարկման արդյունքներ

Հարցումներ ներդիրում կա սյունակ, որը ցույց է տալիս, թե հարցումը կատարվել է հիմնական կլաստերում, թե զուգահեռ մասշտաբային կլաստերում.

Amazon Redshift-ի զուգահեռ մասշտաբի ուղեցույց և փորձարկման արդյունքներ

Անկախ նրանից՝ կոնկրետ հարցումը կատարվել է հիմնական կլաստերում, թե զուգահեռ մասշտաբային կլաստերի միջոցով, այն պահվում է stl_query.concurrency_scaling_status-ում։

Amazon Redshift-ի զուգահեռ մասշտաբի ուղեցույց և փորձարկման արդյունքներ

1 արժեքը ցույց է տալիս, որ հարցումը կատարվել է զուգահեռ մասշտաբի կլաստերում, մինչդեռ մյուս արժեքները ցույց են տալիս, որ այն կատարվել է առաջնային կլաստերում:

Example:

Amazon Redshift-ի զուգահեռ մասշտաբի ուղեցույց և փորձարկման արդյունքներ

Համաժամանակյա մասշտաբի տեղեկատվությունը պահվում է նաև որոշ այլ աղյուսակներում և դիտումներում, ինչպիսիք են SVCS_CONCURRENCY_SCALING_USAGE: Բացի այդ, կան մի շարք կատալոգային աղյուսակներ, որոնք պահում են տեղեկատվությունը զուգահեռ մասշտաբի մասին:

Արդյունքները

Հեղինակները սկսեցին զուգահեռ մասշտաբը մեկ հերթի համար ներքին կլաստերում մոտավորապես 18:30:00 GMT-ին 29.03.2019/3/20-ին: max_concurrency_scaling_clusters պարամետրը փոխեցին 30-ի մոտավորապես 00:29.03.2019:XNUMX-ին XNUMX/XNUMX/XNUMX-ին:

Հարցման հերթը մոդելավորելու համար մենք կրճատեցինք այս հերթի համար նախատեսված սլոտների քանակը 15-ից մինչև 5:

Ստորև ներկայացված է intermix.io dashboard-ի աղյուսակը, որը ցույց է տալիս սպասվող և հերթագրված հարցումների քանակը՝ սլոտների քանակը կրճատելուց հետո:

Amazon Redshift-ի զուգահեռ մասշտաբի ուղեցույց և փորձարկման արդյունքներ

Մենք տեսնում ենք, որ հերթում հարցումների սպասման ժամանակը ավելացել է՝ առավելագույնը 5 րոպեից ավելի է:

Amazon Redshift-ի զուգահեռ մասշտաբի ուղեցույց և փորձարկման արդյունքներ

Ահա այս ընթացքում տեղի ունեցածի վերաբերյալ համապատասխան տեղեկատվությունը AWS վահանակից.

Amazon Redshift-ի զուգահեռ մասշտաբի ուղեցույց և փորձարկման արդյունքներ

Redshift-ը գործարկեց երեք (3) զուգահեռ մասշտաբային կլաստերներ, ինչպես կազմաձևված էր: Ըստ երևույթին, այս կլաստերները թերօգտագործվել են, թեև մեր կլաստերի շատ հարցումներ հերթագրվել են:

Օգտագործման գրաֆիկը փոխկապակցված է մասշտաբային գործունեության գրաֆիկի հետ.

Amazon Redshift-ի զուգահեռ մասշտաբի ուղեցույց և փորձարկման արդյունքներ

Մի քանի ժամ անց հեղինակները ստուգեցին հերթը և թվաց, թե 6 հարցումներ աշխատում էին զուգահեռ մասշտաբով: Մենք նաև պատահականորեն երկու հարցում ենք փորձարկել օգտատիրոջ միջերեսի միջոցով: Մենք չենք ստուգել, ​​թե ինչպես օգտագործել այս արժեքները, երբ մի քանի զուգահեռ կլաստերներ միաժամանակ ակտիվ են:

Amazon Redshift-ի զուգահեռ մասշտաբի ուղեցույց և փորձարկման արդյունքներ

Արդյունքները

Զուգահեռ մասշտաբը կարող է նվազեցնել գագաթնակետային բեռների ժամանակ հերթում անցկացվող հարցումների ժամանակը:

Հիմնական թեստի արդյունքների հիման վրա պարզվել է, որ բեռնման հարցումների հետ կապված իրավիճակը մասամբ բարելավվել է։ Այնուամենայնիվ, միայն զուգահեռ մասշտաբը չլուծեց միաժամանակության բոլոր խնդիրները:

Դա պայմանավորված է հարցումների տեսակների սահմանափակումներով, որոնք կարող են օգտագործել զուգահեռ մասշտաբավորում: Օրինակ, հեղինակներն ունեն բազմաթիվ աղյուսակներ՝ միախառնված տեսակավորման ստեղներով, և մեր ծանրաբեռնվածության մեծ մասը գրավոր է:

Թեև զուգահեռ մասշտաբը WLM-ի ստեղծման համընդհանուր լուծում չէ, այս հատկանիշի օգտագործումը պարզ և պարզ է:

Հետեւաբար, հեղինակը խորհուրդ է տալիս օգտագործել այն ձեր WLM հերթերի համար: Սկսեք մեկ զուգահեռ կլաստերից և վերահսկեք առավելագույն բեռնվածությունը վահանակի միջոցով՝ որոշելու, թե արդյոք նոր կլաստերներն ամբողջությամբ օգտագործվում են:

Քանի որ AWS-ն աջակցություն է ավելացնում լրացուցիչ հարցումների տեսակների և աղյուսակների համար, զուգահեռ մասշտաբը աստիճանաբար պետք է ավելի ու ավելի արդյունավետ դառնա:

Մեկնաբանություն Դանիյար Բելխոջաևից, Skyeng Data Engineer-ից

Մենք Skyeng-ում նույնպես անմիջապես նկատեցինք զուգահեռ մասշտաբների առաջացող հնարավորությունը:
Ֆունկցիոնալությունը շատ գրավիչ է, հատկապես հաշվի առնելով, որ AWS-ը գնահատում է, որ օգտվողների մեծ մասը նույնիսկ ստիպված չի լինի հավելյալ վճարել դրա համար:

Այնպես եղավ, որ ապրիլի կեսերին մենք ունեցանք Redshift կլաստերին ուղղված հարցումների անսովոր ալիք: Այս ժամանակահատվածում մենք հաճախ դիմում էինք Concurrency Scaling-ին, երբեմն լրացուցիչ կլաստերն աշխատում էր օրական 24 ժամ առանց դադարի:

Սա հնարավորություն տվեց, եթե ոչ ամբողջությամբ հերթերով լուծել խնդիրը, ապա գոնե իրավիճակը դարձնել ընդունելի։

Մեր դիտարկումները հիմնականում համընկնում են intermix.io-ի տղաների տպավորությունների հետ։

Մենք նաև նկատեցինք, որ թեև հերթում սպասող հարցումներ կային, բայց ոչ բոլոր հարցումներն անմիջապես ուղարկվեցին զուգահեռ կլաստեր: Ըստ երևույթին, դա տեղի է ունենում, քանի որ զուգահեռ կլաստերը դեռ ժամանակ է պահանջում սկսելու համար: Արդյունքում կարճաժամկետ պիկ բեռների ժամանակ մենք դեռ փոքր հերթեր ենք ունենում, և համապատասխան ահազանգերը ժամանակ ունեն գործարկելու։

Ապրիլին ազատվելով աննորմալ բեռներից՝ մենք, ինչպես ակնկալում էր AWS-ը, մտանք պատահական օգտագործման ռեժիմ՝ անվճար նորմայի սահմաններում:
Դուք կարող եք հետևել ձեր զուգահեռ մասշտաբային ծախսերին AWS Cost Explorer-ում: Պետք է ընտրել Service - Redshift, Usage Type - CS, օրինակ USW2-CS:dc2.large:

Գների մասին ավելին կարող եք կարդալ ռուսերենով այստեղ

Source: www.habr.com

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