Amazon Redshift параллелдүү масштабдоо колдонмосу жана тесттин натыйжалары

Amazon Redshift параллелдүү масштабдоо колдонмосу жана тесттин натыйжалары

Skyengде биз Amazon Redshiftти, анын ичинде параллелдүү масштабдоону колдонобуз, ошондуктан intermix.io үчүн dotgo.com сайтынын негиздөөчүсү Стефан Громоллдун макаласын кызыктуу деп таптык. Котормодон кийин маалымат инженери Данияр Белходжаевден бир аз тажрыйбабыз.

Amazon Redshift архитектурасы кластерге жаңы түйүндөрдү кошуу менен масштабдоого мүмкүндүк берет. Сурамдардын эң көп саны менен күрөшүү зарылдыгы түйүндөрдүн ашыкча камсыздалышына алып келиши мүмкүн. Жаңы түйүндөрдү кошуудан айырмаланып, параллелдүү масштабдоо, керек болсо эсептөө күчүн жогорулатат.

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 Кредиттерди саат сайын, күнүнө бир саатка чейин акысыз параллелдүү масштабдуу кредиттерди топтойт.

Параллель масштабдуу кластерлерди колдонуу сиз алган кредиттердин суммасынан ашканда гана төлөйсүз.

Наркы эркин курстан жогору колдонулган параллелдүү кластер үчүн суроо-талап боюнча секундасына эсептелген. Сизден сурамдарыңыздын узактыгы үчүн гана акы алынат, параллелдүү масштабдоо кластери ар бир иштетилгенде минималдуу бир мүнөттүк акы алынат. Талап боюнча секундасына чен жалпы баа принциптеринин негизинде эсептелет Amazon RedShift, башкача айтканда, ал түйүндүн түрүнө жана кластериңиздеги түйүндөрдүн санына жараша болот.

Параллель масштабдоону ишке киргизүү

Параллель масштабдоо ар бир WLM кезеги үчүн иштетилет. AWS Redshift консолуна өтүп, сол жактагы навигация менюсунан Workload башкарууну тандаңыз. Төмөнкү ачылуучу менюдан кластериңиздин WLM параметр тобун тандаңыз.

Сиз ар бир кезектин жанында "Шаалдаштыруунун масштабы режими" деп аталган жаңы тилкени көрөсүз. Демейки "Өчүрүлгөн" болуп саналат. "Түзөтүү" баскычын чыкылдатып, ар бир кезек үчүн орнотууларды өзгөртө аласыз.

Amazon Redshift параллелдүү масштабдоо колдонмосу жана тесттин натыйжалары

тарам

Параллель масштабдоо жаңы бөлүнгөн кластерлерге тиешелүү суроо-талаптарды жөнөтүү менен иштейт. Жаңы кластерлердин өлчөмү (түйүндөрдүн түрү жана саны) негизги кластердикиндей.

Параллелдүү масштабдоо үчүн колдонулган кластерлердин демейки саны бир (1), жалпысынан он (10) кластерге чейин конфигурациялоо мүмкүнчүлүгү бар.
Параллелдүү масштабдоо үчүн кластерлердин жалпы саны max_concurrency_scaling_clusters параметри менен коюлушу мүмкүн. Бул параметрдин маанисин жогорулатуу кошумча ашыкча кластерлерди камсыз кылат.

Amazon Redshift параллелдүү масштабдоо колдонмосу жана тесттин натыйжалары

Мониторинг

AWS Redshift консолунда бир нече кошумча графиктер бар. Макс конфигурацияланган конкуренция масштабдоо кластерлеринин диаграммасы убакыттын өтүшү менен max_concurrency_scaling_clusters маанисин көрсөтөт.

Amazon Redshift параллелдүү масштабдоо колдонмосу жана тесттин натыйжалары

Активдүү масштабдоо кластерлеринин саны колдонуучу интерфейсинде "Шаалдаштырууну масштабдоо аракети" бөлүмүндө көрсөтүлөт:

Amazon Redshift параллелдүү масштабдоо колдонмосу жана тесттин натыйжалары

Сурамдар кошумча барагында сурам негизги кластерде же параллелдүү масштабдоо кластеринде аткарылганын көрсөткөн тилке бар:

Amazon Redshift параллелдүү масштабдоо колдонмосу жана тесттин натыйжалары

Белгилүү бир суроо негизги кластерде же параллелдүү масштабдоо кластери аркылуу аткарылганына карабастан, ал stl_query.concurrency_scaling_status ичинде сакталат.

Amazon Redshift параллелдүү масштабдоо колдонмосу жана тесттин натыйжалары

1 мааниси суроонун параллелдүү шкала кластеринде аткарылганын көрсөтөт, ал эми башка маанилер анын негизги кластерде аткарылганын көрсөтөт.

мисалы:

Amazon Redshift параллелдүү масштабдоо колдонмосу жана тесттин натыйжалары

Кошумча масштабдоо маалыматы SVCS_CONCURRENCY_SCALING_USAGE сыяктуу башка таблицаларда жана көрүнүштөрдө да сакталат. Мындан тышкары, параллелдүү масштабдоо жөнүндө маалыматты сактаган бир катар каталогдук таблицалар бар.

натыйжалары

Авторлор 18/30/00-жылы GMT саат 29.03.2019:3:20дө ички кластерде бир кезек үчүн параллелдүү масштабдоону башташты. 30/00/29.03.2019 күнү болжол менен саат XNUMX:XNUMX:XNUMXдө max_concurrency_scaling_clusters параметрин XNUMXкө өзгөртүштү.

Сурам кезегин имитациялоо үчүн биз бул кезек үчүн уячалардын санын 15тен 5ке чейин кыскарттык.

Төмөндө уячалардын санын азайткандан кийин иштеп жаткан жана кезекте турган сурамдардын санын көрсөткөн intermix.io панелинин диаграммасы.

Amazon Redshift параллелдүү масштабдоо колдонмосу жана тесттин натыйжалары

Биз кезектеги суроо-талаптарды күтүү убактысы көбөйгөнүн көрүп жатабыз, максималдуу убакыт 5 мүнөттөн ашык.

Amazon Redshift параллелдүү масштабдоо колдонмосу жана тесттин натыйжалары

Бул жерде AWS консолунан бул убакыттын ичинде эмне болгондугу тууралуу тиешелүү маалымат:

Amazon Redshift параллелдүү масштабдоо колдонмосу жана тесттин натыйжалары

Redshift конфигурацияланган үч (3) параллелдүү масштабдоо кластерин ишке киргизди. Биздин кластердеги көптөгөн суроо-талаптар кезекте турганына карабастан, бул кластерлер толук пайдаланылбай калган окшойт.

Колдонуу графиги масштабдоо аракетинин графиги менен дал келет:

Amazon Redshift параллелдүү масштабдоо колдонмосу жана тесттин натыйжалары

Бир нече сааттан кийин авторлор кезекти текшерип, параллелдүү масштабда 6 сурам иштеп жаткандай көрүндү. Биз ошондой эле колдонуучу интерфейси аркылуу эки суроону туш келди сынап көрдүк. Биз бир эле учурда бир нече параллелдүү кластерлер активдүү болгондо бул баалуулуктарды кантип колдонууну текшерген жокпуз.

Amazon Redshift параллелдүү масштабдоо колдонмосу жана тесттин натыйжалары

табылгалары

Параллель масштабдоо жүктөмдөрдүн эң жогорку чегинде кезекте турган суроо-талаптардын убактысын кыскарта алат.

Негизги тестирлөөнүн жыйынтыгы боюнча, суроо-талаптарды жүктөө боюнча абал жарым-жартылай жакшырганы белгилүү болду. Бирок, параллелдүү масштабдоо бардык параллелдүүлүк көйгөйлөрүн чече алган жок.

Бул параллелдүү масштабдоону колдоно турган сурамдардын түрлөрүнө коюлган чектөөлөр менен шартталган. Маселен, авторлордун колдорунда сорттоо баскычтары бар көптөгөн таблицалар бар жана биздин иш жүгүбүздүн көбү жазуу.

Параллелдүү масштабдоо WLM орнотуу үчүн универсалдуу чечим болбосо да, бул функцияны колдонуу жөнөкөй жана жөнөкөй.

Ошондуктан, автор аны WLM кезектериңиз үчүн колдонууну сунуштайт. Бир параллелдүү кластерден баштаңыз жана жаңы кластерлер толугу менен колдонулуп жатканын аныктоо үчүн консол аркылуу эң жогорку жүктөмдү көзөмөлдөңүз.

AWS кошумча суроо түрлөрүн жана таблицаларды колдоону кошкон сайын, параллелдүү масштабдоо бара-бара натыйжалуураак болушу керек.

Skyeng маалымат инженери Данияр Белходжаевден комментарий

Биз Skyeng компаниясында параллелдүү масштабдаштыруунун пайда болгон мүмкүнчүлүгүн дароо байкадык.
Функционалдык абдан жагымдуу, айрыкча AWS колдонуучулардын көбү ал үчүн кошумча төлөшү керек эмес деп эсептейт.

Апрель айынын орто ченинде Redshift кластерине адаттан тыш суроо-талаптар келип түштү. Бул мезгилде биз көп учурда Concurrency Scaling ыкмасына кайрылчубуз; кээде кошумча кластер 24 саат бою токтобой иштеген.

Бул кезек проблемасын толук чечпесе, жок дегенде абалды алгылыктуу кылууга мумкундук берди.

Биздин байкоолор көбүнчө intermix.io жигиттеринин таасирлери менен дал келет.

Ошондой эле, кезекте турган суроо-талаптар болгону менен, бардык суроо-талаптар дароо эле параллелдүү кластерге жөнөтүлбөгөнүн байкадык. Кыязы, бул параллелдүү кластер дагы эле баштоо үчүн убакыт талап кылынат, анткени болот. Натыйжада, кыска мөөнөттүү эң жогорку жүктөмдөр учурунда бизде дагы эле кичинекей кезек күтүлөт жана тиешелүү сигналдар ишке кирүүгө үлгүрөт.

Апрелде анормалдуу жүктөн арылып, биз, AWS күткөндөй, мезгил-мезгили менен колдонуу режимине кирдик - бекер нормада.
AWS Cost Explorerде параллелдүү масштабдоо чыгымдарыңызды көзөмөлдөй аласыз. Кызмат - Redshift, Колдонуу түрү - CS тандоо керек, мисалы USW2-CS:dc2.large.

Баалар тууралуу кененирээк орус тилинде окуй аласыз бул жерде.

Source: www.habr.com

Комментарий кошуу