Cloudflare часпакҳоро омода кардааст, ки рамзгузории дискро дар Linux ба таври назаррас суръат мебахшанд

Таҳиягарон аз Cloudflare гуфт дар бораи иҷрои корҳо оид ба оптимизатсияи иҷрои рамзгузории диск дар ядрои Linux. Дар натиҷа, онҳо омода карда шуданд часпакхо барои зерсистема dm-crypt ва Crypto API, ки имкон дод, ки қобилияти хондан ва навиштан дар санҷиши синтетикӣ ду баробар зиёд карда шавад, инчунин таъхири таъхирро ду баробар кам кунад. Вақте ки дар сахтафзор воқеӣ санҷида шуд, сарбории рамзгузорӣ тақрибан ба дараҷае коҳиш ёфт, ки ҳангоми кор бо диск бидуни рамзгузории маълумот мушоҳида мешавад.

Cloudflare dm-crypt-ро барои рамзгузории маълумот дар дастгоҳҳои нигоҳдорӣ, ки барои кэш кардани мундариҷа дар CDN истифода мешавад, истифода мебарад. Dm-crypt дар сатҳи дастгоҳи блок фаъолият мекунад ва дархостҳои навиштан/Хорро рамзгузорӣ мекунад ва дархостҳои хонданро рамзкушоӣ мекунад, ки ҳамчун қабат байни дастгоҳи блок ва драйвери системаи файлӣ амал мекунад.

Cloudflare часпакҳоро омода кардааст, ки рамзгузории дискро дар Linux ба таври назаррас суръат мебахшанд

Барои баҳо додан ба кори DM-crypt бо истифода аз баста Озмоишгари чандири вуруд/чор Мо суръати кор бо қисмҳои рамзгузоришуда ва рамзнашударо дар диски RAM, ки дар RAM ҷойгир аст, чен кардем, то тағирёбии кори дискро бартараф созем ва ба иҷрои код тамаркуз кунем. Барои қисмҳои рамзнашуда, иҷрои хондан ва навиштан 1126 МБ/с боқӣ монд, аммо ҳангоми фаъол кардани рамзгузорӣ суръат коҳиш ёфт дар 7 ва 147 МБ/с-ро ташкил дод.

Дар аввал, шубҳа дар бораи истифодаи алгоритмҳои бесамар дар криптосистемаи ядро ​​​​ба миён омад. Аммо санҷишҳо алгоритми зудтарин, aes-xts бо 256 калиди рамзгузориро истифода бурданд, ки иҷрои он ҳангоми иҷрои "бенчмарк cryptsetup" аз натиҷае, ки ҳангоми санҷиши диски RAM гирифта шудааст, ду маротиба зиёдтар аст. Таҷрибаҳо бо парчамҳои dm-crypt барои танзими кор натиҷа надоданд: ҳангоми истифодаи парчами “--perf-same_cpu_crypt”, иҷроиш ҳатто то 136 МБ/с коҳиш ёфт ва ҳангоми муайян кардани парчами “--perf-submit_from_crypt_cpus” он танҳо афзоиш ёфт. то 166 МБ/с.

Таҳлили амиқтари мантиқи амалиётӣ нишон дод, ки dm-crypt он қадар содда нест - вақте ки дархости навиштан аз драйвери FS меояд, dm-crypt онро фавран коркард намекунад, балки онро дар навбати "kcryptd" мегузорад, ки дарҳол нест, балки дар лаҳзаи муносиб. Аз навбат дархост ба Linux Crypto API барои рамзгузорӣ фиристода мешавад. Аммо азбаски Crypto API модели асинхронии иҷроишро истифода мебарад, рамзгузорӣ низ фавран иҷро намешавад, балки навбати дигарро давр мезанад. Пас аз анҷоми рамзгузорӣ, dm-crypt метавонад кӯшиш кунад, ки дархостҳои дар интизори навиштанро бо истифода аз дарахти ҷустуҷӯ ҷудо кунад сурх-сиёх. Дар охир, риштаи ҷудогонаи ядро ​​​​бо таъхири муайян, дархостҳои ҷамъшудаи I/O-ро гирифта, ба стеки дастгоҳи блок мефиристад.

Cloudflare часпакҳоро омода кардааст, ки рамзгузории дискро дар Linux ба таври назаррас суръат мебахшанд

Ҳангоми хондан, dm-crypt аввал дархостро ба навбати "kcryptd_io" барои гирифтани маълумот аз диск илова мекунад. Пас аз чанд вақт, маълумот дастрас мешавад ва дар навбати "kcryptd" барои рамзкушоӣ ҷойгир карда мешавад.
Kcryptd ба Linux Crypto API дархост мефиристад, ки маълумотро ба таври асинхронӣ рамзкушоӣ мекунад. Дархостҳо на ҳама вақт аз тамоми навбатҳо мегузаранд, аммо дар бадтарин ҳолат, дархости навиштан то 4 маротиба ва дархости хондан то 3 маротиба дар навбат меистад. Хар як зарба ба навбат боиси таъхир мегардад, ки ин сабаби асосии кам шудани кори дм-крипт мебошад.

Истифодаи навбатхо аз зарурати кор дар шароите, ки дар он чо танаффус ба амал меояд. Дар соли 2005, вақте ки модели амалиётии ҷории dm-crypt ба навбат амалӣ карда шуд, API Crypto ҳанӯз асинхронӣ набуд. Пас аз он ки Crypto API ба модели иҷроияи асинхронӣ интиқол дода шуд, аслан муҳофизати дукарата истифода мешуд. Навбатҳо инчунин барои сарфаи истеъмоли стеки ядро ​​ҷорӣ карда шуданд, аммо пас аз афзоиши он дар соли 2014, ин оптимизатсияҳо аҳамияти худро гум карданд. Навбати иловагии "kcryptd_io" барои бартараф кардани монеа ҷорӣ карда шуд, ки дар натиҷа интизори тақсимоти хотира ҳангоми ворид шудани шумораи зиёди дархостҳо мешавад. Дар соли 2015 марҳилаи иловагии ҷудокунӣ ҷорӣ карда шуд, зеро дархостҳои рамзгузорӣ дар системаҳои бисёрпросессорӣ метавонанд аз кор анҷом дода шаванд (ба ҷои дастрасии пайдарпай ба диск, дастрасӣ бо тартиби тасодуфӣ сурат гирифт ва ҷадвали CFQ самаранок кор намекард). Дар айни замон, ҳангоми истифодаи дискҳои SSD, ҷудокунӣ маънои худро гум кардааст ва ҷадвали CFQ дигар дар ядро ​​​​истифода намешавад.

Бо дарназардошти он, ки дискҳои муосир тезтар ва оқилтар шудаанд, системаи тақсимоти захираҳо дар ядро ​​​​Linux аз нав дида баромада шуд ва баъзе зерсистемаҳо аз нав тарҳрезӣ шуданд, муҳандисони Cloudflare илова намуд dm-crypt дорои реҷаи нави корӣ мебошад, ки истифодаи навбатҳои нолозим ва зангҳои асинхронро аз байн мебарад. Режим бо парчами алоҳидаи "force_inline" фаъол карда мешавад ва dm-crypt -ро ба шакли прокси оддӣ меорад, ки дархостҳои воридотро рамзгузорӣ ва рамзкушо мекунад. Ҳамкорӣ бо Crypto API тавассути интихоби возеҳ алгоритмҳои рамзгузорӣ, ки дар реҷаи синхронӣ кор мекунанд ва навбатҳои дархостро истифода намебаранд, оптимизатсия карда шудааст. Барои синхронӣ кор кардан бо API Crypto вуҷуд дошт пешниҳод кардааст модуле, ки ба шумо имкон медиҳад, ки FPU/AES-NI-ро барои суръатбахшӣ истифода баред ва дархостҳои рамзгузорӣ ва рамзкушоиро мустақиман интиқол диҳед.

Дар натиҷа, ҳангоми санҷиши диски RAM имкон дошт, ки кори dm-crypt бештар аз ду баробар зиёд карда шавад - иҷроиш аз 294 МБ/с (2 х 147 МБ/с) то 640 МБ/с афзуд, ки ин ба хеле наздик аст. иҷрои рамзгузории луч (696 MB / с).

Cloudflare часпакҳоро омода кардааст, ки рамзгузории дискро дар Linux ба таври назаррас суръат мебахшанд

Cloudflare часпакҳоро омода кардааст, ки рамзгузории дискро дар Linux ба таври назаррас суръат мебахшанд

Cloudflare часпакҳоро омода кардааст, ки рамзгузории дискро дар Linux ба таври назаррас суръат мебахшанд

Ҳангоми санҷиши сарборӣ дар серверҳои воқеӣ, татбиқи нав иҷроишро ба конфигуратсияи бидуни рамзгузорӣ хеле наздик нишон дод ва имкон додани рамзгузорӣ дар серверҳо бо кэши Cloudflare ба суръати посух таъсире надошт. Дар оянда, Cloudflare нақша дорад, ки часбҳои омодашударо ба ядрои асосии Linux интиқол диҳад, аммо пеш аз ин онҳо бояд аз нав кор карда шаванд, зеро онҳо барои сарбории мушаххас оптимизатсия карда шудаанд ва ҳама соҳаҳои барномаро дар бар намегиранд, масалан, рамзгузорӣ дар сатҳи паст - дастгоҳҳои дарунсохташуда.

Cloudflare часпакҳоро омода кардааст, ки рамзгузории дискро дар Linux ба таври назаррас суръат мебахшанд

Манбаъ: opennet.ru

Илова Эзоҳ