Kubernetes: Ceev koj cov kev pabcuam los ntawm kev tshem tawm CPU txwv
Rov qab rau xyoo 2016 peb ntawm Buffer hloov mus rau Kubernetes, thiab tam sim no txog 60 nodes (ntawm AWS) thiab 1500 ntim tau ua haujlwm ntawm peb k8s pawg tswj hwm los ntawm ncaws. Txawm li cas los xij, peb tau tsiv mus rau microservices los ntawm kev sim thiab ua yuam kev, thiab txawm tias tom qab ob peb xyoos ntawm kev ua haujlwm nrog k8s peb tseem ntsib teeb meem tshiab. Hauv tsab ntawv no peb yuav tham txog processor txwv: vim li cas peb thiaj xav tias lawv xyaum ua zoo thiab vim li cas lawv thiaj li tsis zoo.
Processor txwv thiab throttling
Zoo li ntau lwm tus neeg siv Kubernetes, Google pom zoo kom teeb tsa CPU txwv. Yog tsis muaj qhov teeb tsa zoo li no, cov thawv ntim hauv ib lub node tuaj yeem nqa tag nrho lub zog processor, uas ua rau cov txheej txheem Kubernetes tseem ceeb (piv txwv li. kubelet) yuav tsum tsis txhob teb cov lus thov. Yog li, teeb tsa CPU txwv yog txoj hauv kev zoo los tiv thaiv koj cov nodes.
Cov txheej txheem txwv tau teeb tsa lub thawv rau lub sijhawm CPU siab tshaj plaws nws tuaj yeem siv rau lub sijhawm tshwj xeeb (default yog 100ms), thiab lub thawv yuav tsis pub dhau qhov kev txwv no. Hauv Kubernetes rau throttling ntim thiab tiv thaiv kom tsis txhob dhau qhov kev txwv, ib qho cuab yeej tshwj xeeb yog siv CFS Quota, tab sis cov kev txwv CPU dag no yuav ua rau muaj kev ua haujlwm hnyav thiab ua rau lub sijhawm teb ntawm koj cov ntim khoom.
Yuav ua li cas tshwm sim yog tias peb tsis teem processor txwv?
Hmoov tsis zoo, peb tus kheej yuav tsum tau ntsib qhov teeb meem no. Txhua lub node muaj cov txheej txheem los tswj cov ntim khoom kubelet, thiab nws tsis teb cov lus thov. Cov node, thaum qhov no tshwm sim, yuav mus rau hauv lub xeev NotReady, thiab ntim los ntawm nws yuav raug xa mus rau lwm qhov thiab tsim cov teeb meem tib yam ntawm cov nodes tshiab. Tsis yog qhov zoo tagnrho scenario, hais qhov tsawg kawg nkaus.
Lub metric tseem ceeb rau lub thawv taug qab yog trottling, nws qhia tau hais tias pes tsawg zaus koj lub thawv tau throttled. Peb tau pom nrog kev txaus siab ntawm qhov muaj qhov throttling hauv qee lub thawv, tsis hais seb lub processor load yog qhov hnyav lossis tsis. Ua piv txwv, cia peb saib ib qho ntawm peb lub ntsiab APIs:
Raws li koj tuaj yeem pom hauv qab no, peb tau teeb tsa qhov kev txwv rau 800m (0.8 los yog 80% core), thiab ncov qhov tseem ceeb ntawm qhov zoo tshaj plaws ncav cuag 200m (20% core). Nws yuav zoo li tias ua ntej throttling qhov kev pabcuam peb tseem muaj ntau lub zog processor, txawm li cas los xij ...
Tej zaum koj yuav tau pom tias txawm tias thaum lub processor thauj khoom qis dua qhov txwv tsis pub dhau - qhov tseem ceeb hauv qab - throttling tseem tshwm sim.
EKS tseem tau kho dua nyob rau lub Kaum Ob Hlis 2019. Yog tias koj qhov version qis dua qhov no, koj yuav tsum hloov kho AMI.
kops: Txij lub Rau Hli 2020 Ρ kops 1.18+ Lub ntsiab host duab yuav yog Ubuntu 20.04. Yog tias koj version ntawm kops laus dua, koj yuav tau tos kom kho. Peb tus kheej tab tom tos tam sim no.
GKE (Google Cloud): Txhim kho kev sib koom ua ke hauv lub Ib Hlis 2020, txawm li cas los xij muaj teeb meem nrog throttling tseem pom.
Yuav ua li cas yog qhov kho tau qhov teeb meem throttling?
Kuv tsis paub tseeb tias qhov teeb meem daws tau tag nrho. Thaum peb tau txais mus rau cov ntsiav version nrog qhov kho, Kuv yuav sim cov pawg thiab hloov kho cov ncej. Yog tias leej twg tau hloov kho, kuv xav nyeem koj cov txiaj ntsig.
xaus
Yog tias koj ua haujlwm nrog Docker ntim hauv Linux (tsis hais Kubernetes, Mesos, Swarm lossis lwm tus), koj lub thawv yuav poob kev ua haujlwm vim muaj kev cuam tshuam;
Sim hloov kho mus rau qhov tseeb version ntawm koj qhov kev faib tawm hauv kev cia siab tias kab laum twb tau kho lawm;
Tshem tawm cov kev txwv processor yuav daws tau qhov teeb meem, tab sis qhov no yog cov txheej txheem txaus ntshai uas yuav tsum tau siv nrog ceev faj heev (nws yog qhov zoo dua los ua ntej hloov cov ntsiav thiab sib piv cov txiaj ntsig);
Yog tias koj tau tshem CPU txwv, ua tib zoo saib xyuas koj lub CPU thiab kev siv lub cim xeeb thiab xyuas kom tseeb tias koj cov peev txheej CPU muaj ntau tshaj qhov koj noj;