Amazon Redshift зэрэгцээ масштабын гарын авлага ба туршилтын үр дүн

Amazon Redshift зэрэгцээ масштабын гарын авлага ба туршилтын үр дүн

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

Amazon Redshift архитектур кластерт шинэ зангилаа нэмэх замаар масштаблах боломжийг олгодог. Оргил тооны хүсэлтийг даван туулах хэрэгцээ нь зангилааг хэт ихээр хангахад хүргэдэг. Concurrency Scaling нь шинэ зангилаа нэмэхээс ялгаатай нь шаардлагатай бол тооцоолох хүчийг нэмэгдүүлдэг.

Amazon Redshift зэрэгцээ масштаб нь Redshift кластеруудад хүсэлтийн дээд хэмжээг зохицуулах нэмэлт хүчин чадлыг өгдөг. Энэ нь хүсэлтийг далд шинэ "зэрэгцээ" кластерууд руу шилжүүлэх замаар ажилладаг. Хүсэлтийг WLM тохиргоо болон дүрэмд үндэслэн явуулдаг.

Зэрэгцээ өсгөх үнэ нь үнэ төлбөргүй түвшний зээлийн загварт суурилдаг. Үнэгүй кредитээс дээш төлбөр нь Зэрэгцээ масштабын кластер хүсэлтийг боловсруулах цаг дээр суурилдаг.

Зохиогч дотоод кластеруудын аль нэгэнд зэрэгцээ масштабыг туршиж үзсэн. Энэ бичлэгт тэрээр тестийн үр дүнгийн талаар ярьж, хэрхэн эхлэх талаар зөвлөгөө өгөх болно.

Кластерт тавигдах шаардлага

Зэрэгцээ масштабыг ашиглахын тулд таны Amazon Redshift кластер дараах шаардлагыг хангасан байх ёстой.

- платформ: EC2-VPC;
- зангилааны төрөл: dc2.8xlarge, ds2.8xlarge, dc2.large эсвэл ds2.xlarge;
- зангилааны тоо: 2-оос 32 хүртэл (нэг зангилааны кластерууд дэмжигдэхгүй).

Хүлээн зөвшөөрөгдсөн хүсэлтийн төрлүүд

Зэрэгцээ масштаб нь бүх төрлийн асуулгад тохиромжгүй. Эхний хувилбарт энэ нь зөвхөн гурван нөхцлийг хангасан унших хүсэлтийг боловсруулдаг:

— СОНГОХ асуулга нь зөвхөн унших боломжтой (хэдийгээр илүү олон төрлийг төлөвлөж байгаа ч);
— асуулга нь INTERLEAVED эрэмбэлэх хэв маягтай хүснэгтэд хамаарахгүй;
- Асуулга нь Amazon Redshift Spectrum-ийг гадны хүснэгтэд лавлахад ашигладаггүй.

Зэрэгцээ масштабын кластер руу чиглүүлэхийн тулд хүсэлтийг дараалалд оруулах ёстой. Нэмж хэлэхэд, дараалалд орох боломжтой асуулга SQA (Богино асуулгын хурдатгал), зэрэгцээ масштабтай кластерууд дээр ажиллахгүй.

Дараалал болон SQA нь зөв тохиргоог шаарддаг Redshift ажлын ачааллын менежмент (WLM). Бид эхлээд WLM-ээ оновчтой болгохыг зөвлөж байна - энэ нь зэрэгцээ масштаблах хэрэгцээг багасгах болно. Зэрэгцээ масштаблах нь зөвхөн тодорхой хэдэн цагийн турш үнэ төлбөргүй байдаг тул энэ нь чухал юм. AWS нь үйлчлүүлэгчдийн 97% -д параллель өргөтгөл үнэ төлбөргүй байх болно гэж мэдэгдэж байгаа нь биднийг үнийн асуудалд авчирдаг.

Зэрэгцээ масштаблах зардал

AWS нь зэрэгцээ масштаблах зээлийн загварыг санал болгодог. Идэвхтэй кластер бүр Амазоны Redshift Кредитийг цаг тутамд хуримтлуулж, өдөрт нэг цаг хүртэл үнэ төлбөргүй зэрэгцээ масштабын кредитийг авдаг.

Зэрэгцээ масштабын кластерын хэрэглээ таны авсан зээлийн хэмжээнээс хэтэрсэн тохиолдолд л та төлбөрөө төлнө.

Чөлөөт ханшаас дээш ашиглагдаж буй зэрэгцээ кластерын хувьд зардлыг секундын эрэлтийн хурдаар тооцдог. Зэрэгцээ масштабын кластерийг идэвхжүүлэх бүрт та хамгийн багадаа нэг минутын төлбөрийг таны хүсэлтийн хугацаанд ногдуулна. Нэг секундын эрэлтийн хэмжээг үнийн ерөнхий зарчмууд дээр үндэслэн тооцдог Амазоны Redshift, өөрөөр хэлбэл, энэ нь зангилааны төрөл болон таны кластер дахь зангилааны тооноос хамаарна.

Зэрэгцээ масштабыг эхлүүлж байна

Зэрэгцээ масштабыг WLM-ийн дараалал бүрт идэвхжүүлдэг. AWS Redshift консол руу очоод зүүн талын навигацийн цэснээс Ажлын ачааллын менежментийг сонгоно уу. Дараах унадаг цэснээс кластерынхаа WLM параметрийн бүлгийг сонгоно уу.

Та дараалал бүрийн хажууд "Зэрэгцээ масштабын горим" нэртэй шинэ баганыг харах болно. Өгөгдмөл нь "Идэвхгүй" байна. "Засварлах" дээр дарж дараалал бүрийн тохиргоог өөрчлөх боломжтой.

Amazon Redshift зэрэгцээ масштабын гарын авлага ба туршилтын үр дүн

Тохиргоо

Зэрэгцээ масштаблалт нь шинэ зориулалтын кластеруудад тохирох хүсэлтийг дамжуулах замаар ажилладаг. Шинэ кластерууд нь үндсэн кластертай ижил хэмжээтэй (зангилааны төрөл ба тоо) байна.

Зэрэгцээ масштаблахад ашигладаг кластеруудын өгөгдмөл тоо нь нэг (1) бөгөөд нийт арав (10) кластерыг тохируулах боломжтой.
Зэрэгцээ масштаблах кластерын нийт тоог max_concurrency_scaling_clusters параметрээр тохируулж болно. Энэ параметрийн утгыг нэмэгдүүлэх нь нэмэлт илүүдэл кластеруудыг бий болгодог.

Amazon Redshift зэрэгцээ масштабын гарын авлага ба туршилтын үр дүн

Хяналт шинжилгээ

AWS Redshift консол дээр хэд хэдэн нэмэлт графикууд байдаг. Хамгийн их тохируулсан зэрэгцүүлэн тохируулах кластеруудын диаграм нь цаг хугацааны туршид max_concurrency_scaling_clusters-ийн утгыг харуулдаг.

Amazon Redshift зэрэгцээ масштабын гарын авлага ба туршилтын үр дүн

Идэвхтэй масштабын кластеруудын тоог хэрэглэгчийн интерфэйс дэх "Зэрэгцээ масштабын үйл ажиллагаа" хэсэгт харуулна.

Amazon Redshift зэрэгцээ масштабын гарын авлага ба туршилтын үр дүн

Queries таб дээр асуулга үндсэн кластерт эсвэл зэрэгцээ масштабын кластерт хийгдсэн эсэхийг харуулсан багана байна.

Amazon Redshift зэрэгцээ масштабын гарын авлага ба туршилтын үр дүн

Тодорхой асуулга үндсэн кластерт эсвэл зэрэгцээ масштабын кластераар хийгдсэн эсэхээс үл хамааран stl_query.concurrency_scaling_status-д хадгалагдана.

Amazon Redshift зэрэгцээ масштабын гарын авлага ба туршилтын үр дүн

1-ийн утга нь асуулга нь зэрэгцээ масштабын кластерт гүйцэтгэсэн болохыг харуулж байгаа бол бусад утга нь үндсэн кластерт гүйцэтгэсэн болохыг харуулж байна.

Жишээ нь:

Amazon Redshift зэрэгцээ масштабын гарын авлага ба туршилтын үр дүн

Зэрэгцээ масштабын мэдээллийг SVCS_CONCURRENCY_SCALING_USAGE гэх мэт бусад хүснэгт, харагдацад хадгалдаг. Нэмж дурдахад зэрэгцээ масштабын талаарх мэдээллийг хадгалдаг хэд хэдэн каталогийн хүснэгтүүд байдаг.

Результаты

Зохиогчид 18 оны 30-р сарын 00-ний өдрийн 29.03.2019:3:20 GMT-д дотоод кластерт нэг дарааллын зэрэгцээ масштаблах ажлыг эхлүүлсэн. 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 дээр зэрэгцээ масштабын зардлаа хянах боломжтой. Та Service - Redshift, Usage Type - CS сонгох хэрэгтэй, жишээ нь USW2-CS:dc2.large.

Та орос хэл дээр үнийн талаар дэлгэрэнгүй уншиж болно энд.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх