Skyeng дээр бид Amazon Redshift-ийг ашигладаг, үүнд параллель масштабыг оруулдаг тул intermix.io-д зориулсан dotgo.com сайтыг үүсгэн байгуулагч Стефан Громоллын нийтлэлийг сонирхолтой болгов. Орчуулсны дараа өгөгдлийн инженер Данияр Белходжаеваас бидний туршлагаас бага зэрэг хүргэе.
Amazon Redshift зэрэгцээ масштаб нь Redshift кластеруудад хүсэлтийн дээд хэмжээг зохицуулах нэмэлт хүчин чадлыг өгдөг. Энэ нь хүсэлтийг далд шинэ "зэрэгцээ" кластерууд руу шилжүүлэх замаар ажилладаг. Хүсэлтийг WLM тохиргоо болон дүрэмд үндэслэн явуулдаг.
Зэрэгцээ өсгөх үнэ нь үнэ төлбөргүй түвшний зээлийн загварт суурилдаг. Үнэгүй кредитээс дээш төлбөр нь Зэрэгцээ масштабын кластер хүсэлтийг боловсруулах цаг дээр суурилдаг.
Зохиогч дотоод кластеруудын аль нэгэнд зэрэгцээ масштабыг туршиж үзсэн. Энэ бичлэгт тэрээр тестийн үр дүнгийн талаар ярьж, хэрхэн эхлэх талаар зөвлөгөө өгөх болно.
Кластерт тавигдах шаардлага
Зэрэгцээ масштабыг ашиглахын тулд таны Amazon Redshift кластер дараах шаардлагыг хангасан байх ёстой.
- платформ: EC2-VPC;
- зангилааны төрөл: dc2.8xlarge, ds2.8xlarge, dc2.large эсвэл ds2.xlarge;
- зангилааны тоо: 2-оос 32 хүртэл (нэг зангилааны кластерууд дэмжигдэхгүй).
Хүлээн зөвшөөрөгдсөн хүсэлтийн төрлүүд
Зэрэгцээ масштаб нь бүх төрлийн асуулгад тохиромжгүй. Эхний хувилбарт энэ нь зөвхөн гурван нөхцлийг хангасан унших хүсэлтийг боловсруулдаг:
— СОНГОХ асуулга нь зөвхөн унших боломжтой (хэдийгээр илүү олон төрлийг төлөвлөж байгаа ч);
— асуулга нь INTERLEAVED эрэмбэлэх хэв маягтай хүснэгтэд хамаарахгүй;
- Асуулга нь Amazon Redshift Spectrum-ийг гадны хүснэгтэд лавлахад ашигладаггүй.
Зэрэгцээ масштабын кластер руу чиглүүлэхийн тулд хүсэлтийг дараалалд оруулах ёстой. Нэмж хэлэхэд, дараалалд орох боломжтой асуулга
Дараалал болон SQA нь зөв тохиргоог шаарддаг
Зэрэгцээ масштаблах зардал
AWS нь зэрэгцээ масштаблах зээлийн загварыг санал болгодог. Идэвхтэй кластер бүр
Зэрэгцээ масштабын кластерын хэрэглээ таны авсан зээлийн хэмжээнээс хэтэрсэн тохиолдолд л та төлбөрөө төлнө.
Чөлөөт ханшаас дээш ашиглагдаж буй зэрэгцээ кластерын хувьд зардлыг секундын эрэлтийн хурдаар тооцдог. Зэрэгцээ масштабын кластерийг идэвхжүүлэх бүрт та хамгийн багадаа нэг минутын төлбөрийг таны хүсэлтийн хугацаанд ногдуулна. Нэг секундын эрэлтийн хэмжээг үнийн ерөнхий зарчмууд дээр үндэслэн тооцдог
Зэрэгцээ масштабыг эхлүүлж байна
Зэрэгцээ масштабыг WLM-ийн дараалал бүрт идэвхжүүлдэг. AWS Redshift консол руу очоод зүүн талын навигацийн цэснээс Ажлын ачааллын менежментийг сонгоно уу. Дараах унадаг цэснээс кластерынхаа WLM параметрийн бүлгийг сонгоно уу.
Та дараалал бүрийн хажууд "Зэрэгцээ масштабын горим" нэртэй шинэ баганыг харах болно. Өгөгдмөл нь "Идэвхгүй" байна. "Засварлах" дээр дарж дараалал бүрийн тохиргоог өөрчлөх боломжтой.
Тохиргоо
Зэрэгцээ масштаблалт нь шинэ зориулалтын кластеруудад тохирох хүсэлтийг дамжуулах замаар ажилладаг. Шинэ кластерууд нь үндсэн кластертай ижил хэмжээтэй (зангилааны төрөл ба тоо) байна.
Зэрэгцээ масштаблахад ашигладаг кластеруудын өгөгдмөл тоо нь нэг (1) бөгөөд нийт арав (10) кластерыг тохируулах боломжтой.
Зэрэгцээ масштаблах кластерын нийт тоог max_concurrency_scaling_clusters параметрээр тохируулж болно. Энэ параметрийн утгыг нэмэгдүүлэх нь нэмэлт илүүдэл кластеруудыг бий болгодог.
Хяналт шинжилгээ
AWS Redshift консол дээр хэд хэдэн нэмэлт графикууд байдаг. Хамгийн их тохируулсан зэрэгцүүлэн тохируулах кластеруудын диаграм нь цаг хугацааны туршид max_concurrency_scaling_clusters-ийн утгыг харуулдаг.
Идэвхтэй масштабын кластеруудын тоог хэрэглэгчийн интерфэйс дэх "Зэрэгцээ масштабын үйл ажиллагаа" хэсэгт харуулна.
Queries таб дээр асуулга үндсэн кластерт эсвэл зэрэгцээ масштабын кластерт хийгдсэн эсэхийг харуулсан багана байна.
Тодорхой асуулга үндсэн кластерт эсвэл зэрэгцээ масштабын кластераар хийгдсэн эсэхээс үл хамааран stl_query.concurrency_scaling_status-д хадгалагдана.
1-ийн утга нь асуулга нь зэрэгцээ масштабын кластерт гүйцэтгэсэн болохыг харуулж байгаа бол бусад утга нь үндсэн кластерт гүйцэтгэсэн болохыг харуулж байна.
Жишээ нь:
Зэрэгцээ масштабын мэдээллийг 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 хяналтын самбарын график байна.
Бид дараалалд байгаа хүсэлтийг хүлээх хугацаа нэмэгдэж, хамгийн их хугацаа 5 минутаас илүү байгааг харж байна.
Энэ хугацаанд юу болсон талаар AWS консолоос авсан холбогдох мэдээллийг энд оруулав.
Redshift нь тохируулсны дагуу гурван (3) зэрэгцээ масштабын кластерийг эхлүүлсэн. Манай кластерт олон хүсэлт дараалалд орсон байсан ч эдгээр кластеруудыг дутуу ашигласан бололтой.
Ашиглалтын график нь масштабын үйл ажиллагааны графиктай хамааралтай:
Хэдэн цагийн дараа зохиогчид дарааллыг шалгаж үзээд 6 хүсэлт зэрэгцээ масштабаар ажиллаж байгаа юм шиг харагдсан. Бид мөн хэрэглэгчийн интерфейсээр дамжуулан хоёр хүсэлтийг санамсаргүй байдлаар шалгасан. Хэд хэдэн зэрэгцээ кластерууд нэгэн зэрэг идэвхтэй байх үед эдгээр утгыг хэрхэн ашиглахыг бид шалгаагүй байна.
үр дүн нь
Зэрэгцээ масштаблах нь ачаалал ихтэй үед дараалалд байх хүсэлтийн хугацааг багасгаж чадна.
Үндсэн туршилтын үр дүнд үндэслэн хүсэлтийг ачаалах нөхцөл байдал хэсэгчлэн сайжирсан нь тогтоогдсон. Гэсэн хэдий ч зэрэгцээ масштаблах нь дангаараа зэрэгцэх бүх асуудлыг шийдэж чадаагүй юм.
Энэ нь зэрэгцээ масштабыг ашиглах боломжтой асуулгын төрлүүдийн хязгаарлалттай холбоотой юм. Жишээлбэл, зохиогчид эрэмбэлэх түлхүүр бүхий олон хүснэгттэй бөгөөд бидний ажлын ихэнх ачааллыг бичих явдал юм.
Хэдийгээр зэрэгцээ масштаблах нь 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