Cloudflare paravit inaequaliter quod dramatically accelerare disci encryption in Linux

Tincidunt ex Cloudflare nuntiatum de opere ad optimize encryptionem discri faciendam in nucleo Linux. Quam ob rem paraverunt pittacia passim disposita nam subsystem m-criptam et Crypto API, quod plusquam duplicavit throughput ad legendi et scribendi syntheticam probationem, ac etiam latentiam minuendi. Cum probatio in hardware reali, caput ab encryptione redactum est ad fere planum observatum, cum disco laborat sine encryptione data.

Cloudflare utitur dm-crypt ad encrypt notitia in impellit utendum ad contentum in CDN. Dm-crypt operatur in gradu fabricae et encryptae I/O petitiones scribe et decryptas postulationes lege, ut iacuit inter fabricam et tabellam exactoris.

Cloudflare paravit inaequaliter quod dramatically accelerare disci encryption in Linux

Ad aestimare opus dni-crypt utens in sarcina Flexibile I/O probatorem Celeritas operandi cum partitionibus encryptatis et unencryptatis in orbe RAMO sito in RAM mensurata est ad disci ambigua perficientur tollendas et in codice perficiendi focus. Partitiones enim unencryptae, lege et scriptioni perficiendae ad 1126 MB / s servatae sunt, sed cum encryption permissum est, celeritas minuitur. In interdum 7 et ad summam 147 MB/s.

Primo, suspicio inhabilis algorithms adhibendi in cryptosystematis nucleo. Sed probationes algorithmus cum 256 encryption clavium encryption celerrime adhibita sunt, cuius effectus, cum "cryptsetup Probatio" currit, plus quam duplo altior est quam eventus consecutus est cum orbis RAM probatio. Experimenta cum vexillis dromedarii ad perficiendum tuning nullum exitum dabant: cum vexillum "-perf-same_cpu_crypt" utens, effectus etiam ad 136 MB/s decrevit, et cum vexillum "-perf-submit_from_crypt_cpus" erat. specificata, tantum ad 166 MB/s aucta est.

Penitius analysis logicae laboris ostendit dm-cryptam non tam simplex esse quam videtur - cum petitio scribentis ab exactore FS recipitur, dm-crypt non statim processit, sed in "kcryptd" queue collocat. quod non statim parsed, sed eventum dendae. A queue, petitio Linux Crypto API mittitur ad encryptionem faciendam. Sed quia Crypto API utitur exemplari asynchrono exsecutionis, encryption etiam non statim fit, sed aliam queue praeteriens. Post encryption completum est, dm-cryptas scribere tentare potest pendenti libellos interrogationes utens arbore -niger ruber. In fine, filo nucleo separato rursus, cum mora quadam, colligit congesta i/o preces et emittit eas ad stipitem fabrica acervum.

Cloudflare paravit inaequaliter quod dramatically accelerare disci encryption in Linux

Cum primum legerem, dm-crypt rogationem ad "kcryptd_io" addit queue ut notitias e coegi. Post aliquod tempus, notitia prompta fit et in "kcryptd" queue pro decryptione ponitur.
Kcryptd rogatu Linux Crypto API mittit, quod informationes asynchronously decryptas. Petitiones non semper per omnes queues transeunt, sed in missione gravissima, petitio scribe in queues usque ad 4 tempora consistit, et petitio legitur usque ad tertium decimum. Singulis hit in queue moras infert, quae sunt causa clavis significantis degradationis dm-cryptae.

Usus queues ob necessitatem operandi in conditionibus interpellationum. Anno 2005, cum exemplar hodiernae queue-dice-cryptae ad effectum adductum est, Crypto API nondum asynchronum erat. Post translationem Crypto API ad exemplar asynchronum exsecutionis, per se duplex praesidium applicari coepit. Queues etiam ad consumptionem acervi nuclei conservandam introducti sunt, sed postquam auctum est anno 2014, notitia optimizationis momentum suum amisit. Additum "kcryptd_io" queue introductum est ad vincendum bottleneck qui memoriam causarum destinatio observat cum numerus petitionum intrabit. Anno 2015, tempus genus praeterea introductum est, cum encryption petitiones in systemata multiprocessoris extra ordinem perfici possent (pro accessu discri sequentialis, accessus in temere ordinem fiebat, et CFQ schedula efficaciter operabatur). In statu, voluptua significationem suam cum SSDs amisit, et CFQ schedula in nucleo iam non adhibetur.

Cum moderni agitationes citius et smarter factae sunt, destinatio subsidii systematis in nucleo Linux recognitum et nonnulla subsystemata redintegrata, fabrum Cloudflare additae dm-cripta novum modum operandi habet, ab usu queues supervacuos et asynchronos vocat. Modus potest per vexillum separatum "force_inline" et dm-cryptam ad formam simplicis procuratoris quae encryptas et decryptas petitionum advenientium efficit. Commercium cum Crypto API optimized est per encryptionem algorithmorum quae in synchrono modo operantur et petitioni non utuntur stantibus anteponere. Nam opus synchronum cum Crypto API was propositus moduli qui permittit ut FPU / AES-NI utatur ad accelerationem et directe encryptionem et decryptionem postulationum.

Quam ob rem, cum tentantes orbem RAMI, plusquam duplo activitatis dm-cryptae perficiendo curavimus augeri ab 294 MB / s (2 x 147 MB ​​/ s) ad 640 MB / s, quod est proximum. ad encryptionem nudis perficiendam (696 MB /s).

Cloudflare paravit inaequaliter quod dramatically accelerare disci encryption in Linux

Cloudflare paravit inaequaliter quod dramatically accelerare disci encryption in Linux

Cloudflare paravit inaequaliter quod dramatically accelerare disci encryption in Linux

In onere probationis de servientibus realibus, nova exsecutio exsecutionem demonstravit arctissimam figurae currens sine encryptione, et encryptionem ministrantium cum cella Cloudflare non afficit celeritatem responsionis ullo modo. In posterum consilia Cloudflare paratas inaequalitates in summa Linux nucleos dimittere, sed ante opus erit ut retractetur, sicut in quadam inposuit optimized sunt et omnes ambitus applicationis non operiunt, exempli gratia, encryption humilia. -power embedded cogitationes.

Cloudflare paravit inaequaliter quod dramatically accelerare disci encryption in Linux

Source: opennet.ru