Thaum Linux conntrack tsis yog koj tus phooj ywg lawm

Thaum Linux conntrack tsis yog koj tus phooj ywg lawm

Kev sib txuas mus txog qhovtwg ("conntrack") yog qhov tseem ceeb ntawm Linux kernel networking pawg. Nws tso cai rau cov kernel kom taug qab txhua qhov kev sib txuas hauv lub network lossis cov ntws thiab yog li txheeb xyuas tag nrho cov pob ntawv uas ua rau txhua qhov ntws kom lawv tuaj yeem ua tiav ua ke.

Conntrack yog ib qho tseem ceeb kernel feature uas yog siv nyob rau hauv qee qhov xwm txheej:

  • NAT tso siab rau cov ntaub ntawv los ntawm conntrack yog li nws tuaj yeem kho txhua pob ntawv los ntawm tib lub kwj dej sib npaug. Piv txwv li, thaum lub pod nkag mus rau Kubernetes cov kev pabcuam, kube-proxy load balancer siv NAT coj cov tsheb mus rau ib lub pod tshwj xeeb hauv pawg. Conntrack cov ntaub ntawv hais tias rau ib qho kev sib txuas, tag nrho cov pob ntawv mus rau qhov kev pab cuam IP yuav tsum raug xa mus rau tib lub pod, thiab cov pob ntawv xa rov qab los ntawm lub backend pod yuav tsum tau NATed rov qab mus rau lub pod uas qhov kev thov tuaj.
  • Stateful firewalls xws li Calico cia siab rau cov ntaub ntawv los ntawm connecttrack rau whitelist " teb" tsheb. Qhov no tso cai rau koj sau ib txoj cai network uas hais tias "tso cai rau kuv lub pod txuas mus rau tej thaj chaw deb IP chaw nyob" yam tsis tas yuav sau tsab cai kom meej meej tso cai rau cov lus teb. (Yog tsis muaj qhov no, koj yuav tsum tau ntxiv qhov tsis muaj kev nyab xeeb ntau "tso cov pob ntawv rau kuv lub plhaub ntawm ib qho IP" txoj cai.)

Tsis tas li ntawd, conntrack feem ntau txhim kho qhov kev ua tau zoo (los ntawm kev txo qis CPU noj thiab pob ntawv latency) txij li tsuas yog thawj pob ntawv hauv kwj
yuav tsum mus los ntawm tag nrho cov pawg network los txiav txim seb yuav ua li cas nrog nws. Saib tus ncej "Kev sib piv ntawm kube-proxy hom"kom pom ib qho piv txwv ntawm qhov no ua haujlwm li cas.

Txawm li cas los xij, conntrack muaj nws cov kev txwv ...

Yog li qhov twg nws tag nrho mus yuam kev?

Lub rooj conntrack muaj qhov loj tshaj plaws configurable, thiab yog tias nws tau tag nrho, kev sib txuas feem ntau pib raug tsis lees paub lossis poob. Muaj qhov chaw dawb txaus hauv lub rooj los tswj cov tsheb khiav ntawm cov ntawv thov feem ntau, thiab qhov no yuav tsis muaj teeb meem. Txawm li cas los xij, muaj qee qhov xwm txheej uas koj yuav xav xav txog kev siv cov lus conntrack:

  • Cov teeb meem pom tseeb tshaj plaws yog tias koj lub server ua haujlwm ntau heev ntawm kev sib txuas ua ke. Piv txwv li, yog tias koj lub rooj conntrack tau teeb tsa rau 128k nkag, tab sis koj muaj> 128k concurrent kev sib txuas, koj yuav muaj tseeb khiav mus rau qhov teeb meem!
  • Ib qho teeb meem me ntsis pom tseeb: yog tias koj lub server ua haujlwm ntau heev ntawm kev sib txuas ib ob. Txawm hais tias cov kev sib txuas tsis ntev los no, lawv tseem raug saib xyuas los ntawm Linux rau qee lub sijhawm (120s los ntawm lub neej ntawd). Piv txwv li, yog tias koj lub rooj conntrack tau teeb tsa rau 128k nkag thiab koj tab tom sim tswj 1100 kev sib txuas hauv ib ob, lawv yuav dhau qhov loj ntawm lub rooj conntrack, txawm tias qhov kev sib txuas yog luv luv (128k / 120s = 1092 kev sib txuas / s).

Muaj ntau hom niche ntawm cov apps uas poob rau hauv pawg no. Tsis tas li ntawd, yog tias koj muaj ntau tus neeg ua phem phem, sau koj tus neeg rau zaub mov lub rooj sib tham nrog ntau qhov kev sib txuas ib nrab qhib tuaj yeem siv los ua ib feem ntawm kev tsis lees paub kev pabcuam (DOS) nres. Hauv ob qho xwm txheej, conntrack tuaj yeem dhau los ua qhov txwv tsis pub muaj nyob hauv koj lub cev. Qee zaum, kho qhov conntrack cov lus tsis tuaj yeem txaus kom tau raws li koj cov kev xav tau - los ntawm kev nce qhov loj lossis txo lub sijhawm conntrack (tab sis yog tias koj ua tsis yog, koj yuav khiav mus rau ntau qhov teeb meem). Rau lwm qhov xwm txheej nws yuav tsim nyog los hla kev sib tw rau kev taug kev nruj.

Piv txwv tiag

Cia peb muab ib qho piv txwv tshwj xeeb: ib tus neeg muab kev pabcuam SaaS loj uas peb tau ua haujlwm nrog muaj ntau tus memcached servers ntawm cov tswv (tsis yog lub tshuab virtual), txhua qhov ua tiav 50K + kev sib txuas luv luv ib ob.

Lawv tau sim nrog conntrack configuration, nce rooj qhov ntau thiab tsawg thiab txo cov sij hawm taug qab, tab sis qhov kev teeb tsa tsis muaj kev ntseeg siab, RAM noj tau nce ntau, uas yog qhov teeb meem (ntawm qhov kev txiav txim ntawm GBytes!), thiab cov kev sib txuas tau luv heev uas conntrack tsis tau. tsim nws cov txiaj ntsig kev ua tau zoo li niaj zaus (txo kev noj CPU lossis pob ntawv latency).

Lawv tig mus rau Calico ua lwm txoj hauv kev. Calico network txoj cai tso cai rau koj tsis txhob siv conntrack rau qee hom kev khiav tsheb (siv doNotTrack txoj cai xaiv). Qhov no tau muab lawv cov qib kev ua tau zoo uas lawv xav tau, ntxiv rau qib ntxiv ntawm kev ruaj ntseg muab los ntawm Calico.

Ntev npaum li cas koj yuav tau mus rau bypass conntrack?

  • Do-not-track network txoj cai yuav tsum feem ntau yog symmetrical. Nyob rau hauv cov ntaub ntawv ntawm SaaS tus neeg zov me nyuam: lawv cov ntawv thov tau khiav hauv thaj chaw tiv thaiv thiab yog li ntawd, siv txoj cai network, lawv tuaj yeem tso npe dawb ntawm lwm cov ntawv thov tshwj xeeb uas tau tso cai nkag mus rau memcached.
  • Txoj cai do-not-track tsis coj mus rau hauv tus account cov kev taw qhia ntawm kev sib txuas. Yog li, yog tias tus neeg rau zaub mov memcached raug nyiag lawm, koj tuaj yeem ua txoj hauv kev sim txuas mus rau ib qho ntawm cov neeg siv memcached, tsuav nws siv qhov chaw nres nkoj raug. Txawm li cas los xij, yog tias koj tau txiav txim siab txoj cai network rau koj cov neeg siv memcached, ces cov kev sib txuas no tseem yuav raug tsis lees paub ntawm tus neeg siv khoom.
  • Txoj cai tsis txhob taug qab yog siv rau txhua pob ntawv, uas tsis yog cov cai ib txwm siv, uas tsuas yog siv rau thawj pob ntawv hauv kev ntws. Qhov no tuaj yeem ua rau nce CPU noj ib pob ntawv vim tias txoj cai yuav tsum raug siv rau txhua pob ntawv. Tab sis rau kev sib txuas luv luv, cov nuj nqis no sib npaug los ntawm kev txo cov peev txheej siv rau kev ua tiav. Piv txwv li, nyob rau hauv cov ntaub ntawv ntawm SaaS cov chaw muab kev pab, tus naj npawb ntawm cov pob ntawv rau txhua qhov kev sib txuas yog tsawg heev, yog li kev siv CPU ntxiv thaum siv cov cai rau txhua pob ntawv raug tsim nyog.

Cia peb pib sim

Peb tau khiav qhov kev xeem ntawm ib lub pod nrog ib tus neeg rau zaub mov memcached thiab ntau tus neeg siv memcached cov pods khiav ntawm cov chaw taws teeb tswj kom peb tuaj yeem khiav ntau qhov kev sib txuas hauv ib ob. Cov neeg rau zaub mov nrog memcached server pod muaj 8 cores thiab 512k nkag hauv lub rooj conntrack (tus qauv teeb tsa lub rooj loj rau tus tswv tsev).
Peb ntsuas qhov kev ua tau zoo ntawm qhov sib txawv ntawm: tsis muaj txoj cai network; nrog Calico txoj cai tsis tu ncua; thiab Calico do-not-track policy.

Rau thawj qhov kev sim, peb teeb tsa tus naj npawb ntawm kev sib txuas rau 4.000 ib ob, yog li peb tuaj yeem tsom mus rau qhov sib txawv ntawm CPU noj. Tsis muaj qhov sib txawv tseem ceeb ntawm tsis muaj txoj cai thiab txoj cai tsis tu ncua, tab sis tsis txhob taug qab nce CPU noj li ntawm 20%:

Thaum Linux conntrack tsis yog koj tus phooj ywg lawm

Hauv kev sim thib ob, peb tau tshaj tawm ntau qhov kev sib txuas raws li peb cov neeg siv khoom tuaj yeem tsim thiab ntsuas qhov siab tshaj plaws ntawm kev sib txuas hauv ib ob uas peb cov neeg siv memcached tuaj yeem ua tau. Raws li qhov xav tau, "tsis muaj txoj cai" thiab "txoj cai tsis tu ncua" ob qho tib si tau mus txog qhov txwv tsis pub dhau 4,000 kev sib txuas hauv ib ob (512k / 120s = 4,369 txuas / s). Nrog rau txoj cai tsis txhob taug qab, peb cov neeg siv khoom xa 60,000 kev sib txuas hauv ib ob yam tsis muaj teeb meem. Peb paub tseeb tias peb tuaj yeem nce tus lej no los ntawm kev ntxiv cov neeg siv khoom ntxiv, tab sis peb xav tias cov lej no twb txaus los piav qhia txog cov ntsiab lus ntawm tsab xov xwm no!

Thaum Linux conntrack tsis yog koj tus phooj ywg lawm

xaus

Conntrack yog ib qho tseem ceeb kernel feature. Nws ua nws txoj hauj lwm zoo kawg nkaus. Nws feem ntau yog siv los ntawm cov ntsiab lus tseem ceeb. Txawm li cas los xij, hauv qee qhov xwm txheej tshwj xeeb, qhov congestion vim conntrack outweighs cov txiaj ntsig ib txwm nws muab. Hauv qhov xwm txheej no, Calico network cov cai tuaj yeem siv los xaiv lov tes taw kev siv conntrack thaum nce kev ruaj ntseg network. Rau tag nrho lwm cov tsheb, conntrack tseem yog koj tus phooj ywg!

Kuj nyeem lwm cov ntawv hauv peb blog:

Tau qhov twg los: www.hab.com

Ntxiv ib saib