Mgbe Linux conntrack abụghịzi enyi gị

Mgbe Linux conntrack abụghịzi enyi gị

Njikọ njikọ ("conntrack") bụ akụkụ bụ isi nke nchịkọta netwọk kernel Linux. Ọ na-enye kernel ohere idobe njikọ netwọkụ niile ezi uche dị na ya ma ọ bụ na-asọ asọ wee si otú ahụ chọpụta ngwugwu niile na-eme ka mmiri ọ bụla mejupụta ka e wee hazie ha ọnụ n'usoro.

Conntrack bụ njirimara kernel dị mkpa nke ejiri mee ihe n'ụfọdụ isi:

  • NAT dabere na ozi sitere na conntrack ka o wee nwee ike ịgwọ ngwugwu niile sitere na otu iyi n'otu n'otu. Dịka ọmụmaatụ, mgbe pọd nwetara ọrụ Kubernetes, kube-proxy load balancer na-eji NAT duru okporo ụzọ gaa na pọd akọwapụtara n'ime ụyọkọ ahụ. Conntrack na-edekọ na maka njikọ enyere, a ga-ezigarịrị ngwugwu niile na ọrụ IP n'otu pọd ahụ, yana ngwugwu ndị azụ azụ azụ ga-eweghachi na pọd ebe arịrịọ ahụ si bịa.
  • Ọkụ ọkụ steeti dị ka Calico na-adabere na ozi sitere na njikọ njikọ gaa na okporo ụzọ “azaghachi”. Nke a na-enye gị ohere ide amụma netwọkụ nke na-ekwu "kwe ka pọd m jikọọ na adreesị IP ọ bụla dịpụrụ adịpụ" na-enweghị ide iwu iji kwe ka okporo ụzọ nzaghachi kwenye. (Enweghị nke a, ị ga-agbakwunye obere nchekwa "kwe ka ngwugwu na pọd m site na iwu IP ọ bụla.")

Na mgbakwunye, conntrack na-eme ka arụmọrụ sistemu dịkwuo mma (site n'ibelata oriri CPU na nkwụsị nke ngwugwu) ebe ọ bụ naanị ngwugwu mbụ na iyi.
ga-agafe na netwọk netwọk niile iji chọpụta ihe a ga-eme ya. Lee post ahụ"Tụnyere ụdịdị kube-proxy" ka ịhụ ihe atụ nke otú o si arụ ọrụ.

Agbanyeghị, conntrack nwere oke ya ...

Ya mere, ebee ka ihe niile gara nke ọma?

Tebụl conntrack nwere oke nhazi nke ukwuu, ma ọ bụrụ na ọ na-ejupụta, njikọ na-amalitekarị ịjụ ma ọ bụ tufuo. Enwere ohere zuru oke na tebụl iji jikwaa okporo ụzọ nke ọtụtụ ngwa, na nke a agaghị abụ nsogbu. Agbanyeghị, enwere ọnọdụ ole na ole ị ga-achọ ịtụle iji tebụl conntrack:

  • Nke kacha pụta ìhè bụ ma ọ bụrụ na ihe nkesa gị na-ejikwa ọnụ ọgụgụ dị ukwuu nke njikọ na-arụ ọrụ n'otu oge. Dịka ọmụmaatụ, ọ bụrụ na ahaziri tebụl conntrack gị maka ntinye 128k, mana ị nwere> 128k njikọ oge, ị ga-abanye na nsogbu!
  • Ihe dị ntakịrị na-apụtachaghị ìhè: ọ bụrụ na ihe nkesa gị na-arụ ọrụ ọnụ ọgụgụ njikọ dị ukwuu kwa sekọnd. Ọbụlagodi na njikọ ndị ahụ dị mkpụmkpụ, Linux na-aga n'ihu na-enyocha ha ruo oge ụfọdụ (120s na ndabara). Dịka ọmụmaatụ, ọ bụrụ na ahaziri tebụl conntrack gị maka ntinye 128k na ị na-agbalị ijikwa njikọ 1100 kwa nkeji, ha ga-agafe nha nke tebụl conntrack ọbụlagodi na njikọ ahụ dị mkpụmkpụ (128k/120s = 1092 njikọ / s). ).

Enwere ụdị niche dị iche iche nke dabara na ngalaba ndị a. Na mgbakwunye, ọ bụrụ na ị nwere ọtụtụ ndị na-eme ihe ọjọọ, ijupụta tebụl conntrack nke ihe nkesa gị nwere ike iji ọtụtụ njikọ mepere emepe dị ka akụkụ nke ịgọnarị ọrụ (DOS). N'okwu abụọ a, nkwekọrịta nwere ike ịghọ ihe mgbochi na-egbochi gị na sistemụ gị. N'ọnọdụ ụfọdụ, ịhazigharị paramita tebụl conntrack nwere ike zuru ezu iji gboo mkpa gị - site n'ịbawanye nha ma ọ bụ ibelata oge nkwụsị (mana ọ bụrụ na ịmee ya na-ezighị ezi, ị ga-abanye n'ọtụtụ nsogbu). Maka oge ndị ọzọ ọ ga-adị mkpa ịgafe contrack maka okporo ụzọ ike ike.

Ezigbo ihe atụ

Ka anyị nye otu ọmụmaatụ: otu nnukwu onye na-eweta SaaS anyị na-arụkọ ọrụ nwere ọtụtụ sava memcached na ndị ọbịa (ọ bụghị igwe mebere), nke ọ bụla na-ahazi njikọ 50K + obere oge kwa sekọnd.

Ha nwalere nhazi nke nkwekọrịta, na-abawanye nha tebụl na ibelata oge nsochi, ma nhazi ahụ enweghị ntụkwasị obi, oriri RAM mụbara nke ukwuu, nke bụ nsogbu (na usoro GBytes!), Njikọ ndị ahụ dị mkpụmkpụ nke na conntrack emeghị. mepụta uru arụmọrụ ọ na-emebu (mbelata CPU oriri ma ọ bụ latency ngwugwu).

Ha tụgharịrị na Calico dị ka ihe ọzọ. Amụma netwọkụ Calico na-enye gị ohere iji conntrack maka ụfọdụ ụdị okporo ụzọ (iji nhọrọ iwu doNotTrack). Nke a nyere ha ọkwa arụmọrụ ha chọrọ, gbakwunyere ọkwa nchekwa nke Calico nyere.

Ogologo oge ole ka ị ga-aga ịgafe nkwekọrịta?

  • Atumatu netwọkụ adịghị eso kwesịrị n'ozuzu ha na-adị nhịahụ. N'ihe banyere onye na-eweta SaaS: ngwa ha na-agba ọsọ n'ime mpaghara echedoro ya mere, na-eji usoro netwọkụ, ha nwere ike depụta okporo ụzọ site na ngwa ndị ọzọ akọwapụtara nke enyere ohere ịnweta memcached.
  • Iwu adịghị-egwu anaghị eburu n'uche ntụziaka njikọ ahụ. Ya mere, ọ bụrụ na emechiri ihe nkesa memcached, ị nwere ike ịnwa ijikọ na ndị ahịa ọ bụla memcached, ọ bụrụhaala na ọ na-eji ọdụ ụgbọ mmiri ziri ezi. Otú ọ dị, ọ bụrụ na ị kọwapụtala nke ọma ụkpụrụ netwọkụ maka ndị ahịa echekwabara, mgbe ahụ, a ka ga-ajụ mbọ njikọ ndị a n'akụkụ ndị ahịa.
  • A na-etinye usoro iwu adịghị egwu na ngwugwu ọ bụla, n'adịghị ka atumatu nkịtị, nke a na-etinye naanị na ngwugwu mbụ na ntinye. Nke a nwere ike ịbawanye oriri CPU kwa ngwugwu n'ihi na a ga-etinyerịrị amụma maka ngwugwu ọ bụla. Mana maka njikọ dị mkpụmkpụ, a na-akwụ ụgwọ a site na mbelata oriri akụrụngwa maka nhazi nkwekọrịta. Dịka ọmụmaatụ, n'ihe banyere onye na-eweta SaaS, ọnụ ọgụgụ nke ngwugwu maka njikọ ọ bụla dị ntakịrị, ya mere oriri CPU agbakwunyere mgbe itinye iwu na ngwugwu ọ bụla ziri ezi.

Ka anyị malite ịnwale

Anyị ji ihe nkesa memcached na ọtụtụ pọd ndị ahịa memcached na-agba ọsọ n'ọnụ ọnụ dịpụrụ adịpụ ka anyị wee nwee ike ịgbakọ ọnụ ọgụgụ njikọ dị ukwuu kwa sekọnd. Ihe nkesa nwere pọd nkesa memcached nwere cores 8 na ntinye 512k na tebụl conntrack (ọkọlọtọ ahaziri nha tebụl maka onye ọbịa).
Anyị tụrụ ọrụ dị iche n'etiti: enweghị amụma netwọk; na ụkpụrụ Calico mgbe niile; na Calico adịghị-egwu amụma.

Maka ule mbụ, anyị na-edobe ọnụọgụ njikọ na 4.000 kwa nkeji, ka anyị nwee ike ilekwasị anya na ọdịiche dị na oriri CPU. Enweghị nnukwu ọdịiche dị n'etiti enweghị amụma na amụma oge niile, mana esola oriri CPU mụbara ihe dịka 20%:

Mgbe Linux conntrack abụghịzi enyi gị

N'ime ule nke abụọ, anyị malitere ọtụtụ njikọ dịka ndị ahịa anyị nwere ike ịmepụta ma tụọ ọnụọgụ njikọ kachasị kwa nkeji nke sava anyị memcached nwere ike ijikwa. Dị ka a tụrụ anya, ikpe “enweghị amụma” na “atumatu oge niile” ruru njedebe nkwekọrịta karịrị njikọ 4,000 kwa sekọnd (512k/120s = 4,369 njikọ/s). Site na iwu adịghị-egwu, ndị ahịa anyị zigara njikọ 60,000 kwa sekọnd n'enweghị nsogbu ọ bụla. Anyị ji n'aka na anyị nwere ike ịbawanye ọnụọgụ a site n'ịgbakwunye ọtụtụ ndị ahịa, mana anyị chere na ọnụọgụ ndị a ezuola iji gosi isi ihe dị n'isiokwu a!

Mgbe Linux conntrack abụghịzi enyi gị

nkwubi

Conntrack bụ njirimara kernel dị mkpa. Ọ na-arụ ọrụ ya nke ọma. A na-ejikarị akụkụ sistemu isi eme ya. Agbanyeghị, n'ọnọdụ ụfọdụ akọwapụtara, nchichi n'ihi conntrack karịrị uru nkịtị ọ na-enye. N'ọnọdụ a, enwere ike iji atumatu netwọkụ Calico were họrọ gbanyụọ ojiji nke nkwekọrịta ka ọ na-abawanye nchekwa netwọkụ. Maka okporo ụzọ ndị ọzọ niile, contrack na-aga n'ihu ịbụ enyi gị!

Gụọkwa akụkọ ndị ọzọ na blọọgụ anyị:

isi: www.habr.com

Tinye a comment