Iżviluppaturi minn Cloudflare
Cloudflare juża dm-crypt biex jikkripta d-dejta fuq drajvs użati għall-cache tal-kontenut fuq is-CDN. Dm-crypt jaħdem fil-livell tal-apparat tal-blokk u jikkripta t-talbiet tal-kitba tal-I/O u jiddeċifra t-talbiet tal-qari, li jaġixxi bħala saff bejn l-apparat tal-blokk u s-sewwieq tas-sistema tal-fajls.
Biex tevalwa l-prestazzjoni ta 'dm-crypt billi tuża l-pakkett
Inizjalment, kien hemm suspett li jintużaw algoritmi ineffiċjenti fil-kriptosistema tal-qalba. Iżda t-testijiet użaw l-algoritmu aes-xts l-aktar mgħaġġel b'256 ċavetta ta 'encryption, li l-prestazzjoni tagħhom meta tħaddem il-"punt ta' referenza cryptsetup" hija aktar minn darbtejn ogħla mir-riżultat miksub meta jiġi ttestjat id-diska RAM. Esperimenti bil-bnadar dm-crypt għall-irfinar tal-prestazzjoni ma taw l-ebda riżultat: meta użaw il-bandiera "--perf-same_cpu_crypt", il-prestazzjoni saħansitra naqset għal 136 MB/s, u meta l-bandiera "--perf-submit_from_crypt_cpus" kienet speċifikat, żdied biss għal 166 MB/s.
Analiżi aktar profonda tal-loġika tax-xogħol uriet li dm-crypt mhix sempliċi daqs kemm tidher - meta tasal talba għall-kitba mis-sewwieq FS, dm-crypt ma tipproċessahx immedjatament, iżda tpoġġiha fil-kju "kcryptd" , li mhux parsed immedjatament, iżda fuq l-okkorrenza mument konvenjenti. Mill-kju, it-talba tintbagħat lill-Linux Crypto API biex twettaq encryption. Iżda peress li l-API Crypto juża mudell ta 'eżekuzzjoni mhux sinkroniku, l-encryption lanqas ma titwettaq immedjatament, iżda billi tevita kju ieħor. Wara li jitlesta l-encryption, dm-crypt jista' jipprova jsolvi t-talbiet pendenti għall-kitba billi juża siġra tat-tiftix
Meta taqra l-ewwel, dm-crypt iżid talba mal-kju "kcryptd_io" biex tikseb data mid-drajv. Wara xi żmien, id-dejta ssir disponibbli u titqiegħed fil-kju "kcryptd" għad-deċifrar.
Kcryptd jibgħat talba lill-Linux Crypto API, li jiddeċifra l-informazzjoni b'mod asinkroniku. It-talbiet mhux dejjem jgħaddu mill-kjuwijiet kollha, iżda fl-agħar xenarju tal-każ, talba għall-kitba tissetilja fi kjuwijiet sa 4 darbiet, u talba għall-qari sa 3 darbiet. Kull hit fil-kju jintroduċi dewmien, li huwa r-raġuni ewlenija għad-degradazzjoni sinifikanti tal-prestazzjoni tad-dm-crypt.
L-użu tal-kjuwijiet huwa dovut għall-ħtieġa li taħdem fil-kundizzjonijiet ta 'interruzzjonijiet. Fl-2005, meta l-mudell attwali dm-crypt ibbażat fuq kju ġie implimentat, il-Crypto API kien għadu mhux asinkroniku. Wara t-trasferiment tal-Crypto API għal mudell ta 'eżekuzzjoni mhux sinkroniku, essenzjalment bdiet tiġi applikata protezzjoni doppja. Ġew introdotti wkoll kjuwijiet biex jiffrankaw il-konsum tal-munzell tal-qalba, iżda wara ż-żieda tiegħu fl-2014, id-dejta tal-ottimizzazzjoni tilfet ir-rilevanza tagħha. Kju addizzjonali "kcryptd_io" ġie introdott biex jingħeleb konġestjoni li tikkawża stennija ta 'allokazzjoni tal-memorja meta jidħlu numru kbir ta' talbiet. Fl-2015, ġiet introdotta addizzjonalment fażi ta' għażla, peress li t-talbiet ta' kriptaġġ fuq sistemi multiproċessuri setgħu jitlestew barra mill-ordni (minflok aċċess sekwenzjali għad-diska, l-aċċess sar f'ordni każwali, u l-iskedar tas-CFQ ma ħadimx b'mod effiċjenti). Bħalissa, l-issortjar tilef it-tifsira tiegħu ma 'SSDs, u l-iskedar CFQ m'għadux jintuża fil-kernel.
Minħabba li drajvs moderni saru aktar mgħaġġla u aktar intelliġenti, is-sistema ta 'allokazzjoni tar-riżorsi fil-kernel tal-Linux ġiet riveduta u xi sottosistemi ġew iddisinjati mill-ġdid, l-inġiniera ta' Cloudflare
Bħala riżultat, meta ttestjaw disk RAM, irnexxielna nirduppjaw il-prestazzjoni tad-dm-crypt - il-prestazzjoni żdiedet minn 294 MB / s (2 x 147 MB / s) għal 640 MB / s, li hija qrib ħafna għall-prestazzjoni ta 'encryption bare (696 MB /s).
Fl-ittestjar tat-tagħbija fuq servers reali, l-implimentazzjoni l-ġdida wriet prestazzjoni qrib ħafna tal-konfigurazzjoni li taħdem mingħajr encryption, u li tippermetti encryption fuq servers b'Cloudflare cache ma affettwa l-veloċità tar-rispons bl-ebda mod. Fil-futur, Cloudflare jippjana li jirrilaxxa l-irqajja ppreparati fil-kernel prinċipali tal-Linux, iżda qabel dan se jkollhom bżonn jerġgħu jinħadmu, peress li huma ottimizzati għal ċertu ammont ta 'xogħol u ma jkoprux l-oqsma kollha ta' applikazzjoni, pereżempju, encryption fuq baxx. -apparat inkorporat tal-enerġija.
Sors: opennet.ru