Cloudflare இலிருந்து டெவலப்பர்கள்
CDN இல் உள்ளடக்கத்தைத் தேக்ககப் பயன்படுத்தப்படும் சேமிப்பக சாதனங்களில் தரவை குறியாக்க Cloudflare dm-crypt ஐப் பயன்படுத்துகிறது. Dm-crypt ஆனது தொகுதி சாதன மட்டத்தில் இயங்குகிறது மற்றும் I/O கோரிக்கைகளை எழுதும் குறியாக்கம் மற்றும் வாசிப்பு கோரிக்கைகளை மறைகுறியாக்குகிறது, இது தொகுதி சாதனத்திற்கும் கோப்பு முறைமை இயக்கிக்கும் இடையே ஒரு அடுக்காக செயல்படுகிறது.
தொகுப்பைப் பயன்படுத்தி dm-crypt இன் செயல்திறனை மதிப்பிட
முதலில், கர்னல் கிரிப்டோசிஸ்டத்தில் திறமையற்ற அல்காரிதம்களைப் பயன்படுத்துவது குறித்து சந்தேகம் எழுந்தது. ஆனால் சோதனைகள் 256 குறியாக்க விசைகளுடன் கூடிய வேகமான அல்காரிதம், aes-xts ஐப் பயன்படுத்தியது, அதன் செயல்திறன் “கிரிப்ட்செட்அப் பெஞ்ச்மார்க்” ஐ இயக்கும் போது ரேம் வட்டு சோதனை செய்யும் போது பெறப்பட்ட முடிவை விட இரண்டு மடங்கு அதிகமாகும். செயல்திறன் ட்யூனிங்கிற்கான 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 க்கு கோரிக்கை அனுப்பப்படுகிறது. ஆனால் கிரிப்டோ ஏபிஐ ஒத்திசைவற்ற செயலாக்க மாதிரியைப் பயன்படுத்துவதால், குறியாக்கமும் உடனடியாகச் செய்யப்படவில்லை, ஆனால் மற்றொரு வரிசையைத் தவிர்க்கிறது. குறியாக்கம் முடிந்ததும், dm-crypt ஒரு தேடல் மரத்தைப் பயன்படுத்தி நிலுவையில் உள்ள எழுதும் கோரிக்கைகளை வரிசைப்படுத்த முயற்சி செய்யலாம்.
படிக்கும் போது, dm-crypt முதலில் டிரைவிலிருந்து தரவைப் பெற “kcryptd_io” வரிசையில் ஒரு கோரிக்கையைச் சேர்க்கிறது. சிறிது நேரம் கழித்து, தரவு கிடைக்கும் மற்றும் மறைகுறியாக்க "kcryptd" வரிசையில் வைக்கப்படும்.
Kcryptd Linux Crypto API க்கு ஒரு கோரிக்கையை அனுப்புகிறது, இது தகவலை ஒத்திசைவற்ற முறையில் மறைகுறியாக்குகிறது. கோரிக்கைகள் எப்போதும் எல்லா வரிசைகளிலும் செல்லாது, ஆனால் மோசமான சூழ்நிலையில், எழுதும் கோரிக்கை 4 முறை வரை வரிசைகளிலும், 3 முறை படிக்கும் கோரிக்கை வரையிலும் முடிவடையும். வரிசையில் ஒவ்வொரு வெற்றியும் தாமதங்களை ஏற்படுத்துகிறது, இது dm-crypt செயல்திறனில் குறிப்பிடத்தக்க குறைவுக்கு முக்கிய காரணமாகும்.
வரிசைகளின் பயன்பாடு குறுக்கீடுகள் ஏற்படும் சூழ்நிலைகளில் வேலை செய்ய வேண்டியதன் காரணமாகும். 2005 இல், dm-crypt இன் தற்போதைய வரிசை அடிப்படையிலான இயக்க மாதிரி செயல்படுத்தப்பட்டபோது, Crypto API இன்னும் ஒத்திசைவற்றதாக இல்லை. கிரிப்டோ ஏபிஐ ஒத்திசைவற்ற செயலாக்க மாதிரிக்கு மாற்றப்பட்ட பிறகு, அடிப்படையில் இரட்டைப் பாதுகாப்பு பயன்படுத்தத் தொடங்கியது. கர்னல் அடுக்கின் நுகர்வைச் சேமிக்க வரிசைகளும் அறிமுகப்படுத்தப்பட்டன, ஆனால் 2014 இல் அதன் அதிகரிப்புக்குப் பிறகு, இந்த மேம்படுத்தல்கள் அவற்றின் பொருத்தத்தை இழந்தன. ஒரு கூடுதல் வரிசை "kcryptd_io" சிக்கலைச் சமாளிக்க அறிமுகப்படுத்தப்பட்டது, இதன் விளைவாக அதிக எண்ணிக்கையிலான கோரிக்கைகள் வரும்போது நினைவக ஒதுக்கீட்டிற்காக காத்திருக்கிறது. 2015 ஆம் ஆண்டில், மல்டிபிராசசர் அமைப்புகளில் குறியாக்கக் கோரிக்கைகள் ஒழுங்கற்ற முறையில் முடிக்கப்படுவதால், கூடுதல் வரிசையாக்க கட்டம் அறிமுகப்படுத்தப்பட்டது (வட்டுக்கான தொடர் அணுகலுக்குப் பதிலாக, அணுகல் சீரற்ற வரிசையில் மேற்கொள்ளப்பட்டது, மேலும் CFQ திட்டமிடல் திறமையாக வேலை செய்யவில்லை). தற்போது, SSD இயக்கிகளைப் பயன்படுத்தும் போது, வரிசைப்படுத்துதல் அதன் அர்த்தத்தை இழந்துவிட்டது, மேலும் CFQ திட்டமிடல் கர்னலில் பயன்படுத்தப்படாது.
நவீன டிரைவ்கள் வேகமாகவும், புத்திசாலித்தனமாகவும் மாறியிருப்பதைக் கருத்தில் கொண்டு, லினக்ஸ் கர்னலில் உள்ள வள விநியோக முறை திருத்தப்பட்டு, சில துணை அமைப்புகள் மறுவடிவமைப்பு செய்யப்பட்டுள்ளன, கிளவுட்ஃப்ளேர் பொறியாளர்கள்
இதன் விளைவாக, ஒரு ரேம் வட்டை சோதிக்கும் போது, dm-crypt இன் செயல்திறனை இருமடங்காக அதிகரிக்க முடிந்தது - செயல்திறன் 294 MB/s (2 x 147 MB/s) இலிருந்து 640 MB/s ஆக அதிகரித்தது, இது மிக அருகில் உள்ளது வெற்று குறியாக்கத்தின் செயல்திறன் (696 MB/s).
உண்மையான சேவையகங்களில் சுமையைச் சோதிக்கும் போது, புதிய செயலாக்கமானது குறியாக்கம் இல்லாமல் இயங்கும் உள்ளமைவுக்கு மிக அருகில் செயல்திறனைக் காட்டியது, மேலும் கிளவுட்ஃப்ளேர் கேச் கொண்ட சர்வர்களில் குறியாக்கத்தை இயக்குவது மறுமொழி வேகத்தில் எந்த விளைவையும் ஏற்படுத்தாது. எதிர்காலத்தில், கிளவுட்ஃப்ளேர் தயாரிக்கப்பட்ட இணைப்புகளை பிரதான லினக்ஸ் கர்னலுக்கு மாற்ற திட்டமிட்டுள்ளது, ஆனால் அதற்கு முன் அவை மறுவேலை செய்யப்பட வேண்டும், ஏனெனில் அவை ஒரு குறிப்பிட்ட சுமைக்கு உகந்ததாக இருக்கும் மற்றும் பயன்பாட்டின் அனைத்து பகுதிகளையும் உள்ளடக்காது, எடுத்துக்காட்டாக, குறைந்த குறியாக்கம் - சக்தி உட்பொதிக்கப்பட்ட சாதனங்கள்.
ஆதாரம்: opennet.ru