Rehefa tsy namanao intsony ny conntrack Linux

Rehefa tsy namanao intsony ny conntrack Linux

Ny fanaraha-maso ny fifandraisana ("conntrack") dia singa fototra amin'ny tambajotra kernel Linux. Izy io dia mamela ny kernel hanara-maso ny fifandraisan'ny tambajotra lojika rehetra na ny fikorianan'ny tambajotra ary amin'izany no hamantarana ny fonosana rehetra mandrafitra ny fikorianan'ny tsirairay mba hahafahan'izy ireo karakaraina miaraka.

Conntrack dia endri-javatra kernel manan-danja izay ampiasaina amin'ny tranga fototra sasany:

  • Ny NAT dia miantehitra amin'ny fampahalalana avy amin'ny conntrack mba hahafahany mitondra ny fonosana rehetra avy amin'ny renirano iray mitovy. Ohatra, rehefa miditra amin'ny serivisy Kubernetes ny pod iray, dia mampiasa NAT ny mpifandanja entana kube-proxy mba hitarihana ny fifamoivoizana mankany amin'ny pod manokana ao anatin'ilay cluster. Noraketin'i Conntrack fa ho an'ny fifandraisana iray, ny fonosana rehetra amin'ny serivisy IP dia tsy maintsy alefa any amin'ny pod iray ihany, ary ny fonosana naverin'ny pod backend dia tsy maintsy averina any amin'ny pod izay niavian'ny fangatahana.
  • Miantehitra amin'ny fampahalalana avy amin'ny connecttrack mankany amin'ny fifamoivoizana "valiny" amin'ny lisitra fotsy ny firewalls toy ny Calico. Izany dia ahafahanao manoratra politikan'ny tambajotra izay milaza hoe "avelao ny pod-ko hifandray amin'ny adiresy IP lavitra" nefa tsy mila manoratra politika hamela mazava ny fifamoivoizana valiny. (Raha tsy misy izany dia tsy maintsy ampidirinao ny fitsipika "avelao ny fonosana amin'ny pod avy amin'ny IP" tsy dia azo antoka kokoa.)

Fanampin'izany, ny conntrack dia manatsara ny fahombiazan'ny rafitra amin'ny ankapobeny (amin'ny fampihenana ny fanjifana CPU sy ny faharetan'ny fonosana) satria ny fonosana voalohany ao anaty renirano ihany.
dia tsy maintsy mandalo ny tambazotran'ny tambazotra manontolo mba hamaritana izay tokony hatao amin'izany. Jereo ny lahatsoratra "Fampitahana ny maody kube-proxy" mba hahitana ohatra iray amin'ny fomba fiasa.

Misy fetrany anefa ny conntrack...

Taiza Γ ry no tsy nety?

Ny latabatra conntrack dia manana habe ambony indrindra azo amboarina, ary raha feno izany dia matetika manomboka lavina na latsaka ny fifandraisana. Misy toerana malalaka malalaka eo amin'ny latabatra hiatrehana ny fifamoivoizana amin'ny ankamaroan'ny fampiharana, ary tsy ho olana mihitsy izany. Na izany aza, misy scenario vitsivitsy azonao dinihina amin'ny fampiasana ny tabilao conntrack:

  • Ny tranga miharihary indrindra dia raha mitantana fifandraisana maro be miaraka miasa ny mpizara anao. Ohatra, raha namboarina ho an'ny fidirana 128k ny tabilao conntrack anao, saingy manana fifandraisana 128k miaraka ianao dia azo antoka fa hiharan'ny olana ianao!
  • Tranga tsy dia mibaribary loatra: raha manodina fifandraisana marobe isan-tsegondra ny mpizaranao. Na dia fohy aza ny fifandraisana, dia mbola arahin'ny Linux foana izy ireo mandritra ny fe-potoana sasany (120s raha default). Ohatra, raha namboarina ho an'ny fidirana 128k ny tabilao conntrack anao ary miezaka mitantana fifandraisana 1100 isan-tsegondra ianao, dia hihoatra ny haben'ny latabatra conntrack izy ireo na dia fohy be aza ny fifandraisana (128k/120s = 1092 fifandraisana/s ).

Misy karazana apps niche maromaro tafiditra ao anatin'ireo sokajy ireo. Fanampin'izany, raha manana mpilalao ratsy be dia be ianao, ny famenoana ny latabatra conntrack an'ny mpizara anao amin'ny fifandraisana antsasak'adiny dia azo ampiasaina ho ampahany amin'ny fanafihana fandavana ny serivisy (DOS). Amin'ireo tranga roa ireo, ny conntrack dia mety ho lasa sakana mametra ny rafitrao. Amin'ny toe-javatra sasany, ny fanitsiana ny mari-pamantarana tabilao conntrack dia mety ho ampy hahafeno ny filanao - amin'ny alΓ lan'ny fampitomboana ny habeny na ny fampihenana ny fe-potoana conntrack (fa raha diso ianao dia ho sahirana be). Amin'ny tranga hafa dia ilaina ny miala amin'ny conntrack ho an'ny fifamoivoizana mahery vaika.

Tena ohatra

Andeha isika hanome ohatra iray manokana: ny mpamatsy SaaS lehibe iray niara-niasa taminay dia nanana mpizara memcached maromaro amin'ny mpampiantrano (fa tsy milina virtoaly), izay samy nahavita fifandraisana fohy 50K+ isan-tsegondra.

Nanandrana ny conntrack configuration izy ireo, mampitombo ny haben'ny latabatra ary mampihena ny fotoana fanaraha-maso, saingy tsy azo itokisana ny fanamafisana, nitombo be ny fanjifana RAM, izay olana (amin'ny filaharan'ny GBytes!), Ary fohy ny fifandraisana ka tsy nisy ny conntrack. mamorona tombotsoa amin'ny fampandehanana mahazatra azy (fampihenana ny fanjifana CPU na packet latency).

Nitodika tany Calico izy ireo ho solon'izay. Ny politikan'ny tambajotra Calico dia mamela anao tsy mampiasa conntrack amin'ny karazana fifamoivoizana sasany (mampiasa ny safidy politika doNotTrack). Izany dia nanome azy ireo ny haavon'ny fampisehoana ilainy, miampy ny fiarovana fanampiny nomen'ny Calico.

Inona ny halavany tsy maintsy halehanao mba hialana amin'ny conntrack?

  • Ny politikan'ny tambajotra Do-not-track dia tokony ho symmetrical amin'ny ankapobeny. Raha ny momba ny mpamatsy SaaS: ny fampiharana azy ireo dia nihazakazaka tao anatin'ny faritra voaaro ary noho izany, amin'ny fampiasana ny politikan'ny tambajotra, dia azon'izy ireo atao ny manao lisitra fotsy ny fifamoivoizana avy amin'ny rindranasa manokana hafa navela hiditra amin'ny memcached.
  • Ny politikan'ny do-not-track dia tsy miraharaha ny lalan'ny fifandraisana. Noho izany, raha voajirika ny mpizara memcached, azonao atao ny manandrana mifandray amin'ny mpanjifa memcached, raha toa ka mampiasa ny seranan-tsambo mety izy. Na izany aza, raha nofaritanao tsara ny politikan'ny tambajotra ho an'ny mpanjifa memcached anao, dia mbola ho lavina ihany ireo andrana fifandraisana ireo eo amin'ny lafiny mpanjifa.
  • Ny politikan'ny do-not-track dia ampiharina amin'ny fonosana tsirairay, mifanohitra amin'ny politika mahazatra, izay tsy ampiharina afa-tsy amin'ny fonosana voalohany amin'ny zotra iray. Mety hampitombo ny fanjifana CPU isaky ny fonosana izany satria tsy maintsy ampiharina amin'ny fonosana tsirairay ny politika. Fa ho an'ny fifandraisana fohy, io fandaniana io dia mifandanja amin'ny fampihenana ny fanjifana loharanon-karena ho an'ny fanodinana conntrack. Ohatra, amin'ny mpanome SaaS, ny isan'ny fonosana ho an'ny fifandraisana tsirairay dia tena kely, noho izany dia voamarina ny fanjifana CPU fanampiny rehefa mampihatra ny politika amin'ny fonosana tsirairay.

Andeha isika hanomboka fitsapana

Nanao ny fitsapana tamin'ny pod iray izahay miaraka amin'ny mpizara memcached sy pod mpanjifa memcached marobe mandeha amin'ny node lavitra mba ahafahantsika mihazakazaka fifandraisana marobe isan-tsegondra. Ny mpizara miaraka amin'ny pod server memcached dia nanana cores 8 sy fidirana 512k tao amin'ny latabatra conntrack (ny haben'ny latabatra voarindra ho an'ny mpampiantrano).
Norefesinay ny fahasamihafan'ny fahombiazan'ny: tsy misy politikan'ny tambajotra; miaraka amin'ny politika Calico mahazatra; ary ny politikan'ny Calico do-not-track.

Ho an'ny fitsapana voalohany, nametraka ny isan'ny fifandraisana ho 4.000 isan-tsegondra izahay, mba hahafahantsika mifantoka amin'ny fahasamihafana amin'ny fanjifana CPU. Tsy misy fahasamihafana lehibe eo amin'ny tsy misy politika sy ny politika mahazatra, fa ny do-not-track dia nitombo ny fanjifana CPU tamin'ny 20%:

Rehefa tsy namanao intsony ny conntrack Linux

Tamin'ny fitsapana faharoa, nanangana fifandraisana betsaka araka izay azon'ny mpanjifanay atao izahay ary nandrefy ny isan'ny fifandraisana ambony indrindra isan-tsegondra azon'ny mpizara memcached anay. Araka ny efa nampoizina, ny tranga "tsy misy politika" sy "politika mahazatra" dia samy nahatratra ny fetran'ny fifandraisana mihoatra ny 4,000 isan-tsegondra (512k / 120s = 4,369 fifandraisana / s). Miaraka amin'ny politikan'ny do-not-track, nandefa fifandraisana 60,000 isan-tsegondra tsy nisy olana ny mpanjifanay. Azonay antoka fa afaka mampitombo io isa io izahay amin'ny fampidirana mpanjifa bebe kokoa, saingy tsapanay fa ireo isa ireo dia efa ampy hanehoana ny hevitr'ity lahatsoratra ity!

Rehefa tsy namanao intsony ny conntrack Linux

famaranana

Conntrack dia endri-javatra kernel manan-danja. Manao ny asany tanteraka izy. Matetika izy io no ampiasain'ny singa fototra amin'ny rafitra. Na izany aza, amin'ny toe-javatra manokana sasany, ny fitohanana vokatry ny conntrack dia mihoatra ny tombontsoa mahazatra omeny. Amin'ity toe-javatra ity, ny politikan'ny tambajotra Calico dia azo ampiasaina hanesorana ny fampiasana conntrack ary hampitombo ny fiarovana ny tambajotra. Ho an'ny fifamoivoizana hafa rehetra, conntrack dia mbola ho namanao!

Vakio ihany koa lahatsoratra hafa ao amin'ny bilaoginay:

Source: www.habr.com

Add a comment