Amazon OpenSearch سروس کے لیے بیک پریشر اور داخلہ کنٹرول کے ساتھ بہتر لچک ایمیزون ویب سروسز

Amazon OpenSearch سروس کے لیے بیک پریشر اور داخلہ کنٹرول کے ساتھ بہتر لچک ایمیزون ویب سروسز

ماخذ نوڈ: 2723961

ایمیزون اوپن سرچ سروس ایک منظم سروس ہے جو AWS کلاؤڈ میں اوپن سرچ کلسٹرز کو بڑے پیمانے پر محفوظ، تعینات، اور آپریٹ کرنا آسان بناتی ہے۔ پچھلے سال، ہم نے متعارف کرایا شارڈ انڈیکسنگ بیک پریشر اور داخلہ کنٹرول، جو کلسٹر وسائل اور آنے والی ٹریفک کی نگرانی کرتا ہے تاکہ ان درخواستوں کو منتخب طور پر مسترد کیا جا سکے جو بصورت دیگر استحکام کے خطرات لاحق ہوں گے جیسے میموری سے باہر اور میموری کے تنازعات، CPU سنترپتی اور GC اوور ہیڈ، اور بہت کچھ کی وجہ سے کلسٹر کی کارکردگی پر اثر پڑے گا۔

اب ہم اوپن سرچ سروس کے لیے سرچ بیک پریشر اور سی پی یو پر مبنی داخلہ کنٹرول متعارف کرانے کے لیے پرجوش ہیں، جو کلسٹرز کی لچک کو مزید بڑھاتا ہے۔ یہ اصلاحات تمام OpenSearch ورژن 1.3 یا اس سے زیادہ کے لیے دستیاب ہیں۔

بیک پریشر تلاش کریں۔

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

سرچ بیک پریشر ایک ایسا طریقہ کار ہے جس کی شناخت اور ان فلائٹ وسائل سے متعلق تلاش کی درخواستوں کو منسوخ کرنے کا طریقہ ہے جب کوئی نوڈ دباؤ میں ہو۔ یہ غیر معمولی طور پر زیادہ وسائل کے استعمال کے ساتھ تلاش کے کام کے بوجھ کے خلاف مؤثر ہے (جیسے پیچیدہ سوالات، سست سوالات، بہت سے ہٹ، یا بھاری جمع)، جو کہ دوسری صورت میں نوڈ کریش کا سبب بن سکتا ہے اور کلسٹر کی صحت کو متاثر کر سکتا ہے۔

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

درج ذیل خاکہ سرچ بیک پریشر ورک فلو کو واضح کرتا ہے۔

تلاش کی درخواستیں منسوخی پر HTTP 429 "بہت زیادہ درخواستیں" اسٹیٹس کوڈ واپس کرتی ہیں۔ OpenSearch جزوی نتائج لوٹاتا ہے اگر صرف کچھ شارڈز ناکام ہو جائیں اور جزوی نتائج کی اجازت ہو۔ درج ذیل کوڈ دیکھیں:

{ "error": { "root_cause": [ { "type": "task_cancelled_exception", "reason": "cancelled task with reason: heap usage exceeded [403mb >= 77.6mb], elapsed time exceeded [1.7m >= 45s]" } ], "type": "search_phase_execution_exception", "reason": "SearchTask was cancelled", "phase": "fetch", "grouped": true, "failed_shards": [ { "shard": 0, "index": "nyc_taxis", "node": "9gB3PDp6Speu61KvOheDXA", "reason": { "type": "task_cancelled_exception", "reason": "cancelled task with reason: heap usage exceeded [403mb >= 77.6mb], elapsed time exceeded [1.7m >= 45s]" } } ], "caused_by": { "type": "task_cancelled_exception", "reason": "cancelled task with reason: heap usage exceeded [403mb >= 77.6mb], elapsed time exceeded [1.7m >= 45s]" } }, "status": 429
}

مانیٹرنگ سرچ بیک پریشر

آپ نوڈ سٹیٹس API کا استعمال کرتے ہوئے تفصیلی سرچ بیک پریشر حالت کی نگرانی کر سکتے ہیں:

curl -X GET "https://{endpoint}/_nodes/stats/search_backpressure"

آپ استعمال کر کے منسوخیوں کا کلسٹر وسیع خلاصہ بھی دیکھ سکتے ہیں۔ ایمیزون کلاؤڈ واچ. درج ذیل میٹرکس اب میں دستیاب ہیں۔ ES/OpenSearchService نام کی جگہ:

  • SearchTask منسوخ کر دیا گیا۔ - کوآرڈینیٹر نوڈ کی منسوخی کی تعداد
  • SearchShardTask منسوخ کر دیا گیا۔ - ڈیٹا نوڈ منسوخی کی تعداد

مندرجہ ذیل اسکرین شاٹ کلاؤڈ واچ کنسول پر ان میٹرکس کو ٹریک کرنے کی ایک مثال دکھاتا ہے۔

CPU پر مبنی داخلہ کنٹرول

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

JVM میموری پریشر اور درخواست کے سائز کی حد کے علاوہ، یہ اب ہر نوڈ کے رولنگ اوسط CPU کے استعمال کو بھی مانیٹر کرتا ہے تاکہ آنے والے کو مسترد کیا جا سکے۔ _search اور _bulk درخواستیں یہ نوڈس کو بہت زیادہ درخواستوں سے مغلوب ہونے سے روکتا ہے جس کی وجہ سے گرم مقامات، کارکردگی کے مسائل، درخواست کا ٹائم آؤٹ، اور دیگر جھڑپوں کی ناکامی ہوتی ہے۔ ضرورت سے زیادہ درخواستیں مسترد ہونے پر HTTP 429 "بہت زیادہ درخواستیں" اسٹیٹس کوڈ واپس کرتی ہیں۔

HTTP 429 کی خرابیوں کو ہینڈل کرنا

اگر آپ کسی نوڈ پر ضرورت سے زیادہ ٹریفک بھیجتے ہیں تو آپ کو HTTP 429 غلطیاں موصول ہوں گی۔ یہ یا تو ناکافی کلسٹر وسائل، وسائل سے بھرپور تلاش کی درخواستوں، یا کام کے بوجھ میں غیر ارادی اضافے کی نشاندہی کرتا ہے۔

تلاش کا بیک پریشر مسترد ہونے کی وجہ فراہم کرتا ہے، جس سے وسائل پر مبنی تلاش کی درخواستوں کو ٹھیک کرنے میں مدد مل سکتی ہے۔ ٹریفک اسپائکس کے لیے، ہم کلائنٹ کی طرف سے دوبارہ کوششوں کی تجویز کرتے ہیں جس میں ایکسپونینشل بیک آف اور جٹر ہے۔

ضرورت سے زیادہ مستردوں کو ڈیبگ کرنے کے لیے آپ ان ٹربل شوٹنگ گائیڈز پر بھی عمل کر سکتے ہیں:

نتیجہ

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

سرچ بیک پریشر میں دستیاب ہے۔ افتتاحی، اور ہم ہمیشہ تلاش کر رہے ہیں۔ بیرونی شراکتیں. آپ کا حوالہ دے سکتے ہیں۔ RFC شروع کرنے کے لئے.


مصنفین کے بارے میں

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

سریش این ایس ایمیزون اوپن سرچ سروس پر کام کرنے والا ایک سینئر SDE ہے۔ وہ بڑے پیمانے پر تقسیم شدہ نظاموں میں مسائل کو حل کرنے کا شوق رکھتا ہے۔

پریت کمار لڈانی ایک SDE-2 ہے جو Amazon OpenSearch سروس پر کام کر رہا ہے۔ وہ اوپن سورس سافٹ ویئر ڈویلپمنٹ میں حصہ ڈالنا پسند کرتا ہے، اور تقسیم شدہ نظاموں کے بارے میں پرجوش ہے۔ وہ ایک شوقیہ بیڈمنٹن کھلاڑی ہے اور ٹریکنگ سے لطف اندوز ہوتا ہے۔

بختاور خان Amazon OpenSearch سروس پر کام کرنے والا ایک پرنسپل انجینئر ہے۔ وہ تقسیم شدہ اور خود مختار نظام کی تعمیر میں دلچسپی رکھتا ہے۔ وہ ایک دیکھ بھال کرنے والا اور OpenSearch میں ایک فعال شراکت دار ہے۔

ٹائم اسٹیمپ:

سے زیادہ AWS بگ ڈیٹا