Cloudflare ලිනක්ස් හි තැටි සංකේතනය නාටකාකාර ලෙස වේගවත් කරන පැච් සකස් කර ඇත

Cloudflare වෙතින් සංවර්ධකයින් කිව්වා ලිනක්ස් කර්නලයේ තැටි සංකේතනය කිරීමේ කාර්ය සාධනය ප්‍රශස්ත කිරීම සඳහා වැඩ කිරීම ගැන. එහි ප්රතිඵලයක් ලෙස ඔවුන් සූදානම් විය පැච් උප පද්ධතිය සඳහා ඩීඑම්-ක්‍රිප්ට් සහ Crypto API, කෘත්‍රිම පරීක්ෂණයේදී කියවීමේ සහ ලිවීමේ ප්‍රතිසාධනය දෙගුණයකට වඩා වැඩි කිරීමට මෙන්ම ප්‍රමාදය අඩකින් අඩු කිරීමට හැකි විය. සැබෑ දෘඪාංග මත පරීක්‍ෂා කළ විට, දත්ත සංකේතනයකින් තොරව තැටියක් සමඟ වැඩ කරන විට නිරීක්‍ෂණය කරන ලද මට්ටමට වඩා වැඩි සංකේතනය අඩු කරන ලදී.

CDN හි අන්තර්ගතය හැඹිලි කිරීමට භාවිතා කරන ගබඩා උපාංගවල දත්ත සංකේතනය කිරීමට Cloudflare dm-crypt භාවිතා කරයි. Dm-crypt බ්ලොක් උපාංග මට්ටමින් ක්‍රියා කරන අතර I/O ඉල්ලීම් ලිවීම සංකේතනය කරයි සහ කියවීමේ ඉල්ලීම් විකේතනය කරයි, බ්ලොක් උපාංගය සහ ගොනු පද්ධති ධාවකය අතර ස්ථරයක් ලෙස ක්‍රියා කරයි.

Cloudflare ලිනක්ස් හි තැටි සංකේතනය නාටකාකාර ලෙස වේගවත් කරන පැච් සකස් කර ඇත

පැකේජය භාවිතයෙන් dm-crypt හි කාර්ය සාධනය ඇගයීමට නම්‍යශීලී I/O පරීක්ෂකය තැටි ක්‍රියාකාරිත්වයේ උච්චාවචනයන් ඉවත් කිරීම සහ කේත ක්‍රියාකාරිත්වය කෙරෙහි අවධානය යොමු කිරීම සඳහා RAM හි පිහිටා ඇති RAM තැටියක සංකේතාත්මක සහ සංකේතනය නොකළ කොටස් සමඟ වැඩ කිරීමේ වේගය අපි මැනිය. සංකේතනය නොකළ කොටස් සඳහා, කියවීමේ සහ ලිවීමේ කාර්ය සාධනය 1126 MB/s ලෙස පැවතුනද, සංකේතනය සක්‍රීය කළ විට වේගය අඩු විය. 7 වතාවක් සහ ප්රමාණය 147 MB/s.

මුලදී, කර්නල් ගුප්තකේතන පද්ධතියේ අකාර්යක්ෂම ඇල්ගොරිතම භාවිතය පිළිබඳ සැකය මතු විය. නමුත් පරීක්ෂණ සඳහා භාවිතා කරන ලද්දේ වේගවත්ම ඇල්ගොරිතමයක් වන aes-xts, සංකේතාංකන යතුරු 256ක් සමඟින්, "cryptsetup මිණුම් ලකුණ" ධාවනය කිරීමේදී එහි ක්‍රියාකාරීත්වය RAM තැටියක් පරීක්ෂා කිරීමේදී ලැබෙන ප්‍රතිඵලය මෙන් දෙගුණයකටත් වඩා ඉහළ අගයක් ගනී. කාර්ය සාධනය සුසර කිරීම සඳහා dm-crypt ධජ සමඟ අත්හදා බැලීම් ප්‍රතිඵල ලබා දුන්නේ නැත: “--perf-same_cpu_crypt” ධජය භාවිතා කරන විට, කාර්ය සාධනය 136 MB/s දක්වා අඩු වූ අතර, “--perf-submit_from_crypt_cpus” ධජය සඳහන් කිරීමේදී එය වැඩි වූයේ පමණි. 166 MB/s දක්වා.

මෙහෙයුම් තර්කනය පිළිබඳ ගැඹුරු විශ්ලේෂණයකින් පෙන්නුම් කළේ dm-crypt පෙනෙන තරම් සරල නොවන බවයි - FS ධාවකයෙන් ලිවීමේ ඉල්ලීමක් පැමිණි විට, dm-crypt එය වහාම ක්‍රියා නොකරයි, නමුත් එය “kcryptd” පෝලිමේ තබයි. එය වහාම විග්‍රහ නොකරයි, නමුත් පහසු මොහොතක. පෝලිමේ සිට, සංකේතනය කිරීමට ඉල්ලීම Linux Crypto API වෙත යවනු ලැබේ. නමුත් Crypto API අසමමුහුර්ත ක්‍රියාත්මක කිරීමේ ආකෘතියක් භාවිතා කරන බැවින්, සංකේතනය ද ක්ෂණිකව සිදු නොකෙරේ, නමුත් වෙනත් පෝලිමක් මග හැරීම. සංකේතනය සම්පූර්ණ වූ පසු, dm-crypt විසින් සෙවුම් ගසක් භාවිතයෙන් අපේක්ෂිත ලිවීමේ ඉල්ලීම් වර්ග කිරීමට උත්සාහ කළ හැක. රතු-කළු. අවසානයේදී, නැවත වෙනම කර්නල් ත්‍රෙඩ් එකක්, යම් ප්‍රමාදයකින්, සමුච්චිත I/O ඉල්ලීම් ලබාගෙන ඒවා බ්ලොක් උපාංග තොගයට යවයි.

Cloudflare ලිනක්ස් හි තැටි සංකේතනය නාටකාකාර ලෙස වේගවත් කරන පැච් සකස් කර ඇත

කියවන විට, dm-crypt පළමුව ධාවකයෙන් දත්ත ලබා ගැනීම සඳහා "kcryptd_io" පෝලිමට ඉල්ලීමක් එක් කරයි. ටික වේලාවකට පසු, දත්ත ලබා ගත හැකි අතර විකේතනය සඳහා "kcryptd" පෝලිමේ තබා ඇත.
Kcryptd Linux Crypto API වෙත ඉල්ලීමක් යවයි, එය තොරතුරු අසමමුහුර්තව විකේතනය කරයි. ඉල්ලීම් සෑම විටම සියලුම පෝලිම් හරහා නොයනු ඇත, නමුත් නරකම අවස්ථාවෙහිදී, ලිවීමේ ඉල්ලීමක් 4 වතාවක් දක්වා පෝලිම්වල අවසන් වන අතර, කියවීමේ ඉල්ලීම 3 වතාවක් දක්වා අවසන් වේ. පෝලිමේ සෑම පහරක්ම ප්‍රමාදයන් ඇති කරයි, එය dm-crypt කාර්ය සාධනයේ සැලකිය යුතු අඩුවීමක් සඳහා ප්‍රධාන හේතුව වේ.

පෝලිම් භාවිතා කිරීම බාධා කිරීම් සිදු වන තත්වයන් තුළ වැඩ කිරීමේ අවශ්යතාව නිසාය. 2005 දී, dm-crypt හි වත්මන් පෝලිම් මත පදනම් වූ මෙහෙයුම් ආකෘතිය ක්‍රියාත්මක කරන විට, Crypto API තවමත් අසමමිතික නොවීය. Crypto API අසමමුහුර්ත ක්‍රියාත්මක කිරීමේ ආකෘතියකට මාරු කිරීමෙන් පසුව, අත්‍යවශ්‍යයෙන්ම ද්විත්ව ආරක්ෂණය භාවිතා කිරීමට පටන් ගත්තේය. කර්නල් තොගයේ පරිභෝජනය ඉතිරි කර ගැනීම සඳහා පෝලිම් ද හඳුන්වා දෙන ලදී, නමුත් 2014 දී එහි වැඩිවීමෙන් පසුව, මෙම ප්‍රශස්තකරණයන් ඒවායේ අදාළත්වය නැති විය. ඉල්ලීම් විශාල සංඛ්‍යාවක් පැමිණෙන විට මතකය වෙන් කිරීම සඳහා රැඳී සිටීමේ ප්‍රතිඵලයක් ලෙස බාධා මඟහරවා ගැනීම සඳහා අතිරේක පෝලිමක් "kcryptd_io" හඳුන්වා දෙන ලදී. 2015 දී, බහු ප්‍රොසෙසර් පද්ධතිවල සංකේතාංකන ඉල්ලීම් ක්‍රියා විරහිතව සම්පූර්ණ කළ හැකි බැවින් අමතර වර්ග කිරීමේ අදියරක් හඳුන්වා දෙන ලදී (තැටියට අනුක්‍රමික ප්‍රවේශය වෙනුවට, ප්‍රවේශය අහඹු අනුපිළිවෙලින් සිදු කරන ලද අතර CFQ උපලේඛකය කාර්යක්ෂමව ක්‍රියා කළේ නැත). දැනට, SSD ධාවක භාවිතා කරන විට, වර්ග කිරීම එහි අර්ථය නැති වී ඇති අතර, CFQ උපලේඛනය කර්නලය තුළ තවදුරටත් භාවිතා නොවේ.

නවීන ධාවක වේගවත් හා දක්ෂ වී ඇති බව සලකන විට, ලිනක්ස් කර්නලයේ සම්පත් බෙදා හැරීමේ පද්ධතිය සංශෝධනය කර ඇති අතර සමහර උප පද්ධති ප්‍රතිනිර්මාණය කර ඇත, Cloudflare ඉංජිනේරුවන් එකතු කළා dm-crypt නව මෙහෙයුම් මාදිලියක් ඇති අතර එමඟින් අනවශ්‍ය පෝලිම් සහ අසමමුහුර්ත ඇමතුම් භාවිතය ඉවත් කරයි. ප්‍රකාරය වෙනම ධජයක් "force_inline" මගින් සක්‍රීය කර ඇති අතර ලැබෙන ඉල්ලීම් සංකේතනය කර විකේතනය කරන සරල ප්‍රොක්සියක ස්වරූපයට dm-crypt ගෙන එයි. Crypto API සමඟ අන්තර්ක්‍රියා සමමුහුර්ත ආකාරයෙන් ක්‍රියා කරන සහ ඉල්ලීම් පෝලිම් භාවිතා නොකරන සංකේතාකන ඇල්ගොරිතම පැහැදිලිව තෝරා ගැනීමෙන් ප්‍රශස්ත කර ඇත. Crypto API සමඟ සමමුහුර්තව වැඩ කිරීමට එහි විය යෝජනා කළා ත්වරණය සඳහා FPU/AES-NI භාවිතා කිරීමට ඔබට ඉඩ සලසන මොඩියුලයක් සහ සංකේතාංකන සහ විකේතන ඉල්ලීම් කෙලින්ම යොමු කරයි.

ප්රතිඵලයක් වශයෙන්, RAM තැටියක් පරීක්ෂා කිරීමේදී, dm-crypt කාර්ය සාධනය දෙගුණයකට වඩා වැඩි කිරීමට හැකි විය - කාර්ය සාධනය 294 MB/s (2 x 147 MB/s) සිට 640 MB/s දක්වා වැඩි විය, එය ඉතා සමීප වේ. හිස් සංකේතාංකනයේ කාර්ය සාධනය (696 MB /s).

Cloudflare ලිනක්ස් හි තැටි සංකේතනය නාටකාකාර ලෙස වේගවත් කරන පැච් සකස් කර ඇත

Cloudflare ලිනක්ස් හි තැටි සංකේතනය නාටකාකාර ලෙස වේගවත් කරන පැච් සකස් කර ඇත

Cloudflare ලිනක්ස් හි තැටි සංකේතනය නාටකාකාර ලෙස වේගවත් කරන පැච් සකස් කර ඇත

සැබෑ සේවාදායකයන් මත පැටවීම පරීක්ෂා කිරීමේදී, නව ක්‍රියාත්මක කිරීම සංකේතනයකින් තොරව ක්‍රියාත්මක වන වින්‍යාසයට ඉතා ආසන්න කාර්ය සාධනයක් පෙන්නුම් කළ අතර, Cloudflare හැඹිලිය සහිත සේවාදායකයන් මත සංකේතනය කිරීම ප්‍රතිචාර දැක්වීමේ වේගය කෙරෙහි බලපෑමක් ඇති කළේ නැත. අනාගතයේදී, Cloudflare සකස් කළ පැච් ප්‍රධාන ලිනක්ස් කර්නලයට මාරු කිරීමට සැලසුම් කරයි, නමුත් ඊට පෙර ඒවා නැවත සකස් කිරීමට අවශ්‍ය වනු ඇත, මන්ද ඒවා නිශ්චිත බරක් සඳහා ප්‍රශස්ත කර ඇති අතර යෙදුමේ සියලුම ක්ෂේත්‍ර ආවරණය නොකරන බැවිනි, උදාහරණයක් ලෙස, අඩු සංකේතනය -බලය කාවැද්දූ උපාංග.

Cloudflare ලිනක්ස් හි තැටි සංකේතනය නාටකාකාර ලෙස වේගවත් කරන පැච් සකස් කර ඇත

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න