ing Pangembang Cloudflare wis dirilis informasi babagan pakaryan sing lagi ditindakake kanggo ngoptimalake kinerja enkripsi disk ing kernel Linux, sing diarani wis siyap tambalan kanggo subsistem dm-crypt lan Crypto API.
Karo, tes sintetis diidini ngganda bandwidth kanggo maca lan nulis, uga latency setengah. Nalika nyoba ing mesin nyata, overhead enkripsi dikurangi dadi meh level sing katon nalika nggarap disk tanpa nggunakake enkripsi data.
Kapentingan kanggo nambah enkripsi data ing disk amarga Cloudflare nggunakake dm-crypt kanggo ndhelik data ing drive sing digunakake kanggo cache isi ing CDN. Dm-crypt bisa digunakake ing level piranti blok lan ndhelikake panjaluk I / O kanggo nulis lan ndekripsi permintaan sing diwaca, dadi lapisan ing antarane piranti blok lan driver sistem file.
Kanggo ngevaluasi kinerja dm-crypt nggunakake paket test I / O sing fleksibel, se ngukur kacepetan nggarap partisi sing dienkripsi lan ora dienkripsi ing disk RAM sing ana ing RAM kanggo ngilangi fluktuasi kinerja disk.
Kanggo partisi sing ora dienkripsi, maca lan nulis kinerja tetep ana ing 1126MB / s, nanging nalika enkripsi diuripake, kacepetan mudhun 7 kali dadi 147MB / s.
Wiwitane, panggunaan algoritma sing ora efisien dicurigai ing sistem kriptografi kernel. Nanging tes nggunakake algoritma aes-xts sing luwih cepet kanthi 256 tombol enkripsi, sing prestasine nalika mbukak "pathokan cryptsetup" luwih saka kaping pindho luwih dhuwur tinimbang asil sing dipikolehi nalika nyoba disk RAM.
Eksperimen kasebut nganggo panji dm-crypt kanggo nyetel kinerja ora bisa digunakake: Nalika gendéra –perf-same_cpu_crypt digunakake, pagelaran malah mudhun dadi 136MB / s, lan nalika gendera –perf-submit_from_crypt_cpus digunakake, mula mung mundhak dadi 166MB / s.
Analisis sing luwih jero saka logika karya nuduhake manawa dm-crypt ora gampang kaya kayane.
Nalika panjaluk nulis ditampa saka pengontrol FS, dm-crypt ora langsung diolah, nanging dilebokake ing antrian "kcryptd", sing durung dingerteni, nanging nalika ana wektu sing pas. Saka antrian, panjaluk dikirim menyang API Crypto Linux kanggo enkripsi.
Nalika maca dhisik, antrian dm-crypt "kcryptd_io" panjaluk kanggo nampa data saka unit kasebut. Sawise kanggo sawetara wektu, data kasedhiya lan lagi antri "kcryptd" kanggo dekripsi.
Kcryptd ngirim panjaluk menyang API Enkripsi Linux, sing ndhelikake informasi kasebut kanthi sinkron. Panjaluk ora mesthi liwat kabeh antrian, nanging ing kasus paling ala, panjaluk nulis disetel ing antrian nganti 4 kaping lan panjaluk diwaca nganti kaping 3. Saben kenek ing buntut nyebabake telat, sing dadi alasan utama nyuda kinerja dm-crypt sing signifikan.
Ngelingi manawa drive modern wis dadi luwih cepet lan luwih cerdas, sistem alokasi sumber daya ing kernel Linux wis direvisi lan sawetara subsistem wis dirancang ulang, Para insinyur Cloudflare wis nambahake mode operasi anyar menyang dm-crypt, ngilangi panggunaan antrian tambahan lan telpon asinkron.
Mode kasebut diaktifake kanthi panji "force_inline" sing kapisah lan nggawa dm-crypt dadi proksi sederhana sing ndhelik lan mbatalake panjaluk sing mlebu. Interaksi karo Crypto API wis dioptimalake liwat algoritma enkripsi sing jelas Dheweke operate ing mode sinkron lan ora nggunakake antrian panjaluk.
Nalika nyoba mbukak ing server nyata, implementasine anyar nuduhake kinerja sing cedhak banget karo konfigurasi sing bisa digunakake tanpa enkripsi, lan kalebu enkripsi ing server kanthi cache Cloudflare ora mengaruhi kacepetan respons.
Mbesuk, Cloudflare ngrencanakake mindhah tambalan sing wis disiyapake menyang kernel Linux utama, nanging sadurunge kudu diowahi, amarga dioptimalake kanggo momotan tartamtu lan ora nutupi kabeh bidang aplikasi.
sumber: https://blog.cloudflare.com
Dadi pisanan komentar