கணினியில் தேர்ந்தெடுக்கப்பட்ட நேர மூலத்தின் செயல்திறன் தாக்கத்தின் பகுப்பாய்வு

தற்போது லினக்ஸ் கர்னலில் BPF-அடிப்படையிலான செயல்திறன் பகுப்பாய்வு கருவிகளை உருவாக்கி வரும் DTrace இன் டெவலப்பர்களில் ஒருவரான Brendan Gregg, CentOS இலிருந்து Ubuntu க்கு Cassandra DBMS ஐ நகர்த்தும்போது Netflix எதிர்கொண்ட செயல்திறன் சிக்கல்களை பகுப்பாய்வு செய்வதன் மூலம் பெற்ற அனுபவத்தை சுருக்கமாகக் கூறினார். Xen அடிப்படையிலான Amazon EC2 கிளவுட். இடம்பெயர்வுக்குப் பிறகு, CPU சுமை 30% அதிகரித்தது மற்றும் எழுதும் செயல்பாடுகளின் போது ஏற்படும் தாமதங்கள் ஏறக்குறைய அதே அளவு அதிகரித்தன. இது மாறிவிடும், நேரத் தகவலைத் தீவிரமாகக் கோரும் பயன்பாடுகளின் செயல்திறன் கணினியில் தேர்ந்தெடுக்கப்பட்ட சரியான நேர மூலத்தைப் பொறுத்தது.

முதலில், செயல்திறன் குறைவதற்கான காரணம் தெளிவாகத் தெரியவில்லை மற்றும் மேல் மற்றும் execsnoop பயன்பாடுகளைப் பயன்படுத்தி தொடர்ந்து இயங்கும் அல்லது அவ்வப்போது தொடங்கப்பட்ட வள-தீவிர அமைப்பு செயல்முறைகளின் சாத்தியமான தாக்கத்தை கண்காணிப்பதன் மூலம் நோயறிதல் தொடங்கியது. ஆனால் ஜாவாவில் எழுதப்பட்ட கசாண்ட்ரா டிபிஎம்எஸ்ஸில் வள நுகர்வு குறிப்பாக அதிகரித்துள்ளது என்பதை எல்லாம் சுட்டிக்காட்டியது. CentOS மற்றும் Ubuntu இல் இணையாக இயங்கும் இரண்டு Cassandra செயல்முறைகளின் விவரக்குறிப்பு அளவீடுகளை ஒப்பிட்டு, அதே வினவல்களைச் செயலாக்கும்போது, ​​மொத்த நேரத்தின் 32% os::javaTimeMillis(), இது தற்போதைய நேரத்தைப் பற்றிய தகவலைப் பெறப் பயன்படுகிறது. .

இதற்குப் பிறகு, ஒரு சோதனை நடத்தப்பட்டது, அதில் ஒரு எளிய ஜாவா பயன்பாடு எழுதப்பட்டது, இது System.currentTimeMillis() முறை என்று ஒரு லூப்பில் நூறு மில்லியன் முறை. பயன்பாட்டை இயக்குவது CentOS இல் முடிக்க 13 வினாடிகள் மற்றும் உபுண்டுவில் சுமார் 68 வினாடிகள் ஆகும், அதாவது. 5 மடங்கு மெதுவாக. இதேபோன்ற நிரல் C இல் எழுதப்பட்டது, இது gettimeofday() செயல்பாட்டை நூறு மில்லியன் முறை அழைக்கப்படுகிறது, ஆனால் செயல்படுத்தப்பட்டபோது, ​​​​அதே போன்ற முடிவுகள் பெறப்பட்டன.

சிக்கலின் மூலமானது தற்போதைய நேரத்தைத் திரும்பப் பெறும் செயல்பாடு என்பது தெளிவாகத் தெரிந்ததால், கணினியில் சரியான நேரத்தின் வெவ்வேறு ஆதாரங்களைத் தேர்ந்தெடுக்கும்போது குறிகாட்டிகளில் ஏற்படும் மாற்றங்களுக்கு கவனம் செலுத்தப்பட்டது. “/sys/devices/system/clocksource/clocksource0/current_clocksource” இன் உள்ளடக்கங்களை வைத்து ஆராயும்போது, ​​விருந்தினர் அமைப்பில் Linuxஐ இயக்கும்போது இயல்பாகவே “xen” டைமர் பயன்படுத்தப்பட்டது. நேர மூலத்தை "tsc" ஆக மாற்றிய பிறகு, உபுண்டுவில் சோதனை பயன்பாட்டின் செயலாக்க நேரம் 68 இலிருந்து 3.3 வினாடிகளாக குறைந்தது, அதாவது. அது 20 மடங்கு வேகமாக ஆனது. கூடுதலாக, kvm-கடிகார நேர மூலத்தின் செயல்திறன் சோதனை மேற்கொள்ளப்பட்டது, இது TSC உடன் ஒப்பிடும்போது 20% தாமதங்கள் அதிகரிப்பதைக் காட்டியது. $ cat /sys/devices/system/clocksource/clocksource0/available_clocksource xen tsc hpet acpi_pm $ cat /sys/devices/system/clocksource/clocksource0/current_clocksource xen $ time java TimeBench real 1m8.300s user 0m38.337sys0m29.875 echo tsc > /sys/devices/system/clocksource/clocksource0/current_clocksource $ time java TimeBench real 0m3.370s user 0m3.353s sys 0m0.026s

TSC மூலத்தைத் தேர்ந்தெடுக்கும்போது நேரத்தைப் பெற, RDTSC செயலி அறிவுறுத்தல் பயன்படுத்தப்படுகிறது, அதைச் செயல்படுத்த கணினி அழைப்பு தேவையில்லை (அறிவுரைக்கு உயர்ந்த சலுகைகள் தேவையில்லை மற்றும் CPU இல் கட்டமைக்கப்பட்ட நேர கவுண்டரில் இருந்து மதிப்பை உருவாக்குகிறது). முன்னிருப்பாக, TSC செயல்படுத்தப்படவில்லை, ஏனெனில் பழைய நாட்களில் இந்த மூலமானது படிப்படியான நேர சறுக்கலை விலக்கவில்லை, இது மற்ற செயலிகளில் மிகவும் துல்லியமான அளவீடுகளை அடைய மென்பொருளால் சரிசெய்யப்படுகிறது. செயலி மேம்பாட்டில் நிபுணத்துவம் பெற்ற ஒரு பொறியாளரின் கூற்றுப்படி, TSC ஐப் பயன்படுத்தும் போது நேர மாற்றங்கள் குறித்த அச்சம் நீண்ட காலமாக பொய்யானது மற்றும் நவீன செயலிகளில் இந்த மூலமானது பல ஆண்டுகளாக நிலையான அளவீடுகளை உருவாக்க முடியும்.

Netflix இல் உள்ள உற்பத்தி சேவையகங்களை TSC மூலத்திற்கு மாற்றுவதன் விளைவாக எழுதும் தாமதம் 43% குறைக்கப்பட்டது மற்றும் Ubuntu ஐப் பயன்படுத்தி முடிவுகளை அடைந்தது, இது "xen" நேர மூலத்துடன் CentOS இயங்கும் உள்ளமைவுகளை விட 4 மடங்கு வேகமாக இருந்தது. ஆய்வின் முடிவுகள் அமேசானுக்கு மாற்றப்பட்டன, இது Xen ஹைப்பர்வைசரை அடிப்படையாகக் கொண்ட AWS EC2 சூழல்களில் இயல்புநிலை TSC நேர மூலத்தைப் பயன்படுத்த அதிகாரப்பூர்வமாக பரிந்துரைக்கப்பட்டது (Kvm-கடிகாரம் நைட்ரோ ஹைப்பர்வைசரை அடிப்படையாகக் கொண்ட சூழலில் பரிந்துரைக்கப்படுகிறது).

ஆதாரம்: opennet.ru

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