Cloudflare پيچ تيار ڪيا آهن جيڪي ڊرامي طور تي لينڪس ۾ ڊسڪ انڪرپشن کي تيز ڪن ٿا

Cloudflare کان ڊولپرز ٻڌايو لينڪس ڪرنل ۾ ڊسڪ انڪرپشن جي ڪارڪردگي کي بهتر ڪرڻ لاء ڪم ڪرڻ بابت. نتيجي طور، اهي تيار ڪيا ويا پيچ سب سسٽم لاءِ ڊي ايم-crypt ۽ Crypto API، جنهن کي مصنوعي ٽيسٽ ۾ پڙهڻ ۽ لکڻ جي ذريعي ٻيڻو ڪرڻ ممڪن بڻايو ويو، انهي سان گڏ اڌ دير جي دير. جڏهن حقيقي هارڊويئر تي آزمائي ڪئي وئي، انڪريپشن اوور هيڊ تقريبن سطح تائين گھٽجي وئي هئي جڏهن ڊسڪ سان ڪم ڪندي ڊيٽا انڪرپشن کان سواءِ.

Cloudflare استعمال ڪري ٿو dm-crypt ڊيٽا کي انڪرپٽ ڪرڻ لاءِ اسٽوريج ڊوائيسز تي استعمال ٿيل مواد کي CDN تي ڪيش ڪرڻ لاءِ. Dm-crypt بلاڪ ڊيوائس جي سطح تي هلندي آهي ۽ انڪرپٽس لکندو آهي I/O درخواستون ۽ ڊيڪرپٽس پڙهڻ جون درخواستون، بلاڪ ڊيوائس ۽ فائيل سسٽم ڊرائيور جي وچ ۾ هڪ پرت جي حيثيت سان ڪم ڪندي.

Cloudflare پيچ تيار ڪيا آهن جيڪي ڊرامي طور تي لينڪس ۾ ڊسڪ انڪرپشن کي تيز ڪن ٿا

پيڪيج استعمال ڪندي dm-crypt جي ڪارڪردگي جو جائزو وٺڻ لاء لچڪدار I/O ٽيسٽر اسان ڪم ڪرڻ جي رفتار کي ماپ ڪيو انڪريپٽ ٿيل ۽ غير انڪريپ ٿيل ورهاڱي سان گڏ ريم ۾ واقع ريم ڊسڪ تي ڊسڪ ڪارڪردگي ۾ وهڪري کي ختم ڪرڻ ۽ ڪوڊ جي ڪارڪردگي تي ڌيان ڏيڻ. غير انڪرپٽ ٿيل ورهاڱي لاء، پڙهڻ ۽ لکڻ جي ڪارڪردگي 1126 MB/s تي رهي، پر رفتار گهٽجي وئي جڏهن انڪريپشن کي فعال ڪيو ويو. 7 ڀيرا ۽ رقم 147 MB/s.

پهرين ۾، شڪ پيدا ٿيو kernel cryptosystem ۾ غير موثر الگورتھم جي استعمال بابت. پر ٽيسٽن ۾ تيز ترين الگورٿم استعمال ڪيو ويو، aes-xts، 256 انڪرپشن ڪيز سان، جن جي ڪارڪردگي ”cryptsetup benchmark“ کي هلائڻ وقت حاصل ڪيل نتيجن جي ڀيٽ ۾ ٻه ڀيرا وڌيڪ هوندي آهي جڏهن ريم ڊسڪ کي جانچيندي آهي. ڪارڪردگي ٽيوننگ لاءِ dm-crypt جھنڊن جا تجربا نتيجا نه ڏنا ويا: "--perf-same_cpu_crypt" پرچم استعمال ڪرڻ وقت، ڪارڪردگي اڃا به 136 MB/s تائين گھٽجي وئي، ۽ جڏھن بيان ڪيو ويو ته "--perf-submit_from_crypt_cpus" پرچم کي وڌايو ويو. 166 MB/s تائين.

آپريٽنگ منطق جي هڪ تمام گهڻي تجزيي ڏيکاري ٿي ته dm-crypt ايترو سادو ناهي جيترو اهو لڳي ٿو - جڏهن لکڻ جي درخواست FS ڊرائيور کان اچي ٿي، dm-crypt ان کي فوري طور تي پروسيس نه ڪندو آهي، پر ان کي "kcryptd" قطار ۾ رکي ٿو، جيڪو فوري طور تي پارس نه ڪيو ويو آهي، پر جڏهن آسان لمحو. قطار مان، درخواست لينڪس Crypto API ڏانهن موڪلي وئي آهي انڪرپشن انجام ڏيڻ لاء. پر جيئن ته Crypto API استعمال ڪري ٿو هڪ غير مطابقت واري عمل جو ماڊل، انڪريپشن پڻ فوري طور تي انجام نه ڏنو ويو آهي، پر ٻي قطار کي نظرانداز ڪندي. انڪريپشن مڪمل ٿيڻ کان پوءِ، dm-crypt ڪوشش ڪري سگھي ٿو التوا ۾ لکيل درخواستن کي ترتيب ڏيڻ لاءِ سرچ ٽري استعمال ڪندي ڳاڙهو-ڪارو. آخر ۾، هڪ الڳ ڪنييل ٿريڊ ٻيهر، ڪجهه دير سان، جمع ٿيل I/O درخواستن کي کڻي ٿو ۽ انهن کي بلاڪ ڊيوائس اسٽيڪ ڏانهن موڪلي ٿو.

Cloudflare پيچ تيار ڪيا آهن جيڪي ڊرامي طور تي لينڪس ۾ ڊسڪ انڪرپشن کي تيز ڪن ٿا

جڏهن پڙهڻ، dm-crypt پهرين "kcryptd_io" قطار ۾ هڪ درخواست شامل ڪري ٿو ڊرائيو مان ڊيٽا حاصل ڪرڻ لاء. ڪجهه وقت کان پوء، ڊيٽا دستياب ٿي ويندي آهي ۽ ڊسڪشن لاء "kcryptd" قطار ۾ رکيل آهي.
Kcryptd لينڪس Crypto API ڏانهن هڪ درخواست موڪلي ٿو، جيڪو معلومات کي غير مطابقت سان رد ڪري ٿو. درخواستون هميشه سڀني قطارن مان نه وينديون آهن، پر بدترين حالتن ۾، لکڻ جي درخواست 4 ڀيرا قطار ۾ ختم ٿي ويندي آهي، ۽ پڙهڻ جي درخواست 3 ڀيرا تائين. قطار ۾ هر مارو دير جو سبب بڻائيندو آهي، جيڪي dm-crypt ڪارڪردگي ۾ اهم گهٽتائي جا اهم سبب آهن.

قطارن جو استعمال حالتن ۾ ڪم ڪرڻ جي ضرورت جي ڪري آھي جتي مداخلت ٿئي ٿي. 2005 ۾، جڏهن dm-crypt جو موجوده قطار تي ٻڌل آپريٽنگ ماڊل لاڳو ڪيو ويو، Crypto API اڃا غير مطابقت رکندڙ نه هو. Crypto API کان پوءِ هڪ غير مطابقت واري عمل واري ماڊل ڏانهن منتقل ڪيو ويو، لازمي طور تي ٻٽي تحفظ استعمال ٿيڻ شروع ڪيو. ڪرنل اسٽيڪ جي استعمال کي بچائڻ لاءِ قطارون پڻ متعارف ڪرايون ويون، پر 2014 ۾ ان جي واڌ کان پوءِ، اهي اصلاحون پنهنجو لاڳاپو وڃائي ويٺيون. هڪ اضافي قطار "kcryptd_io" متعارف ڪرايو ويو آهي رڪاوٽ کي ختم ڪرڻ لاءِ جنهن جي نتيجي ۾ ميموري مختص ڪرڻ جي انتظار ۾ جڏهن درخواستن جو هڪ وڏو تعداد اچي ٿو. 2015 ۾، هڪ اضافي ترتيب ڏيڻ وارو مرحلو متعارف ڪرايو ويو، ڇاڪاڻ ته ملٽي پروسيسر سسٽم تي انڪرپشن درخواستون مڪمل ٿي سگهن ٿيون (ڊسڪ تائين ترتيب واري رسائي جي بدران، رسائي بي ترتيب ترتيب ۾ ڪئي وئي هئي، ۽ CFQ شيڊولر موثر طريقي سان ڪم نه ڪيو). في الحال، جڏهن SSD ڊرائيو استعمال ڪندي، ترتيب ڏيڻ ان جي معني وڃائي ڇڏيو آهي، ۽ CFQ شيڊولر هاڻي ڪرنل ۾ استعمال نه ڪيو ويو آهي.

انهي ڳالهه تي غور ڪندي ته جديد ڊرائيو تيز ۽ سمارٽ ٿي چڪا آهن، لينڪس ڪنييل ۾ وسيلن جي ورڇ واري نظام کي نظر ثاني ڪئي وئي آهي ۽ ڪجهه سب سسٽم کي ٻيهر ترتيب ڏنو ويو آهي، Cloudflare انجنيئر شامل ڪيو ويو dm-crypt وٽ ھڪڙو نئون آپريٽنگ موڊ آھي جيڪو غير ضروري قطارن ۽ غير مطابقت واري ڪالن جي استعمال کي ختم ڪري ٿو. موڊ هڪ الڳ پرچم "force_inline" طرفان فعال ڪيو ويو آهي ۽ dm-crypt کي هڪ سادي پراکسي جي صورت ۾ آڻيندو آهي جيڪو ايندڙ درخواستن کي انڪرپٽ ۽ ڊيڪرپٽ ڪري ٿو. Crypto API سان رابطي کي بهتر ڪيو ويو آهي واضح طور تي انڪريپشن الگورتھم چونڊڻ سان جيڪي هم وقت ساز موڊ ۾ هلن ٿا ۽ درخواست جي قطارن کي استعمال نٿا ڪن. Crypto API سان هم وقت ڪم ڪرڻ لاءِ اتي موجود هو تجويز ڪيل ھڪڙو ماڊل جيڪو توھان کي FPU/AES-NI استعمال ڪرڻ جي اجازت ڏئي ٿو تيزيءَ لاءِ ۽ سڌو سنئون انڪرپشن ۽ ڊيڪرپشن جي درخواستن کي اڳتي وڌائي ٿو.

نتيجي طور، جڏهن ريم ڊسڪ کي جانچيو ويو، اهو ممڪن هو ته dm-crypt جي ڪارڪردگي کي ٻيڻو ڪرڻ کان وڌيڪ - ڪارڪردگي 294 MB/s (2 x 147 MB/s) کان وڌي 640 MB/s تائين، جيڪا تمام ويجھو آهي. بيئر انڪرپشن جي ڪارڪردگي (696 MB /s).

Cloudflare پيچ تيار ڪيا آهن جيڪي ڊرامي طور تي لينڪس ۾ ڊسڪ انڪرپشن کي تيز ڪن ٿا

Cloudflare پيچ تيار ڪيا آهن جيڪي ڊرامي طور تي لينڪس ۾ ڊسڪ انڪرپشن کي تيز ڪن ٿا

Cloudflare پيچ تيار ڪيا آهن جيڪي ڊرامي طور تي لينڪس ۾ ڊسڪ انڪرپشن کي تيز ڪن ٿا

جڏهن حقيقي سرورز تي لوڊ جي جانچ ڪئي وئي، نئين عمل کي بغير انڪرپشن کان بغير هلائڻ واري ترتيب جي تمام ويجهو ڪارڪردگي ڏيکاري ٿي، ۽ Cloudflare ڪيش سان سرورز تي انڪرپشن کي چالو ڪرڻ جو جواب جي رفتار تي ڪو اثر نه پيو. مستقبل ۾، Cloudflare تيار ڪيل پيچز کي مکيه لينڪس ڪنيل ڏانهن منتقل ڪرڻ جو ارادو رکي ٿو، پر ان کان اڳ انهن کي ٻيهر ڪم ڪرڻ جي ضرورت پوندي، ڇاڪاڻ ته اهي هڪ مخصوص لوڊ لاء بهتر ڪيا ويا آهن ۽ ايپليڪيشن جي سڀني علائقن کي نه ڍڪيندا آهن، مثال طور، گهٽ ۾ گهٽ انڪرپشن. - پاور ايمبيڊڊ ڊوائيسز.

Cloudflare پيچ تيار ڪيا آهن جيڪي ڊرامي طور تي لينڪس ۾ ڊسڪ انڪرپشن کي تيز ڪن ٿا

جو ذريعو: opennet.ru

تبصرو شامل ڪريو