راهنمای مقیاس‌گذاری موازی آمازون Redshift و نتایج آزمایش

راهنمای مقیاس‌گذاری موازی آمازون Redshift و نتایج آزمایش

در Skyeng ما از Amazon Redshift از جمله مقیاس‌بندی موازی استفاده می‌کنیم، بنابراین این مقاله توسط Stefan Gromoll، بنیانگذار dotgo.com، برای intermix.io جالب بود. پس از ترجمه، کمی از تجربه ما از مهندس داده دانیار بلخدژائف.

معماری Redshift آمازون با افزودن گره های جدید به خوشه، مقیاس بندی را امکان پذیر می کند. نیاز به مقابله با اوج تعداد درخواست‌ها می‌تواند منجر به تامین بیش از حد گره‌ها شود. مقیاس همزمان، بر خلاف اضافه کردن گره های جدید، قدرت محاسباتی را در صورت نیاز افزایش می دهد.

مقیاس بندی موازی آمازون 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 (WLM). توصیه می کنیم ابتدا WLM خود را بهینه کنید - این کار نیاز به مقیاس بندی موازی را کاهش می دهد. و این مهم است زیرا مقیاس بندی موازی فقط برای تعداد معینی از ساعت رایگان است. AWS ادعا می کند که مقیاس بندی موازی برای 97٪ از مشتریان رایگان خواهد بود، که ما را به موضوع قیمت گذاری می رساند.

هزینه مقیاس بندی موازی

AWS یک مدل اعتباری برای مقیاس بندی موازی ارائه می دهد. هر خوشه فعال آمازون Redshift اعتبارات را به صورت ساعتی جمع آوری می کند، تا یک ساعت اعتبار مقیاس موازی رایگان در روز.

فقط زمانی پرداخت می‌کنید که میزان استفاده از خوشه‌های مقیاس‌بندی موازی از میزان اعتبار دریافتی شما بیشتر شود.

هزینه با نرخ درخواستی در هر ثانیه برای یک خوشه موازی که بالاتر از نرخ آزاد استفاده می شود محاسبه می شود. شما فقط برای مدت زمان درخواست های خود هزینه دریافت می کنید و هر بار که یک کلاستر مقیاس موازی فعال می شود حداقل یک دقیقه شارژ می شود. نرخ تقاضای هر ثانیه بر اساس اصول کلی قیمت گذاری محاسبه می شود آمازون Redshift، یعنی بستگی به نوع گره و تعداد گره های خوشه شما دارد.

راه اندازی مقیاس بندی موازی

مقیاس بندی موازی برای هر صف WLM فعال می شود. به کنسول AWS Redshift بروید و Workload Management را از منوی ناوبری سمت چپ انتخاب کنید. گروه پارامتر WLM خوشه خود را از منوی کشویی زیر انتخاب کنید.

در کنار هر صف یک ستون جدید به نام "حالت مقیاس گذاری همزمان" خواهید دید. پیش فرض "غیرفعال" است. روی "ویرایش" کلیک کنید و می توانید تنظیمات هر صف را تغییر دهید.

راهنمای مقیاس‌گذاری موازی آمازون Redshift و نتایج آزمایش

پیکربندی

مقیاس بندی موازی با ارسال درخواست های مناسب به خوشه های اختصاصی جدید کار می کند. خوشه های جدید اندازه (نوع و تعداد گره ها) مشابه خوشه اصلی دارند.

تعداد پیش‌فرض خوشه‌های مورد استفاده برای مقیاس‌بندی موازی یک (1) است، با قابلیت پیکربندی تا ده (10) خوشه.
تعداد کل خوشه ها برای مقیاس بندی موازی را می توان با پارامتر max_concurrency_scaling_clusters تنظیم کرد. افزایش مقدار این پارامتر، خوشه های اضافی اضافی را فراهم می کند.

راهنمای مقیاس‌گذاری موازی آمازون Redshift و نتایج آزمایش

نظارت

چندین نمودار اضافی در کنسول AWS Redshift موجود است. نمودار Max Configured Concurrency Scaling Clusters مقدار max_concurrency_scaling_clusters را در طول زمان نمایش می دهد.

راهنمای مقیاس‌گذاری موازی آمازون Redshift و نتایج آزمایش

تعداد خوشه‌های مقیاس‌بندی فعال در رابط کاربری در بخش «فعالیت مقیاس‌گذاری همزمان» نمایش داده می‌شود:

راهنمای مقیاس‌گذاری موازی آمازون Redshift و نتایج آزمایش

در برگه Queries، ستونی وجود دارد که نشان می دهد پرس و جو در خوشه اصلی یا در خوشه مقیاس بندی موازی اجرا شده است:

راهنمای مقیاس‌گذاری موازی آمازون Redshift و نتایج آزمایش

صرف نظر از اینکه یک پرس و جو خاص در خوشه اصلی یا از طریق یک خوشه مقیاس بندی موازی اجرا شده است، در stl_query.concurrency_scaling_status ذخیره می شود.

راهنمای مقیاس‌گذاری موازی آمازون Redshift و نتایج آزمایش

مقدار 1 نشان می دهد که پرس و جو در کلاستر مقیاس موازی اجرا شده است، در حالی که مقادیر دیگر نشان می دهد که در خوشه اولیه اجرا شده است.

به عنوان مثال:

راهنمای مقیاس‌گذاری موازی آمازون Redshift و نتایج آزمایش

اطلاعات مقیاس‌بندی همزمانی در برخی جداول و نماهای دیگر مانند SVCS_CONCURRENCY_SCALING_USAGE نیز ذخیره می‌شود. علاوه بر این، تعدادی جداول کاتالوگ وجود دارد که اطلاعات مربوط به مقیاس بندی موازی را ذخیره می کند.

یافته ها

نویسندگان مقیاس بندی موازی را برای یک صف در خوشه داخلی تقریباً در ساعت 18:30:00 به وقت گرینویچ در تاریخ 29.03.2019/3/20 آغاز کردند. پارامتر max_concurrency_scaling_clusters را در حدود ساعت 30:00:29.03.2019 در تاریخ XNUMX/XNUMX/XNUMX به XNUMX تغییر دادند.

برای شبیه سازی یک صف درخواست، تعداد اسلات های این صف را از 15 به 5 کاهش دادیم.

در زیر نمودار داشبورد intermix.io وجود دارد که تعداد درخواست‌های در حال اجرا و صف‌بندی پس از کاهش تعداد اسلات‌ها را نشان می‌دهد.

راهنمای مقیاس‌گذاری موازی آمازون Redshift و نتایج آزمایش

می بینیم که زمان انتظار برای درخواست ها در صف افزایش یافته است و حداکثر زمان آن بیش از 5 دقیقه است.

راهنمای مقیاس‌گذاری موازی آمازون Redshift و نتایج آزمایش

در اینجا اطلاعات مربوطه از کنسول AWS در مورد آنچه در این مدت اتفاق افتاده است:

راهنمای مقیاس‌گذاری موازی آمازون Redshift و نتایج آزمایش

Redshift سه (3) خوشه مقیاس بندی موازی را طبق پیکربندی راه اندازی کرد. به نظر می‌رسد که این خوشه‌ها کمتر مورد استفاده قرار گرفته‌اند، حتی اگر بسیاری از درخواست‌ها در خوشه ما در صف قرار داشته باشند.

نمودار استفاده با نمودار فعالیت مقیاس بندی همبستگی دارد:

راهنمای مقیاس‌گذاری موازی آمازون Redshift و نتایج آزمایش

پس از چند ساعت، نویسندگان صف را بررسی کردند و به نظر می رسید که 6 درخواست در مقیاس موازی اجرا می شوند. ما همچنین به صورت تصادفی دو درخواست را از طریق رابط کاربری آزمایش کردیم. ما نحوه استفاده از این مقادیر را هنگامی که چندین خوشه موازی به طور همزمان فعال هستند بررسی نکرده ایم.

راهنمای مقیاس‌گذاری موازی آمازون Redshift و نتایج آزمایش

یافته ها

مقیاس بندی موازی می تواند زمان صرف شده در صف در طول بارهای اوج را کاهش دهد.

بر اساس نتایج آزمایش پایه، مشخص شد که وضعیت بارگیری درخواست ها تا حدی بهبود یافته است. با این حال، مقیاس بندی موازی به تنهایی همه مشکلات همزمانی را حل نکرد.

این به دلیل محدودیت در انواع پرس و جوهایی است که می توانند از مقیاس بندی موازی استفاده کنند. به عنوان مثال، نویسندگان جداول زیادی با کلیدهای مرتب سازی در هم دارند و بیشتر حجم کاری ما نوشتن است.

اگرچه مقیاس موازی یک راه حل جهانی برای راه اندازی WLM نیست، استفاده از این ویژگی ساده و سرراست است.

بنابراین، نویسنده توصیه می کند از آن برای صف های WLM خود استفاده کنید. با یک خوشه موازی شروع کنید و اوج بار را از طریق کنسول کنترل کنید تا مشخص کنید که آیا خوشه های جدید به طور کامل مورد استفاده قرار می گیرند یا خیر.

همانطور که AWS پشتیبانی از انواع پرس و جو و جداول اضافی را اضافه می کند، مقیاس بندی موازی باید به تدریج کارآمدتر و کارآمدتر شود.

نظر از Daniyar Belkhodzhaev، مهندس داده Skyeng

ما در Skyeng نیز بلافاصله متوجه امکان در حال ظهور مقیاس بندی موازی شدیم.
عملکرد بسیار جذاب است، به خصوص با توجه به این که AWS تخمین می زند که اکثر کاربران حتی مجبور نیستند برای آن هزینه اضافی بپردازند.

این اتفاق افتاد که در اواسط آوریل، درخواست‌های غیرمعمولی برای خوشه Redshift داشتیم. در این دوره، ما اغلب به مقیاس همزمان متوسل می شدیم؛ گاهی اوقات یک خوشه اضافی 24 ساعت شبانه روز بدون توقف کار می کرد.

این امر باعث شد اگر نه به طور کامل مشکل با صف ها حل شود، حداقل شرایط را قابل قبول کند.

مشاهدات ما تا حد زیادی با برداشت های بچه ها از intermix.io مطابقت دارد.

ما همچنین متوجه شدیم که اگرچه درخواست‌هایی در صف منتظر بودند، اما همه درخواست‌ها بلافاصله به خوشه موازی ارسال نشدند. ظاهراً این اتفاق می افتد زیرا خوشه موازی هنوز برای شروع به زمان نیاز دارد. در نتیجه، در زمان اوج بارهای کوتاه مدت، ما هنوز صف های کوچکی داریم و آلارم های مربوطه زمان فعال شدن دارند.

با خلاص شدن از بارهای غیرعادی در ماه آوریل، همانطور که AWS انتظار داشت، وارد حالت استفاده گاه به گاه - در حد نرمال رایگان شدیم.
می توانید هزینه های مقیاس بندی موازی خود را در AWS Cost Explorer پیگیری کنید. شما باید Service - Redshift، Usage Type - CS را انتخاب کنید، برای مثال USW2-CS:dc2.large.

می توانید اطلاعات بیشتری در مورد قیمت ها به زبان روسی بخوانید اینجا.

منبع: www.habr.com

اضافه کردن نظر