Blog

Faylka Swap-ka ee Maqnaa ee Server-keena Qabsaday

Bishii 24-na Sebtember, server production ah oo ka mid ah ayaa joogsaday jawaabta. Load balancer-ku wuxuu calaamadeeyay inuu caafimaad darro, aaladdayadii fogaynta ee remote-ka ahayd ma gaari karin — laakiin wax ma burburin, xusuusna looma dilin inuu wax badan isticmaalayo. Server-ku wuxuu ku dhacay thrashing: iyadoo aan swap space lahayn oo containers-ka xusuus u oggolaanayeen inay ka badan yihiin waxa mishiinka ku jira, Linux wuxuu wakhtigiisa ku bixinayay in uu tuuro oo dib u akhriyo faylalka uu u baahnaa si uu u shaqeeyo, halkaasna wax yar ayuu dhaqaaqayay. Ku darista swap file 2 GB ah server kasta waxay xaliday. Casharka ugu xiisaha badan wuxuu ahaa health checks-ka.

Waxa "joogsaday" la macno ahaa

  • Health checks-ka load balancer-ku wuxuu ku waayay server-kaas.
  • Amarrada loo diro AWS Systems Manager waxay ku sugnaayeen "Pending" oo weligood ma socon.
  • Log-yada ma jirin kill xusuus oo out-of-memory ah. Process ma dhimanin.

Toddobaad ka hor waxaan production u guurinay server-yo ARM yar oo leh 2 GB RAM kasta. Server-keena staging-ka, oo ka yar ah, ayaa si isku mid ah u joogsaday markii uu furayay container image intii deploy-ka socday.

Maxaa u ma jirin khalad xusuus?

Linux wuxuu dilaa process kaliya marka uu si dhab ah u ku xaabo xusuus aan dib loo qaadan karin. Ka hor intaas, wuxuu xusuusta ka qaadaa page cache — nuqullada faylalka uu ku hayo RAM-ka, oo ay ku jiraan code-ka barnaamij kasta oo socda.

Server-keena, xadadka xusuusta ee containers-ka oo isku geeya waxay gaareen qiyaastii 3.3 GB mishiin ku jira qiyaastii 1.8 GB oo la isticmaali karo. Caadi ahaan ma isticmaalaan dhammaantood xadkooda isku mar. Markay isticmaaleen, kernel-ku wuxuu cache-ka ka tuuri jiray code-ka barnaamijyada, kadibna mar kasta oo code-kaas dib u shaqeeyo, waa in disk-ka laga akhriyo. Wareeggaas — thrashing — wuxuu mishiinka ka dhigi karaa mid aad u jawaab la'aan ah, iyadoon farsamo ahaan xusuusta dhammaysan. Sidaas darteed waxba ma dilmo, waxna ma soo kabsado.

Swap la'aanteed, kernel-ku ma haysto meel uu xusuusta la qoondeeyay laakiin aan badanaa la isticmaalin ku rido, sidaas darteed waa inuu ka qaadaa cache-ka.

Hagaajinta

Script-ka bootstrap-ka server-ka hadda wuxuu abuuraa swap file 2 GB ah oo leh swappiness hoose (10) mar kasta oo server-ku bilaabo ama la hagaajiyo. Swappiness hoose macnaheedu waa kernel-ku wali wuxuu doorbidayaa inuu xusuusta shaqada ku hayo RAM-ka, laakiin bogagga aan badanaa la taabtay ayaa dhaqdhaqaaq ku sameyn kara disk-ka halkii ay code-ka cache-ka ka tuuri lahaayeen. Waxaan ku dabaqnay si toos ah production labada server iyo staging, pipeline-ka deploy-ka wuxuu dib u daabacaa script-ka bootstrap-ka deploy production kasta, si server la beddelay uu u helo.

Qaybta na walbahaarisay: server-ka joogsaday wuu sii joogay

Group-keena server-ka wuxuu isticmaalay EC2 health checks — "ma socdaa mishiinka?" — ma aha load balancer health checks — "ma jawaabaa codsiyada?". Sidaas darteed server-ka load balancer-ku waayay wuxuu ahaa caafimaad qaba si uu group-ku u arko. Weligeed looma beddeli doono. Production wuxuu si aamusan ugu shaqeyn lahaa server kaliya ilaa qof uu ogaado oo mid kale uu dib u bilaabo.

Beddelidda group-ka oo isticmaasha load balancer health checks waxay u muuqataa xal cad, laakiin dhibaato ayaa ku jirtaa: intii deploy-ka socota, server-yadu si ula kac ah ayay u jawaabaan endpoint-ka caafimaadka khalad, si load balancer-ku u sii daayo (eeg sida aan u gaarnay deploy-yo aan 502 lahayn). Group-ka oo server-yada ku beddela calaamaddaas waxay ku beddeli lahayd dhexda deploy kasta.

Sidaas darteed hadda waxaan ku darnay tallaabo ku jirta liistada deploy-keena: deploy kasta ka dib, hubi caafimaadka target kasta load balancer-ka, ma aha oo kaliya in deploy job-ku guuleystay. Haddii amarrada loo diro server-ka ay ku sugnaadaan "Pending", waa thrashing — dib u bilow; horey ayuu u baxay rotation-ka.

Waxa aan ka barannay

  • "Ma burburaysa" ma aha "caafimaad qaba". Thrashing wuxuu soo saaraa cillad la'aan, kaliya gaabis ah oo aad u daran oo mishiinka ka dhigaysa mid jawaab la'aan ah.
  • Server-yada yaryar waxay u baahan yihiin swap. Xitaa yar, oo swappiness hoose leh, waxay siinaysaa kernel meel uu xusuusta qabow ku ridi karo.
  • Xadadka xusuusta ee isku geeya ka badan mishiinka waa khatar. Mararka qaarkood waad lumisaa. Ogow markaad isku dayday.
  • Ogow health check-ka uu autoscaling-ku isku halayn. Health check kaliya weydiinaya "VM-ku daahan yahay?" ma beddeli doono server joogsaday.

Mythex · Pricing · Wax kasta ku dhis AI · Templates-ka website-ka iyo app-ka · Mythex marka la barbar dhigo · Qaamuuska dhismaha app-ka AI · Qalabka bilaashka ah ee dhismaha app-ka AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)