Pangembang saka Cloudflare
Cloudflare nggunakake dm-crypt kanggo ndhelik data ing piranti panyimpenan sing digunakake kanggo cache isi ing CDN. Dm-crypt makaryakke ing tingkat piranti pamblokiran lan encrypts nulis I / O panjalukan lan decrypts maca panjalukan, tumindak minangka lapisan antarane piranti pemblokiran lan driver sistem file.
Kanggo ngevaluasi kinerja dm-crypt nggunakake paket
Ing wiwitan, kecurigaan muncul babagan panggunaan algoritma sing ora efisien ing sistem kripto kernel. Nanging tes nggunakake algoritma paling cepet, aes-xts, karo 256 tombol enkripsi, kang kinerja nalika mlaku "cryptsetup pathokan" luwih saka kaping pindho minangka asil sing dijupuk nalika testing RAM disk. Eksperimen karo panji dm-crypt kanggo tuning kinerja ora ngasilake asil: nalika nggunakake gendera "--perf-same_cpu_crypt", kinerja malah mudhun dadi 136 MB / s, lan nalika nemtokake gendera "--perf-submit_from_crypt_cpus" mundhak. mung kanggo 166 MB / s.
Analisis sing luwih jero babagan logika operasi nuduhake yen dm-crypt ora kaya prasaja - nalika panjaluk nulis teka saka driver FS, dm-crypt ora langsung diproses, nanging dilebokake ing antrian "kcryptd", sing ora parsed langsung, nanging nalika trep wayahe. Saka antrian, panjalukan dikirim menyang Linux Crypto API kanggo nindakake enkripsi. Nanging amarga API Crypto nggunakake model eksekusi bedo, enkripsi uga ora langsung ditindakake, nanging ngliwati antrian liyane. Sawise enkripsi rampung, dm-crypt bisa nyoba ngurutake panjaluk nulis sing ditundha nggunakake wit telusuran
Nalika maca, dm-crypt pisanan nambah panjalukan menyang antrian "kcryptd_io" kanggo nampa data saka drive. Sawise sawetara wektu, data kasedhiya lan diselehake ing antrian "kcryptd" kanggo dekripsi.
Kcryptd ngirim panjalukan menyang Linux Crypto API, sing decrypts informasi bedo. Panyuwunan ora tansah ngliwati kabeh antrian, nanging ing skenario paling awon, panjalukan nulis rampung ing antrian nganti kaping 4, lan panjalukan diwaca nganti kaping 3. Saben tekan antrian nyebabake wektu tundha, sing dadi alasan utama kanggo nyuda kinerja dm-crypt.
Panggunaan antrian amarga kudu kerja ing kahanan sing ana gangguan. Ing taun 2005, nalika model operasi basis antrian dm-crypt saiki dileksanakake, API Crypto durung asynchronous. Sawise API Crypto ditransfer menyang model eksekusi bedo, proteksi kaping pindho wiwit digunakake. Antrian uga dikenalake kanggo ngirit konsumsi tumpukan kernel, nanging sawise nambah ing 2014, optimasi kasebut ilang relevansi. Antrian tambahan "kcryptd_io" dienalake kanggo ngatasi bottleneck sing nyebabake alokasi memori nalika akeh panjaluk teka. Ing 2015, fase ngurutake tambahan dienalake, amarga panjaluk enkripsi ing sistem multiprosesor bisa rampung tanpa urutan (tinimbang akses urutan menyang disk, akses ditindakake kanthi acak, lan panjadwal CFQ ora bisa digunakake kanthi efisien). Saiki, nalika nggunakake drive SSD, ngurutake wis ilang makna, lan panjadwal CFQ ora digunakake maneh ing kernel.
Ngelingi drive modern dadi luwih cepet lan luwih pinter, sistem distribusi sumber daya ing kernel Linux wis direvisi lan sawetara subsistem wis didesain ulang, insinyur Cloudflare
AkibatΓ©, nalika nyoba disk RAM, bisa luwih saka kaping pindho kinerja dm-crypt - kinerja tambah saka 294 MB / s (2 x 147 MB ββ/ s) kanggo 640 MB / s, kang banget cedhak. kinerja enkripsi gundhul (696 MB / s).
Nalika nguji beban ing server nyata, implementasine anyar nuduhake kinerja sing cedhak banget karo konfigurasi sing mlaku tanpa enkripsi, lan ngaktifake enkripsi ing server kanthi cache Cloudflare ora ana pengaruh ing kacepetan respon. Ing mangsa ngarep, Cloudflare ngrancang kanggo nransfer patch sing disiapake menyang kernel Linux utama, nanging sadurunge kudu digarap maneh, amarga dioptimalake kanggo beban tartamtu lan ora nutupi kabeh area aplikasi, contone, enkripsi ing ngisor. - piranti ditempelake daya.
Source: opennet.ru