Cloudflare லினக்ஸில் வட்டு குறியாக்கத்தை வியத்தகு முறையில் விரைவுபடுத்தும் இணைப்புகளைத் தயாரித்துள்ளது

Cloudflare இலிருந்து டெவலப்பர்கள் கூறினார் லினக்ஸ் கர்னலில் வட்டு குறியாக்கத்தின் செயல்திறனை மேம்படுத்துவதற்கான பணிகளை மேற்கொள்வது பற்றி. இதன் விளைவாக, அவர்கள் தயார் செய்யப்பட்டனர் திட்டுகள் துணை அமைப்புக்காக dm-crypt மற்றும் கிரிப்டோ ஏபிஐ, இது செயற்கைத் தேர்வில் படிக்கும் மற்றும் எழுதும் திறனை இரட்டிப்பாக்கச் சாத்தியமாக்கியது, அத்துடன் தாமதத்தை பாதியாகக் குறைத்தது. உண்மையான வன்பொருளில் சோதிக்கப்பட்டபோது, ​​தரவு குறியாக்கம் இல்லாமல் ஒரு வட்டுடன் பணிபுரியும் போது காணப்பட்ட குறியாக்க மேல்நிலை கிட்டத்தட்ட குறைக்கப்பட்டது.

CDN இல் உள்ளடக்கத்தைத் தேக்ககப் பயன்படுத்தப்படும் சேமிப்பக சாதனங்களில் தரவை குறியாக்க Cloudflare dm-crypt ஐப் பயன்படுத்துகிறது. Dm-crypt ஆனது தொகுதி சாதன மட்டத்தில் இயங்குகிறது மற்றும் I/O கோரிக்கைகளை எழுதும் குறியாக்கம் மற்றும் வாசிப்பு கோரிக்கைகளை மறைகுறியாக்குகிறது, இது தொகுதி சாதனத்திற்கும் கோப்பு முறைமை இயக்கிக்கும் இடையே ஒரு அடுக்காக செயல்படுகிறது.

Cloudflare லினக்ஸில் வட்டு குறியாக்கத்தை வியத்தகு முறையில் விரைவுபடுத்தும் இணைப்புகளைத் தயாரித்துள்ளது

தொகுப்பைப் பயன்படுத்தி dm-crypt இன் செயல்திறனை மதிப்பிட நெகிழ்வான I/O சோதனையாளர் வட்டு செயல்திறனில் ஏற்படும் ஏற்ற இறக்கங்களை நீக்கவும் குறியீடு செயல்திறனில் கவனம் செலுத்தவும் RAM இல் அமைந்துள்ள ரேம் வட்டில் மறைகுறியாக்கப்பட்ட மற்றும் மறைகுறியாக்கப்பட்ட பகிர்வுகளுடன் பணிபுரியும் வேகத்தை அளந்தோம். மறைகுறியாக்கப்படாத பகிர்வுகளுக்கு, வாசிப்பு மற்றும் எழுதும் செயல்திறன் 1126 MB/s ஆக இருக்கும், ஆனால் குறியாக்கம் இயக்கப்படும் போது வேகம் குறைந்தது 7 முறை மற்றும் 147 MB/s ஆக இருந்தது.

முதலில், கர்னல் கிரிப்டோசிஸ்டத்தில் திறமையற்ற அல்காரிதம்களைப் பயன்படுத்துவது குறித்து சந்தேகம் எழுந்தது. ஆனால் சோதனைகள் 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 ஒரு தேடல் மரத்தைப் பயன்படுத்தி நிலுவையில் உள்ள எழுதும் கோரிக்கைகளை வரிசைப்படுத்த முயற்சி செய்யலாம். சிவப்பு-கருப்பு. முடிவில், மீண்டும் ஒரு தனி கர்னல் த்ரெட், ஒரு குறிப்பிட்ட காலதாமதத்துடன், திரட்டப்பட்ட I/O கோரிக்கைகளை எடுத்து பிளாக் டிவைஸ் ஸ்டேக்கிற்கு அனுப்புகிறது.

Cloudflare லினக்ஸில் வட்டு குறியாக்கத்தை வியத்தகு முறையில் விரைவுபடுத்தும் இணைப்புகளைத் தயாரித்துள்ளது

படிக்கும் போது, ​​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 ஆனது தேவையற்ற வரிசைகள் மற்றும் ஒத்திசைவற்ற அழைப்புகளின் பயன்பாட்டை நீக்கும் ஒரு புதிய இயக்க முறைமையைக் கொண்டுள்ளது. இந்த பயன்முறையானது "force_inline" என்ற தனிக் கொடியால் இயக்கப்பட்டது மற்றும் உள்வரும் கோரிக்கைகளை குறியாக்கம் செய்து மறைகுறியாக்கும் எளிய ப்ராக்ஸியின் வடிவத்திற்கு dm-crypt ஐக் கொண்டுவருகிறது. Crypto API உடனான தொடர்பு, ஒத்திசைவான முறையில் செயல்படும் மற்றும் கோரிக்கை வரிசைகளைப் பயன்படுத்தாத குறியாக்க அல்காரிதங்களை வெளிப்படையாகத் தேர்ந்தெடுப்பதன் மூலம் மேம்படுத்தப்பட்டுள்ளது. கிரிப்டோ ஏபிஐ உடன் ஒத்திசைவாக வேலை செய்ய இருந்தது முன்மொழியப்பட்டது FPU/AES-NI ஐ முடுக்கம் மற்றும் நேரடியாக குறியாக்கம் மற்றும் மறைகுறியாக்க கோரிக்கைகளை அனுப்ப உங்களை அனுமதிக்கும் ஒரு தொகுதி.

இதன் விளைவாக, ஒரு ரேம் வட்டை சோதிக்கும் போது, ​​dm-crypt இன் செயல்திறனை இருமடங்காக அதிகரிக்க முடிந்தது - செயல்திறன் 294 MB/s (2 x 147 MB/s) இலிருந்து 640 MB/s ஆக அதிகரித்தது, இது மிக அருகில் உள்ளது வெற்று குறியாக்கத்தின் செயல்திறன் (696 MB/s).

Cloudflare லினக்ஸில் வட்டு குறியாக்கத்தை வியத்தகு முறையில் விரைவுபடுத்தும் இணைப்புகளைத் தயாரித்துள்ளது

Cloudflare லினக்ஸில் வட்டு குறியாக்கத்தை வியத்தகு முறையில் விரைவுபடுத்தும் இணைப்புகளைத் தயாரித்துள்ளது

Cloudflare லினக்ஸில் வட்டு குறியாக்கத்தை வியத்தகு முறையில் விரைவுபடுத்தும் இணைப்புகளைத் தயாரித்துள்ளது

உண்மையான சேவையகங்களில் சுமையைச் சோதிக்கும் போது, ​​புதிய செயலாக்கமானது குறியாக்கம் இல்லாமல் இயங்கும் உள்ளமைவுக்கு மிக அருகில் செயல்திறனைக் காட்டியது, மேலும் கிளவுட்ஃப்ளேர் கேச் கொண்ட சர்வர்களில் குறியாக்கத்தை இயக்குவது மறுமொழி வேகத்தில் எந்த விளைவையும் ஏற்படுத்தாது. எதிர்காலத்தில், கிளவுட்ஃப்ளேர் தயாரிக்கப்பட்ட இணைப்புகளை பிரதான லினக்ஸ் கர்னலுக்கு மாற்ற திட்டமிட்டுள்ளது, ஆனால் அதற்கு முன் அவை மறுவேலை செய்யப்பட வேண்டும், ஏனெனில் அவை ஒரு குறிப்பிட்ட சுமைக்கு உகந்ததாக இருக்கும் மற்றும் பயன்பாட்டின் அனைத்து பகுதிகளையும் உள்ளடக்காது, எடுத்துக்காட்டாக, குறைந்த குறியாக்கம் - சக்தி உட்பொதிக்கப்பட்ட சாதனங்கள்.

Cloudflare லினக்ஸில் வட்டு குறியாக்கத்தை வியத்தகு முறையில் விரைவுபடுத்தும் இணைப்புகளைத் தயாரித்துள்ளது

ஆதாரம்: opennet.ru

கருத்தைச் சேர்