ProHoster > Օրագիր > Վարչակազմը > 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»: Կանխադրվածը «Անջատված է»: Սեղմեք «Խմբագրել» և կարող եք փոխել պարամետրերը յուրաքանչյուր հերթի համար:
Տեսիլ
Զուգահեռ մասշտաբավորումն աշխատում է՝ համապատասխան հարցումները փոխանցելով նոր նվիրված կլաստերներին: Նոր կլաստերներն ունեն նույն չափը (հանգույցների տեսակը և թիվը), ինչ հիմնական կլաստերը:
Զուգահեռ մասշտաբավորման համար օգտագործվող կլաստերների լռելյայն թիվը մեկն է (1), ընդհանուր մինչև տասը (10) կլաստեր կազմաձևելու հնարավորությամբ:
Զուգահեռ մասշտաբավորման համար կլաստերների ընդհանուր թիվը կարող է սահմանվել max_concurrency_scaling_clusters պարամետրով: Այս պարամետրի արժեքի մեծացումը լրացուցիչ ավելորդ կլաստերներ է ապահովում:
Մոնիտորինգ
AWS Redshift վահանակում կան մի քանի լրացուցիչ գրաֆիկներ: Max Configured Concurrency Scaling Clusters աղյուսակը ցուցադրում է max_concurrency_scaling_clusters-ի արժեքը ժամանակի ընթացքում:
Ակտիվ մասշտաբավորման կլաստերների թիվը ցուցադրվում է օգտատիրոջ միջերեսում՝ «Համաժամանակյա մասշտաբավորման գործունեություն» բաժնում.
Հարցումներ ներդիրում կա սյունակ, որը ցույց է տալիս, թե հարցումը կատարվել է հիմնական կլաստերում, թե զուգահեռ մասշտաբային կլաստերում.
Անկախ նրանից՝ կոնկրետ հարցումը կատարվել է հիմնական կլաստերում, թե զուգահեռ մասշտաբային կլաստերի միջոցով, այն պահվում է stl_query.concurrency_scaling_status-ում։
1 արժեքը ցույց է տալիս, որ հարցումը կատարվել է զուգահեռ մասշտաբի կլաստերում, մինչդեռ մյուս արժեքները ցույց են տալիս, որ այն կատարվել է առաջնային կլաստերում:
Example:
Համաժամանակյա մասշտաբի տեղեկատվությունը պահվում է նաև որոշ այլ աղյուսակներում և դիտումներում, ինչպիսիք են 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-ի աղյուսակը, որը ցույց է տալիս սպասվող և հերթագրված հարցումների քանակը՝ սլոտների քանակը կրճատելուց հետո:
Մենք տեսնում ենք, որ հերթում հարցումների սպասման ժամանակը ավելացել է՝ առավելագույնը 5 րոպեից ավելի է:
Ահա այս ընթացքում տեղի ունեցածի վերաբերյալ համապատասխան տեղեկատվությունը AWS վահանակից.
Redshift-ը գործարկեց երեք (3) զուգահեռ մասշտաբային կլաստերներ, ինչպես կազմաձևված էր: Ըստ երևույթին, այս կլաստերները թերօգտագործվել են, թեև մեր կլաստերի շատ հարցումներ հերթագրվել են:
Օգտագործման գրաֆիկը փոխկապակցված է մասշտաբային գործունեության գրաֆիկի հետ.
Մի քանի ժամ անց հեղինակները ստուգեցին հերթը և թվաց, թե 6 հարցումներ աշխատում էին զուգահեռ մասշտաբով: Մենք նաև պատահականորեն երկու հարցում ենք փորձարկել օգտատիրոջ միջերեսի միջոցով: Մենք չենք ստուգել, թե ինչպես օգտագործել այս արժեքները, երբ մի քանի զուգահեռ կլաստերներ միաժամանակ ակտիվ են:
Արդյունքները
Զուգահեռ մասշտաբը կարող է նվազեցնել գագաթնակետային բեռների ժամանակ հերթում անցկացվող հարցումների ժամանակը:
Հիմնական թեստի արդյունքների հիման վրա պարզվել է, որ բեռնման հարցումների հետ կապված իրավիճակը մասամբ բարելավվել է։ Այնուամենայնիվ, միայն զուգահեռ մասշտաբը չլուծեց միաժամանակության բոլոր խնդիրները:
Դա պայմանավորված է հարցումների տեսակների սահմանափակումներով, որոնք կարող են օգտագործել զուգահեռ մասշտաբավորում: Օրինակ, հեղինակներն ունեն բազմաթիվ աղյուսակներ՝ միախառնված տեսակավորման ստեղներով, և մեր ծանրաբեռնվածության մեծ մասը գրավոր է:
Թեև զուգահեռ մասշտաբը 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:
Գների մասին ավելին կարող եք կարդալ ռուսերենով այստեղ