ایمیزون ریڈ شفٹ متوازی اسکیلنگ گائیڈ اور ٹیسٹ کے نتائج

ایمیزون ریڈ شفٹ متوازی اسکیلنگ گائیڈ اور ٹیسٹ کے نتائج

Skyeng میں ہم Amazon Redshift کا استعمال کرتے ہیں، بشمول متوازی اسکیلنگ، لہذا ہمیں dotgo.com کے بانی Stefan Gromoll کا یہ مضمون intermix.io دلچسپ معلوم ہوا۔ ترجمہ کے بعد، ڈیٹا انجینئر دانیار بیلخودزائیف سے ہمارا تھوڑا سا تجربہ۔

ایمیزون ریڈ شفٹ آرکیٹیکچر کلسٹر میں نئے نوڈس شامل کرکے اسکیلنگ کی اجازت دیتا ہے۔ درخواستوں کی زیادہ تعداد سے نمٹنے کی ضرورت نوڈس کی ضرورت سے زیادہ فراہمی کا باعث بن سکتی ہے۔ کنکرنسی اسکیلنگ، نئے نوڈس کو شامل کرنے کے برعکس، ضرورت کے مطابق کمپیوٹنگ کی طاقت میں اضافہ کرتی ہے۔

Amazon Redshift متوازی اسکیلنگ Redshift کلسٹرز کو چوٹی کی درخواست والیوم کو سنبھالنے کی اضافی صلاحیت فراہم کرتی ہے۔ یہ درخواستوں کو پس منظر میں نئے "متوازی" کلسٹرز میں منتقل کرکے کام کرتا ہے۔ درخواستیں WLM کنفیگریشن اور قواعد کی بنیاد پر روٹ کی جاتی ہیں۔

متوازی اسکیلنگ کی قیمتوں کا تعین مفت درجے والے کریڈٹ ماڈل پر ہوتا ہے۔ مفت کریڈٹس کے اوپر، ادائیگی متوازی اسکیلنگ کلسٹر درخواستوں پر کارروائی کے وقت پر مبنی ہے۔

مصنف نے اندرونی کلسٹرز میں سے ایک پر متوازی اسکیلنگ کا تجربہ کیا۔ اس پوسٹ میں، وہ ٹیسٹ کے نتائج کے بارے میں بات کرے گا اور شروع کرنے کے بارے میں تجاویز دے گا۔

کلسٹر کی ضروریات

متوازی اسکیلنگ استعمال کرنے کے لیے، آپ کے Amazon Redshift کلسٹر کو درج ذیل تقاضوں کو پورا کرنا ضروری ہے:

- پلیٹ فارم: EC2-VPC؛
- نوڈ کی قسم: dc2.8xlarge، ds2.8xlarge، dc2.large یا ds2.xlarge؛
- نوڈس کی تعداد: 2 سے 32 تک (سنگل نوڈ کلسٹرز تعاون یافتہ نہیں ہیں)۔

قابل قبول درخواست کی اقسام

متوازی پیمانے ہر قسم کے سوالات کے لیے موزوں نہیں ہے۔ پہلے ورژن میں، یہ صرف پڑھنے کی درخواستوں پر کارروائی کرتا ہے جو تین شرائط کو پورا کرتی ہیں:

- منتخب سوالات صرف پڑھنے کے لیے ہیں (اگرچہ مزید اقسام کی منصوبہ بندی کی گئی ہے)؛
- استفسار INTERLEAVED چھانٹنے کے انداز کے ساتھ ٹیبل کا حوالہ نہیں دیتا ہے۔
- استفسار بیرونی جدولوں کا حوالہ دینے کے لیے Amazon Redshift Spectrum کا استعمال نہیں کرتا ہے۔

متوازی اسکیلنگ کلسٹر کی طرف جانے کے لیے، درخواست کا قطار میں ہونا ضروری ہے۔ مزید برآں، قطار کے لیے اہل استفسارات SQA (مختصر استفسار کی سرعت), متوازی پیمانے کے کلسٹرز پر نہیں چلے گا۔

قطاروں اور SQA کو مناسب ترتیب کی ضرورت ہوتی ہے۔ ریڈ شفٹ ورک لوڈ مینجمنٹ (WLM). ہم پہلے اپنے WLM کو بہتر بنانے کی تجویز کرتے ہیں - اس سے متوازی اسکیلنگ کی ضرورت کم ہو جائے گی۔ اور یہ ضروری ہے کیونکہ متوازی اسکیلنگ صرف ایک مخصوص تعداد کے لیے مفت ہے۔ AWS کا دعویٰ ہے کہ 97% صارفین کے لیے متوازی اسکیلنگ مفت ہوگی، جو ہمیں قیمتوں کے تعین کے مسئلے پر لاتی ہے۔

متوازی اسکیلنگ کی لاگت

AWS متوازی اسکیلنگ کے لیے کریڈٹ ماڈل پیش کرتا ہے۔ ہر ایک فعال کلسٹر ایمیزون ریڈ شفٹ فی گھنٹہ کریڈٹ جمع کرتا ہے، روزانہ ایک گھنٹے تک مفت متوازی اسکیلنگ کریڈٹس۔

آپ صرف اس وقت ادائیگی کرتے ہیں جب آپ کے متوازی اسکیلنگ کلسٹرز کا استعمال آپ کو موصول ہونے والے کریڈٹس کی مقدار سے زیادہ ہو۔

لاگت کا حساب ایک متوازی کلسٹر کے لیے فی سیکنڈ آن ڈیمانڈ ریٹ پر لگایا جاتا ہے جو مفت شرح سے اوپر استعمال ہوتا ہے۔ آپ سے صرف آپ کی درخواستوں کی مدت کے لیے چارج کیا جاتا ہے، ہر بار متوازی اسکیلنگ کلسٹر کے فعال ہونے پر کم از کم ایک منٹ کے چارج کے ساتھ۔ فی سیکنڈ آن ڈیمانڈ کی شرح کا حساب عام قیمتوں کے اصولوں کی بنیاد پر کیا جاتا ہے۔ ایمیزون ریڈ شفٹ، یعنی، یہ نوڈ کی قسم اور آپ کے کلسٹر میں نوڈس کی تعداد پر منحصر ہے۔

متوازی اسکیلنگ شروع کرنا

ہر WLM قطار کے لیے متوازی اسکیلنگ کو متحرک کیا جاتا ہے۔ AWS Redshift کنسول پر جائیں اور بائیں نیویگیشن مینو سے ورک لوڈ مینجمنٹ کو منتخب کریں۔ درج ذیل ڈراپ ڈاؤن مینو سے اپنے کلسٹر کا WLM پیرامیٹر گروپ منتخب کریں۔

آپ کو ہر قطار کے آگے ایک نیا کالم نظر آئے گا جسے "کنکرنسی اسکیلنگ موڈ" کہا جاتا ہے۔ پہلے سے طے شدہ "غیر فعال" ہے۔ "ترمیم کریں" پر کلک کریں اور آپ ہر قطار کے لیے سیٹنگز تبدیل کر سکتے ہیں۔

ایمیزون ریڈ شفٹ متوازی اسکیلنگ گائیڈ اور ٹیسٹ کے نتائج

تشکیل

متوازی اسکیلنگ مناسب درخواستوں کو نئے سرشار کلسٹرز کو آگے بھیج کر کام کرتی ہے۔ نئے کلسٹرز کا سائز وہی ہے (نوڈس کی قسم اور تعداد) مرکزی کلسٹر کی طرح۔

متوازی اسکیلنگ کے لیے استعمال ہونے والے کلسٹرز کی ڈیفالٹ تعداد ایک (1) ہے، جس میں کل دس (10) کلسٹرز کو ترتیب دینے کی صلاحیت ہے۔
متوازی اسکیلنگ کے لیے کلسٹرز کی کل تعداد max_concurrency_scaling_clusters پیرامیٹر کے ذریعے سیٹ کی جا سکتی ہے۔ اس پیرامیٹر کی قدر میں اضافہ اضافی فالتو کلسٹر فراہم کرتا ہے۔

ایمیزون ریڈ شفٹ متوازی اسکیلنگ گائیڈ اور ٹیسٹ کے نتائج

نگرانی

AWS Redshift کنسول میں کئی اضافی گراف دستیاب ہیں۔ زیادہ سے زیادہ کنفیگرڈ کنکرنسی اسکیلنگ کلسٹرز چارٹ وقت کے ساتھ ساتھ max_concurrency_scaling_clusters کی قدر دکھاتا ہے۔

ایمیزون ریڈ شفٹ متوازی اسکیلنگ گائیڈ اور ٹیسٹ کے نتائج

فعال اسکیلنگ کلسٹرز کی تعداد یوزر انٹرفیس میں "کنکرنسی اسکیلنگ ایکٹیویٹی" سیکشن میں ظاہر ہوتی ہے:

ایمیزون ریڈ شفٹ متوازی اسکیلنگ گائیڈ اور ٹیسٹ کے نتائج

سوالات کے ٹیب میں، ایک کالم ہے جو اس بات کی نشاندہی کرتا ہے کہ استفسار مین کلسٹر میں کیا گیا تھا یا متوازی اسکیلنگ کلسٹر میں:

ایمیزون ریڈ شفٹ متوازی اسکیلنگ گائیڈ اور ٹیسٹ کے نتائج

قطع نظر اس کے کہ کوئی خاص استفسار مرکزی کلسٹر میں کیا گیا تھا یا متوازی اسکیلنگ کلسٹر کے ذریعے، یہ 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 میں بھی متوازی اسکیلنگ کے ابھرتے ہوئے امکان کو فوری طور پر دیکھا۔
فعالیت بہت پرکشش ہے، خاص طور پر اس بات پر غور کرتے ہوئے کہ AWS کا اندازہ ہے کہ زیادہ تر صارفین کو اس کے لیے اضافی ادائیگی بھی نہیں کرنی پڑے گی۔

ایسا ہوا کہ اپریل کے وسط میں ہمارے پاس ریڈ شفٹ کلسٹر کی درخواستوں کا ایک غیر معمولی ہنگامہ تھا۔ اس عرصے کے دوران، ہم نے اکثر کنکرنسی اسکیلنگ کا سہارا لیا؛ بعض اوقات ایک اضافی کلسٹر بغیر رکے دن میں 24 گھنٹے کام کرتا ہے۔

اس سے یہ ممکن ہوا، اگر قطاروں سے مسئلہ کو مکمل طور پر حل نہیں کرنا، تو کم از کم صورت حال کو قابل قبول بنانا۔

ہمارے مشاہدات بڑی حد تک intermix.io کے لڑکوں کے تاثرات سے ہم آہنگ ہیں۔

ہم نے یہ بھی دیکھا کہ اگرچہ قطار میں درخواستیں انتظار کر رہی تھیں، لیکن تمام درخواستیں فوری طور پر متوازی کلسٹر کو نہیں بھیجی گئیں۔ بظاہر ایسا ہوتا ہے کیونکہ متوازی کلسٹر کو شروع ہونے میں ابھی وقت لگتا ہے۔ نتیجتاً، قلیل مدتی چوٹی کے بوجھ کے دوران ہمارے پاس اب بھی چھوٹی قطاریں ہوتی ہیں، اور متعلقہ الارم کو متحرک ہونے کا وقت ہوتا ہے۔

اپریل میں غیر معمولی بوجھ سے چھٹکارا پانے کے بعد، ہم، جیسا کہ AWS کی توقع تھی، کبھی کبھار استعمال کے موڈ میں داخل ہو گئے - مفت معمول کے اندر۔
آپ AWS Cost Explorer میں اپنے متوازی اسکیلنگ کے اخراجات کو ٹریک کرسکتے ہیں۔ آپ کو سروس - Redshift، استعمال کی قسم - CS کو منتخب کرنے کی ضرورت ہے، مثال کے طور پر USW2-CS:dc2.large۔

آپ روسی میں قیمتوں کے بارے میں مزید پڑھ سکتے ہیں۔ یہاں.

ماخذ: www.habr.com

نیا تبصرہ شامل کریں