குபெர்னெட்டஸில் உள்ள பாட் முன்னுரிமைகள் எப்படி கிராஃபானா லேப்ஸில் வேலையில்லா நேரத்தை ஏற்படுத்தியது

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

குபெர்னெட்டஸில் உள்ள பாட் முன்னுரிமைகள் எப்படி கிராஃபானா லேப்ஸில் வேலையில்லா நேரத்தை ஏற்படுத்தியது

ஜூலை 19, வெள்ளிக்கிழமை, Grafana Cloud இல் Hosted Prometheus சேவை சுமார் 30 நிமிடங்கள் செயல்படுவதை நிறுத்தியது. செயலிழப்பால் பாதிக்கப்பட்ட அனைத்து வாடிக்கையாளர்களிடமும் மன்னிப்பு கேட்டுக்கொள்கிறேன். உங்களுக்குத் தேவையான கண்காணிப்புக் கருவிகளை வழங்குவதே எங்கள் பணியாகும், மேலும் அவை கிடைக்காதது உங்கள் வாழ்க்கையை மேலும் கடினமாக்கும் என்பதை நாங்கள் புரிந்துகொள்கிறோம். இந்த சம்பவத்தை நாங்கள் மிகவும் தீவிரமாக எடுத்துக்கொள்கிறோம். என்ன நடந்தது, நாங்கள் எவ்வாறு பதிலளித்தோம், மேலும் இது நடக்காமல் இருக்க என்ன செய்கிறோம் என்பதை இந்தக் குறிப்பு விளக்குகிறது.

முன்வரலாறு

Grafana Cloud Hosted Prometheus சேவை அடிப்படையாக கொண்டது புறணி — CNCF திட்டம் கிடைமட்டமாக அளவிடக்கூடிய, மிகவும் கிடைக்கக்கூடிய, பல குத்தகைதாரர் ப்ரோமிதியஸ் சேவையை உருவாக்குகிறது. கார்டெக்ஸ் கட்டிடக்கலை தனிப்பட்ட மைக்ரோ சர்வீஸ்களின் தொகுப்பைக் கொண்டுள்ளது, ஒவ்வொன்றும் அதன் சொந்த செயல்பாட்டைச் செய்கிறது: பிரதி, சேமிப்பு, வினவல்கள் போன்றவை. கார்டெக்ஸ் செயலில் வளர்ச்சியில் உள்ளது மற்றும் தொடர்ந்து புதிய அம்சங்களைச் சேர்த்து, செயல்திறனை மேம்படுத்துகிறது. வாடிக்கையாளர்கள் இந்த அம்சங்களைப் பயன்படுத்திக் கொள்ள, புதிய கார்டெக்ஸ் வெளியீடுகளை கிளஸ்டர்களில் தொடர்ந்து பயன்படுத்துகிறோம் - அதிர்ஷ்டவசமாக, கார்டெக்ஸை வேலையில்லா நேரம் இல்லாமல் புதுப்பிக்க முடியும்.

தடையற்ற புதுப்பிப்புகளுக்கு, புதுப்பித்தல் செயல்பாட்டின் போது இன்ஜெஸ்டர் கார்டெக்ஸ் சேவைக்கு கூடுதல் இன்ஜெஸ்டர் பிரதி தேவைப்படுகிறது. (குறிப்பு. மொழிபெயர்: உட்செலுத்துபவர் - கார்டெக்ஸின் அடிப்படை கூறு. அதன் வேலை மாதிரிகளின் நிலையான ஸ்ட்ரீம்களை சேகரித்து, அவற்றை ப்ரோமிதியஸ் துண்டுகளாக தொகுத்து, டைனமோடிபி, பிக்டேபிள் அல்லது கசாண்ட்ரா போன்ற தரவுத்தளத்தில் சேமிப்பது.) இது பழைய இன்ஜெஸ்டர்களை தற்போதைய தரவை புதிய இன்ஜெஸ்டர்களுக்கு அனுப்ப அனுமதிக்கிறது. உட்செலுத்துபவர்கள் வளங்களைக் கோருகின்றனர் என்பது குறிப்பிடத்தக்கது. அவை வேலை செய்ய, நீங்கள் ஒரு பாட் ஒன்றுக்கு 4 கோர்கள் மற்றும் 15 ஜிபி நினைவகம் இருக்க வேண்டும், அதாவது. எங்கள் குபெர்னெட்ஸ் கிளஸ்டர்களில் அடிப்படை இயந்திரத்தின் செயலாக்க சக்தி மற்றும் நினைவகத்தில் 25%. பொதுவாக, எங்களிடம் 4 கோர்கள் மற்றும் 15 ஜிபி நினைவகத்தை விட கிளஸ்டரில் பயன்படுத்தப்படாத வளங்கள் அதிகம் உள்ளன, எனவே மேம்படுத்தல்களின் போது இந்த கூடுதல் உட்செலுத்திகளை எளிதாக சுழற்றலாம்.

இருப்பினும், சாதாரண செயல்பாட்டின் போது எந்த இயந்திரமும் இந்த 25% பயன்படுத்தப்படாத வளங்களைக் கொண்டிருக்கவில்லை. ஆம், நாங்கள் பாடுபடுவதில்லை: CPU மற்றும் நினைவகம் மற்ற செயல்முறைகளுக்கு எப்போதும் பயனுள்ளதாக இருக்கும். இந்த சிக்கலை தீர்க்க, நாங்கள் பயன்படுத்த முடிவு செய்தோம் குபெர்னெட்ஸ் பாட் முன்னுரிமைகள். மற்ற (நிலையற்ற) மைக்ரோ சர்வீஸ்களை விட இன்ஜெஸ்டர்களுக்கு அதிக முன்னுரிமை வழங்குவதே இதன் யோசனை. கூடுதல் (N+1) இன்ஜெஸ்டரை இயக்க வேண்டியிருக்கும் போது, ​​மற்ற சிறிய காய்களை தற்காலிகமாக இடமாற்றம் செய்கிறோம். இந்த காய்கள் மற்ற கணினிகளில் இலவச ஆதாரங்களுக்கு மாற்றப்படுகின்றன, கூடுதல் இன்ஜெஸ்டரை இயக்க போதுமான பெரிய "துளை" உள்ளது.

ஜூலை 18, வியாழன் அன்று, எங்கள் கிளஸ்டர்களுக்கு நான்கு புதிய முன்னுரிமை நிலைகளை அறிமுகப்படுத்தினோம்: முக்கியமான, உயரமான, средний и குறைந்த. சுமார் ஒரு வாரத்திற்கு கிளையன்ட் ட்ராஃபிக் இல்லாத உள் கிளஸ்டரில் அவை சோதிக்கப்பட்டன. இயல்பாக, குறிப்பிட்ட முன்னுரிமை இல்லாத காய்கள் பெறப்பட்டன средний முன்னுரிமை, இன்ஜெஸ்டர்களுக்கு வகுப்பு அமைக்கப்பட்டது высоким முன்னுரிமை. விமர்சனம் கண்காணிப்புக்கு ஒதுக்கப்பட்டது (ப்ரோமிதியஸ், அலர்ட்மேனேஜர், முனை-ஏற்றுமதியாளர், குபே-ஸ்டேட்-மெட்ரிக்ஸ், முதலியன). எங்கள் கட்டமைப்பு திறக்கப்பட்டுள்ளது, நீங்கள் PR ஐப் பார்க்கலாம் இங்கே.

விபத்து

ஜூலை 19, வெள்ளிக்கிழமை, ஒரு பெரிய வாடிக்கையாளருக்காக ஒரு புதிய பிரத்யேக கோர்டெக்ஸ் கிளஸ்டரை பொறியாளர் ஒருவர் அறிமுகப்படுத்தினார். இந்த கிளஸ்டருக்கான கட்டமைப்பில் புதிய பாட் முன்னுரிமைகள் சேர்க்கப்படவில்லை, எனவே அனைத்து புதிய காய்களுக்கும் இயல்புநிலை முன்னுரிமை ஒதுக்கப்பட்டது - средний.

புதிய கார்டெக்ஸ் கிளஸ்டருக்கான போதுமான ஆதாரங்கள் குபெர்னெட்ஸ் கிளஸ்டரிடம் இல்லை, மேலும் தற்போதுள்ள உற்பத்தி கார்டெக்ஸ் கிளஸ்டர் புதுப்பிக்கப்படவில்லை (இன்ஜெஸ்டர்கள் இல்லாமல் விடப்பட்டன. விசோகோகோ முன்னுரிமை). முன்னிருப்பாக புதிய கிளஸ்டரின் உட்செலுத்திகள் இருந்ததால் средний முன்னுரிமை, மற்றும் உற்பத்தியில் இருக்கும் காய்கள் முன்னுரிமை இல்லாமல் வேலை செய்தன, புதிய கிளஸ்டரின் இன்ஜெஸ்டர்கள் ஏற்கனவே உள்ள கார்டெக்ஸ் உற்பத்தி கிளஸ்டரிலிருந்து இன்ஜெஸ்டர்களை மாற்றியது.

உற்பத்தி கிளஸ்டரில் வெளியேற்றப்பட்ட இன்ஜெஸ்டருக்கான பிரதிசெட் வெளியேற்றப்பட்ட காய்களைக் கண்டறிந்து, குறிப்பிட்ட எண்ணிக்கையிலான நகல்களைப் பராமரிக்க புதிய ஒன்றை உருவாக்கியது. புதிய பாட் இயல்பாகவே ஒதுக்கப்பட்டது средний முன்னுரிமை, மற்றும் உற்பத்தியில் மற்றொரு "பழைய" இன்ஜெஸ்டர் அதன் வளங்களை இழந்தது. விளைவு இருந்தது பனிச்சரிவு செயல்முறை, இது கார்டெக்ஸ் உற்பத்தி கிளஸ்டர்களுக்கான இன்ஜெஸ்டரிலிருந்து அனைத்து காய்களையும் இடமாற்றம் செய்ய வழிவகுத்தது.

உட்செலுத்துபவர்கள் நிலையானவை மற்றும் முந்தைய 12 மணிநேரத்திற்கான தரவைச் சேமிக்கும். நீண்ட கால சேமிப்பகத்திற்கு அவற்றை எழுதுவதற்கு முன், அவற்றை மிகவும் திறமையாக சுருக்குவதற்கு இது அனுமதிக்கிறது. இதை அடைய, கார்டெக்ஸ் டிஸ்ட்ரிபியூட்டட் ஹாஷ் டேபிளை (டிஎச்டி) பயன்படுத்தி தொடர் முழுவதும் தரவைத் துண்டிக்கிறது மற்றும் டைனமோ-ஸ்டைல் ​​கோரம் கன்சிடென்சியைப் பயன்படுத்தி ஒவ்வொரு தொடரையும் மூன்று இன்ஜெஸ்டர்களில் பிரதிபலிக்கிறது. கார்டெக்ஸ் முடக்கப்பட்ட இன்ஜெஸ்டர்களுக்கு தரவை எழுதாது. இதனால், அதிக எண்ணிக்கையிலான இன்ஜெஸ்டர்கள் DHTயை விட்டு வெளியேறும்போது, ​​கோர்டெக்ஸால் உள்ளீடுகளின் போதுமான பிரதிகளை வழங்க முடியாது, மேலும் அவை செயலிழக்கின்றன.

கண்டறிதல் மற்றும் சரிசெய்தல்

"பிழை பட்ஜெட்" அடிப்படையில் புதிய ப்ரோமிதியஸ் அறிவிப்புகள் (பிழை-பட்ஜெட் அடிப்படையிலான — விவரங்கள் எதிர்கால கட்டுரையில் தோன்றும்) பணிநிறுத்தம் தொடங்கிய 4 நிமிடங்களுக்குப் பிறகு அலாரம் ஒலிக்கத் தொடங்கியது. அடுத்த ஐந்து நிமிடங்களில், நாங்கள் சில கண்டறிதல்களை இயக்கி, புதிய மற்றும் ஏற்கனவே உள்ள உற்பத்தி கிளஸ்டர்களை ஹோஸ்ட் செய்ய அடிப்படையான குபெர்னெட்ஸ் கிளஸ்டரை அளந்தோம்.

மற்றொரு ஐந்து நிமிடங்களுக்குப் பிறகு, பழைய இன்ஜெஸ்டர்கள் தங்கள் தரவை வெற்றிகரமாக எழுதினர், புதியவை தொடங்கப்பட்டன, மேலும் கார்டெக்ஸ் கிளஸ்டர்கள் மீண்டும் கிடைக்கின்றன.

மற்றொரு 10 நிமிடங்கள் கார்டெக்ஸின் முன் அமைந்துள்ள அங்கீகார தலைகீழ் ப்ராக்ஸிகளிலிருந்து நினைவாற்றல் இல்லாத (OOM) பிழைகளைக் கண்டறிந்து சரிசெய்வதற்குச் செலவிடப்பட்டது. QPS இல் பத்து மடங்கு அதிகரிப்பால் OOM பிழைகள் ஏற்பட்டன (வாடிக்கையாளரின் Prometheus சேவையகங்களின் அதிகப்படியான ஆக்கிரமிப்பு கோரிக்கைகள் காரணமாக நாங்கள் நம்புகிறோம்).

விளைவுகள்

மொத்த வேலையில்லா நேரம் 26 நிமிடங்கள். தரவு எதுவும் இழக்கப்படவில்லை. இன்ஜெஸ்டர்கள் அனைத்து நினைவகத்தில் உள்ள தரவையும் நீண்ட கால சேமிப்பகத்தில் வெற்றிகரமாக ஏற்றியுள்ளனர். பணிநிறுத்தத்தின் போது, ​​கிளையன்ட் ப்ரோமிதியஸ் சேவையகங்கள் நீக்கப்பட்டன (தொலை) பயன்படுத்தி பதிவுகள் புதிய API remote_write WAL அடிப்படையில் (ஆசிரியர் கலம் ஸ்டியன் கிராஃபனா லேப்ஸிலிருந்து) மற்றும் தோல்விக்குப் பிறகு எழுதப்பட்ட தோல்விகளை மீண்டும் மீண்டும் செய்தேன்.

குபெர்னெட்டஸில் உள்ள பாட் முன்னுரிமைகள் எப்படி கிராஃபானா லேப்ஸில் வேலையில்லா நேரத்தை ஏற்படுத்தியது
உற்பத்தி கிளஸ்டர் எழுதும் செயல்பாடுகள்

கண்டுபிடிப்புகள்

இச்சம்பவத்திலிருந்து பாடம் கற்று, அது மீண்டும் நிகழாமல் இருக்க தேவையான நடவடிக்கைகளை எடுப்பது அவசியம்.

பின்னோக்கிப் பார்த்தால், நாம் இயல்புநிலையை அமைத்திருக்கக் கூடாது средний உற்பத்தியில் உள்ள அனைத்து இன்ஜெஸ்டர்களும் பெறும் வரை முன்னுரிமை உயரமான ஒரு முன்னுரிமை. கூடுதலாக, அவற்றை முன்கூட்டியே கவனித்துக்கொள்வது அவசியம் உயர் முன்னுரிமை. இப்போது எல்லாம் சரியாகிவிட்டது. குபெர்னெட்டஸில் பாட் முன்னுரிமைகளைப் பயன்படுத்துவதைக் கருத்தில் கொண்டு பிற நிறுவனங்களுக்கு எங்கள் அனுபவம் உதவும் என்று நம்புகிறோம்.

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

இறுதியாக, நாங்கள் கண்ட ஓவர்லோட் OOM ஐத் தடுக்க, அங்கீகார ரிவர்ஸ் ப்ராக்ஸியின் மறுஅளவை தானியக்கமாக்குவோம், மேலும் எதிர்காலத்தில் இதுபோன்ற சிக்கல்களைத் தடுக்க, வீழ்ச்சி மற்றும் அளவிடுதல் தொடர்பான Prometheus இயல்புநிலை அமைப்புகளை மதிப்பாய்வு செய்வோம்.

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

மொழிபெயர்ப்பாளரிடமிருந்து பி.எஸ்

எங்கள் வலைப்பதிவிலும் படிக்கவும்:

ஆதாரம்: www.habr.com

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