کلاوډ فلیر پیچونه چمتو کړي چې په ډراماتیک ډول په لینکس کې د ډیسک کوډ کول ګړندي کوي

د Cloudflare څخه پراختیا کونکي وویل په لینکس کرنل کې د ډیسک کوډ کولو فعالیت غوره کولو لپاره د کار ترسره کولو په اړه. د پایلې په توګه، دوی چمتو شوي پیچونه د فرعي سیسټم لپاره dm-crypt او کریپټو API، کوم چې دا ممکنه کړې چې په مصنوعي ازموینې کې د لوستلو او لیکلو له لارې دوه چنده زیات کړي، او همدارنګه نیمه ځنډ. کله چې په ریښتیني هارډویر کې ازمول شوي ، د کوډ کولو سر شاوخوا نږدې کچې ته راټیټ شوی و کله چې د ډیټا کوډ کولو پرته د ډیسک سره کار کولو پرمهال مشاهده شوې.

Cloudflare په CDN کې د مینځپانګې زیرمه کولو لپاره کارول شوي ذخیره وسیلو کې ډیټا کوډ کولو لپاره dm-crypt کاروي. Dm-crypt د بلاک وسیلې په کچه کار کوي او کوډ کوي I/O غوښتنې لیکي او د لوستلو غوښتنې ډیکریټ کوي ، د بلاک وسیلې او فایل سیسټم ډرایور ترمینځ د پرت په توګه عمل کوي.

کلاوډ فلیر پیچونه چمتو کړي چې په ډراماتیک ډول په لینکس کې د ډیسک کوډ کول ګړندي کوي

د کڅوړې په کارولو سره د 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 غوښتنې راټولوي او د بلاک وسیلې سټیک ته یې لیږي.

کلاوډ فلیر پیچونه چمتو کړي چې په ډراماتیک ډول په لینکس کې د ډیسک کوډ کول ګړندي کوي

کله چې لوستل کیږي، dm-crypt لومړی د ډرایو څخه ډاټا ترلاسه کولو لپاره د "kcryptd_io" کتار کې غوښتنه اضافه کوي. د یو څه وخت وروسته، ډاټا شتون لري او د کوډ کولو لپاره د "kcryptd" کتار کې ځای پرځای کیږي.
Kcryptd د لینکس کریپټو API ته غوښتنه لیږي ، کوم چې معلومات په غیر متناسب ډول ډیکریټ کوي. غوښتنې تل د ټولو قطارونو څخه نه تیریږي، مګر په بدترین حالت کې، د لیکلو غوښتنه تر 4 ځله پورې په کتارونو کې پای ته رسیږي، او د لوستلو غوښتنه تر 3 ځله پورې. قطار ته هر ټک د ځنډ لامل کیږي، کوم چې د dm-crypt فعالیت کې د پام وړ کمښت اصلي دلیل دی.

د قطارونو کارول په داسې شرایطو کې د کار کولو اړتیا له امله ده چیرې چې خنډونه پیښیږي. په 2005 کې، کله چې د dm-crypt اوسنی قطار پر بنسټ عملیاتي ماډل پلي شو، د کریپټو 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).

کلاوډ فلیر پیچونه چمتو کړي چې په ډراماتیک ډول په لینکس کې د ډیسک کوډ کول ګړندي کوي

کلاوډ فلیر پیچونه چمتو کړي چې په ډراماتیک ډول په لینکس کې د ډیسک کوډ کول ګړندي کوي

کلاوډ فلیر پیچونه چمتو کړي چې په ډراماتیک ډول په لینکس کې د ډیسک کوډ کول ګړندي کوي

کله چې په ریښتیني سرورونو کې د بار ازموینه کول ، نوي پلي کول د کوډ کولو پرته د چلولو ترتیب ته خورا نږدې فعالیت ښودلی ، او د کلاوډ فلیر کیچ سره په سرورونو کې د کوډ کولو وړ کول د غبرګون سرعت باندې هیڅ اغیزه نلري. په راتلونکي کې ، کلاوډ فلیر پلان لري چې چمتو شوي پیچونه اصلي لینکس کرنل ته انتقال کړي ، مګر مخکې لدې چې دوی بیا کار کولو ته اړتیا ولري ، ځکه چې دوی د ځانګړي بار لپاره مطلوب دي او د غوښتنلیک ټولې ساحې نه پوښي ، د مثال په توګه ، په ټیټ کې کوډ کول - د بریښنا سرایت شوي وسایل.

کلاوډ فلیر پیچونه چمتو کړي چې په ډراماتیک ډول په لینکس کې د ډیسک کوډ کول ګړندي کوي

سرچینه: opennet.ru

Add a comment