Cloudflare نے ایسے پیچ تیار کیے ہیں جو لینکس میں ڈسک کی خفیہ کاری کو ڈرامائی طور پر تیز کرتے ہیں۔

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

Cloudflare CDN پر مواد کیش کرنے کے لیے استعمال ہونے والے اسٹوریج ڈیوائسز پر ڈیٹا کو خفیہ کرنے کے لیے dm-crypt کا استعمال کرتا ہے۔ Dm-crypt بلاک ڈیوائس کی سطح پر کام کرتا ہے اور انکرپٹس I/O درخواستیں لکھتا ہے اور پڑھنے کی درخواستوں کو ڈیکرپٹ کرتا ہے، بلاک ڈیوائس اور فائل سسٹم ڈرائیور کے درمیان ایک پرت کے طور پر کام کرتا ہے۔

Cloudflare نے ایسے پیچ تیار کیے ہیں جو لینکس میں ڈسک کی خفیہ کاری کو ڈرامائی طور پر تیز کرتے ہیں۔

پیکیج کا استعمال کرتے ہوئے dm-crypt کی کارکردگی کا جائزہ لینے کے لیے لچکدار I/O ٹیسٹر ہم نے RAM میں واقع RAM ڈسک پر انکرپٹڈ اور غیر انکرپٹڈ پارٹیشنز کے ساتھ کام کرنے کی رفتار کی پیمائش کی تاکہ ڈسک کی کارکردگی میں اتار چڑھاؤ کو ختم کیا جا سکے اور کوڈ کی کارکردگی پر توجہ مرکوز کی جا سکے۔ غیر خفیہ شدہ پارٹیشنز کے لیے، پڑھنے اور لکھنے کی کارکردگی 1126 MB/s رہی، لیکن جب خفیہ کاری کو فعال کیا گیا تو رفتار کم ہو گئی۔ وقت میں 7 اور اس کی مقدار 147 MB/s ہے۔

سب سے پہلے، کرنل کرپٹو سسٹم میں غیر موثر الگورتھم کے استعمال کے بارے میں شک پیدا ہوا۔ لیکن ٹیسٹوں میں 256 انکرپشن کیز کے ساتھ تیز ترین الگورتھم، aes-xts کا استعمال کیا گیا، جس کی کارکردگی "کرپٹ سیٹ اپ بینچ مارک" چلاتے وقت RAM ڈسک کی جانچ کے دوران حاصل ہونے والے نتائج سے دوگنا زیادہ ہے۔ پرفارمنس ٹیوننگ کے لیے dm-crypt جھنڈوں کے ساتھ کیے گئے تجربات کے نتائج نہیں ملے: "-perf-same_cpu_crypt" جھنڈا استعمال کرتے وقت، کارکردگی 136 MB/s تک کم ہو گئی، اور جب "--perf-submit_from_crypt_cpus" جھنڈے کی وضاحت کی گئی تو اس میں صرف اضافہ ہوا۔ 166 MB/s تک۔

آپریٹنگ منطق کے گہرے تجزیے سے معلوم ہوا کہ dm-crypt اتنا آسان نہیں جتنا لگتا ہے - جب FS ڈرائیور سے تحریری درخواست آتی ہے، dm-crypt اس پر فوری کارروائی نہیں کرتا، بلکہ اسے "kcryptd" قطار میں رکھتا ہے، جو فوری طور پر تجزیہ نہیں کیا جاتا ہے، لیکن جب آسان لمحہ. قطار سے، درخواست لینکس کرپٹو API کو خفیہ کاری انجام دینے کے لیے بھیجی جاتی ہے۔ لیکن چونکہ کریپٹو API ایک غیر مطابقت پذیر عمل کا ماڈل استعمال کرتا ہے، اس لیے خفیہ کاری بھی فوری طور پر نہیں کی جاتی، بلکہ دوسری قطار کو نظرانداز کرتے ہوئے۔ خفیہ کاری مکمل ہونے کے بعد، dm-crypt تلاش کے درخت کا استعمال کرتے ہوئے زیر التواء تحریری درخواستوں کو ترتیب دینے کی کوشش کر سکتا ہے۔ سرخ سیاہ. آخر میں، ایک الگ کرنل تھریڈ، ایک خاص تاخیر کے ساتھ، جمع شدہ I/O درخواستوں کو اٹھاتا ہے اور انہیں بلاک ڈیوائس اسٹیک پر بھیج دیتا ہے۔

Cloudflare نے ایسے پیچ تیار کیے ہیں جو لینکس میں ڈسک کی خفیہ کاری کو ڈرامائی طور پر تیز کرتے ہیں۔

پڑھتے وقت، dm-crypt پہلے ڈرائیو سے ڈیٹا حاصل کرنے کے لیے "kcryptd_io" قطار میں ایک درخواست شامل کرتا ہے۔ کچھ وقت کے بعد، ڈیٹا دستیاب ہو جاتا ہے اور اسے ڈکرپشن کے لیے "kcryptd" قطار میں رکھا جاتا ہے۔
Kcryptd لینکس کرپٹو API کو ایک درخواست بھیجتا ہے، جو معلومات کو غیر مطابقت پذیر طور پر ڈیکرپٹ کرتا ہے۔ درخواستیں ہمیشہ تمام قطاروں سے نہیں گزرتی ہیں، لیکن بدترین صورت حال میں، لکھنے کی درخواست 4 بار تک قطاروں میں ختم ہوتی ہے، اور پڑھنے کی درخواست 3 بار تک ہوتی ہے۔ قطار میں آنے والی ہر ہٹ تاخیر کا سبب بنتی ہے، جو dm-crypt کی کارکردگی میں نمایاں کمی کی اہم وجہ ہیں۔

قطاروں کا استعمال ایسے حالات میں کام کرنے کی ضرورت کی وجہ سے ہے جہاں رکاوٹیں آتی ہیں۔ 2005 میں، جب dm-crypt کے موجودہ قطار پر مبنی آپریٹنگ ماڈل کو لاگو کیا گیا تھا، Crypto API ابھی تک غیر مطابقت پذیر نہیں تھا۔ کرپٹو API کو ایک غیر مطابقت پذیر عمل درآمد ماڈل میں منتقل کرنے کے بعد، بنیادی طور پر دوہرا تحفظ استعمال ہونا شروع ہوا۔ کرنل اسٹیک کی کھپت کو بچانے کے لیے قطاریں بھی متعارف کروائی گئی تھیں، لیکن 2014 میں اس میں اضافے کے بعد، یہ اصلاح اپنی مطابقت کھو بیٹھی۔ رکاوٹ کو دور کرنے کے لیے ایک اضافی قطار "kcryptd_io" متعارف کرائی گئی تھی جس کے نتیجے میں بڑی تعداد میں درخواستیں آنے پر میموری مختص کرنے کا انتظار کرنا پڑتا ہے۔ 2015 میں، ایک اضافی چھانٹنے کا مرحلہ متعارف کرایا گیا تھا، کیونکہ ملٹی پروسیسر سسٹمز پر خفیہ کاری کی درخواستوں کو ترتیب سے باہر مکمل کیا جا سکتا تھا (ڈسک تک ترتیب وار رسائی کے بجائے، رسائی بے ترتیب ترتیب میں کی گئی تھی، اور CFQ شیڈیولر نے مؤثر طریقے سے کام نہیں کیا)۔ فی الحال، SSD ڈرائیوز استعمال کرتے وقت، چھانٹنا اپنا معنی کھو چکا ہے، اور CFQ شیڈولر اب دانا میں استعمال نہیں ہوتا ہے۔

اس بات کو مدنظر رکھتے ہوئے کہ جدید ڈرائیوز تیز اور سمارٹ ہو گئی ہیں، لینکس کرنل میں وسائل کی تقسیم کے نظام پر نظر ثانی کی گئی ہے اور کچھ سب سسٹمز کو دوبارہ ڈیزائن کیا گیا ہے، کلاؤڈ فلیئر انجینئرز شامل کیا dm-crypt میں ایک نیا آپریٹنگ موڈ ہے جو غیر ضروری قطاروں اور غیر مطابقت پذیر کالوں کے استعمال کو ختم کرتا ہے۔ موڈ کو ایک علیحدہ پرچم "force_inline" کے ذریعے فعال کیا گیا ہے اور dm-crypt کو ایک سادہ پراکسی کی شکل میں لاتا ہے جو آنے والی درخواستوں کو خفیہ اور ڈکرپٹ کرتا ہے۔ کرپٹو API کے ساتھ تعامل کو واضح طور پر انکرپشن الگورتھم کا انتخاب کرکے بہتر بنایا گیا ہے جو ہم وقت ساز موڈ میں کام کرتے ہیں اور درخواست کی قطاروں کا استعمال نہیں کرتے ہیں۔ کرپٹو API کے ساتھ ہم وقت سازی سے کام کرنا تھا۔ مجوزہ ایک ماڈیول جو آپ کو ایکسلریشن کے لیے FPU/AES-NI استعمال کرنے اور خفیہ کاری اور ڈکرپشن کی درخواستوں کو براہ راست آگے بھیجنے کی اجازت دیتا ہے۔

نتیجے کے طور پر، RAM ڈسک کی جانچ کرتے وقت، dm-crypt کی کارکردگی کو دوگنا سے زیادہ کرنا ممکن تھا - کارکردگی 294 MB/s (2 x 147 MB/s) سے بڑھ کر 640 MB/s، جو کہ بہت قریب ہے۔ ننگی خفیہ کاری کی کارکردگی (696 MB /s)۔

Cloudflare نے ایسے پیچ تیار کیے ہیں جو لینکس میں ڈسک کی خفیہ کاری کو ڈرامائی طور پر تیز کرتے ہیں۔

Cloudflare نے ایسے پیچ تیار کیے ہیں جو لینکس میں ڈسک کی خفیہ کاری کو ڈرامائی طور پر تیز کرتے ہیں۔

Cloudflare نے ایسے پیچ تیار کیے ہیں جو لینکس میں ڈسک کی خفیہ کاری کو ڈرامائی طور پر تیز کرتے ہیں۔

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

Cloudflare نے ایسے پیچ تیار کیے ہیں جو لینکس میں ڈسک کی خفیہ کاری کو ڈرامائی طور پر تیز کرتے ہیں۔

ماخذ: opennet.ru

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