Cloudflare نے NGINX سے Rust میں لکھی ہوئی اپنی Pingora پراکسی کو تبدیل کیا۔

Cloudflare نے Pingora پراکسی کو استعمال کرنے کے لیے اپنے مواد کی ترسیل کے نیٹ ورک کی منتقلی کا اعلان کیا، جو Rust زبان میں لکھی گئی ہے۔ نئی پراکسی NGINX سرور پر مبنی ترتیب کو Lua اسکرپٹس سے بدل دیتی ہے، اور روزانہ ایک ٹریلین سے زیادہ درخواستوں پر کارروائی کرتی ہے۔ واضح رہے کہ خصوصی پراکسی میں منتقلی سے نہ صرف نئی خصوصیات کو لاگو کرنے اور میموری کے محفوظ آپریشن کی وجہ سے سیکیورٹی میں اضافہ ہوا، بلکہ کارکردگی اور وسائل کی بچت میں بھی نمایاں اضافہ ہوا - پنگورا پر مبنی حل کو استعمال کی ضرورت نہیں ہے۔ Lua کا، اور اسی لیے ٹریفک کی اسی مقدار پر کارروائی کرتے ہوئے 70% کم وسائل CPU اور 67% کم میموری استعمال کرتا ہے۔

ایک طویل عرصے تک، NGINX اور Lua اسکرپٹ پر مبنی صارفین اور اینڈ سرورز کے درمیان ٹریفک پراکسی کرنے کے نظام نے Cloudflare کی ضروریات کو پورا کیا، لیکن جیسے جیسے نیٹ ورک بڑھتا گیا اور اس کی پیچیدگی بڑھتی گئی، ایک آفاقی حل ناکافی نکلا، دونوں لحاظ سے۔ کارکردگی اور توسیع پذیری اور کلائنٹس کے لیے نئے مواقع کے نفاذ کی حدود کی وجہ سے۔ خاص طور پر، ایک سادہ گیٹ وے اور لوڈ بیلنس سے آگے فعالیت کو شامل کرنے میں چیلنجز تھے۔ مثال کے طور پر، یہ ضروری ہو گیا، اگر سرور کسی درخواست پر کارروائی کرنے میں ناکام ہو جاتا ہے، تو درخواست کو دوسرے سرور کو دوبارہ بھیجنا، اسے HTTP ہیڈر کا ایک مختلف سیٹ فراہم کرنا۔

ایک فن تعمیر کے بجائے جو درخواستوں کو ورکر کے الگ الگ عمل میں الگ کرتا ہے، Pingora ایک ملٹی تھریڈڈ ماڈل کا استعمال کرتا ہے، جو Cloudflare کے استعمال کے معاملات میں (ایک بڑی شماریاتی تبدیلی کے ساتھ مختلف سائٹس سے ٹریفک کا زیادہ ارتکاز) CPU کور کے درمیان وسائل کی زیادہ موثر تقسیم کو ظاہر کرتا ہے۔ خاص طور پر، nginx کی غیرمتوازن درخواستوں کو پروسیس کرنے کے لیے پابند کرنے کے نتیجے میں CPU کور پر غیر متوازن بوجھ پڑا، جس کے نتیجے میں وسائل سے متعلق درخواستیں اور I/O کو بلاک کرنا دیگر درخواستوں کی کارروائی کو سست کر دیتا ہے۔ اس کے علاوہ، کنکشن پول کو ہینڈلر کے عمل سے منسلک کرنے سے دوسرے ہینڈلر کے عمل سے پہلے سے قائم کنکشن کو دوبارہ استعمال کرنے کی اجازت نہیں ملتی ہے، جو ہینڈلر کے عمل کی ایک بڑی تعداد ہونے پر کارکردگی کو کم کر دیتا ہے۔

NGINX:

Cloudflare نے NGINX سے Rust میں لکھی ہوئی اپنی Pingora پراکسی کو تبدیل کیا۔

پنگورہ:

Cloudflare نے NGINX سے Rust میں لکھی ہوئی اپنی Pingora پراکسی کو تبدیل کیا۔

پنگورا کے نفاذ سے نئے کنکشنز کی تنصیبات کی تعداد کو 160 گنا کم کرنا اور دوبارہ استعمال شدہ سوالات کا حصہ 87.1 فیصد سے بڑھا کر 99.92 فیصد کرنا ممکن ہوا۔ دوبارہ رابطوں کو کم کرنے اور CPU کور کے زیادہ موثر استعمال کے علاوہ، نئے پراکسی کی کارکردگی میں بہتری بنیادی طور پر nginx کے ساتھ استعمال ہونے والے سست Lua ہینڈلرز کو ہٹانے کی وجہ سے تھی۔

زنگ زبان کا انتخاب میموری کے ساتھ محفوظ آپریشن کو یقینی بنانے کے لیے آلات کی دستیابی کے ساتھ اعلیٰ کارکردگی کے حصول کے لیے کیا گیا تھا۔ یہ ذکر کیا گیا ہے کہ Cloudflare کے اعلیٰ تعلیم یافتہ انجینئرز اور C زبان میں لکھے گئے کوڈ کا جائزہ لینے کے باوجود، یادداشت کے مسائل (مثال کے طور پر، HTML پارسر میں کمزوری) کی وجہ سے غلطیوں سے بچنا ممکن نہیں تھا۔ جہاں تک نئے کوڈ کا تعلق ہے، یہ پنگورا میں ناکامیوں کا تجزیہ کرنے کے معاملات کے بارے میں بات کرتا ہے، جو کہ ایپلی کیشن میں مسائل کی وجہ سے نہیں بلکہ لینکس کرنل اور ہارڈ ویئر کی ناکامیوں میں خرابی کی وجہ سے ہوا ہے۔

مزید برآں، ہم Linus Torvalds کے تبصرے کو بھی نوٹ کر سکتے ہیں، جو ان دنوں ہونے والی اوپن سورس سمٹ یورپ کانفرنس میں لینکس کرنل میں زنگ کی زبان کے لیے تعاون کو شامل کرنے کے حوالے سے بیان کی گئی تھی۔ زنگ زبان میں ڈیوائس ڈرائیور تیار کرنے کے پیچ 6.0 کرنل میں شامل نہیں کیے گئے تھے، لیکن لینس کے مطابق، وہ غالباً 6.1 کرنل میں قبول کیے جائیں گے؛ وہ انضمام میں تاخیر نہیں کرے گا۔ زنگ کے لیے سپورٹ شامل کرنے کے محرک کے طور پر، سیکیورٹی پر مثبت اثرات کے علاوہ، لینس نے نئے شرکاء کی بنیادی جگہ پر کام کرنے میں دلچسپی بڑھانے کے موقع کا بھی حوالہ دیا، جو کہ بوڑھے عمر رسیدہ افراد کے تناظر میں اہم ہے۔

ماخذ: opennet.ru

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