{"id":77693,"date":"2020-04-13T01:42:39","date_gmt":"2020-04-12T23:42:39","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/cpu-limity-i-agressivnyj-trottling-v-kubernetes"},"modified":"2020-04-13T01:42:39","modified_gmt":"2020-04-12T23:42:39","slug":"cpu-limity-i-agressivnyj-trottling-v-kubernetes","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/cpu-limity-i-agressivnyj-trottling-v-kubernetes","title":{"rendered":"Kufijt\u00eb e CPU dhe ngadal\u00ebsimi agresiv n\u00eb Kubernetes","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Sh\u00ebn. p\u00ebrk.<\/b>: kjo histori e m\u00ebsimdh\u00ebn\u00ebse e Omio - nj\u00eb agregator udh\u00ebtimi evropian - udh\u00ebheq lexuesit nga teoria baz\u00eb n\u00eb holl\u00ebsit\u00eb praktike emocionuese t\u00eb konfigurimit t\u00eb Kubernetes. Njohja me raste t\u00eb tilla ndihmon jo vet\u00ebm n\u00eb zgjerimin e horizontit, por gjithashtu n\u00eb parandalimin e problemeve jo trivial.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Kufijt\u00eb e CPU dhe ngadal\u00ebsimi agresiv n\u00eb Kubernetes\" src=\"\/wp-content\/uploads\/2020\/04\/1175c9df746e43b5a7d81476164929db.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA keni hasur ndonj\u00ebher\u00eb n\u00eb situat\u00ebn kur aplikacioni \"ngrin\", ndalon s\u00eb p\u00ebrgjiguri ndaj k\u00ebrkesave p\u00ebr verifikimin e gjendjes (health check) dhe nuk mund t\u00eb kuptoni arsyen e k\u00ebtij sjelljeje? Nj\u00eb nga shpjegimet e mundshme lidhet me kufirin e kuotave p\u00ebr burimet CPU. Ky \u00ebsht\u00eb subjekti i k\u00ebtij artikulli.<\/p>\n<p><b>TL;DR:<br \/>\nNe e rekomandojm\u00eb fuqish\u00ebm t\u00eb hiqni kufizimet e CPU n\u00eb Kubernetes (ose t\u00eb \u00e7aktivizoni kuotat CFS n\u00eb Kubelet) n\u00ebse po p\u00ebrdoret nj\u00eb version i bllokut Linux me gabime n\u00eb kuotat CFS. N\u00eb bllokun <noindex><a rel=\"nofollow\" href=\"https:\/\/bugzilla.kernel.org\/show_bug.cgi?id=198197\">ka<\/a><\/noindex> ka nj\u00eb gabim serioz dhe <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/issues\/67577\">t\u00eb njohur mir\u00eb<\/a><\/noindex> i cili \u00e7on n\u00eb mbingopje dhe vonesa.<\/b>.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>N\u00eb Omio <b>e gjith\u00eb infrastruktura menaxhohet nga Kubernetes.<\/b>. T\u00eb gjitha ngarkesat tona stateful dhe stateless punojn\u00eb ekskluzivisht n\u00eb Kubernetes (ne p\u00ebrdorim Google Kubernetes Engine). Gjat\u00eb gjasht\u00eb muajve t\u00eb fundit, kemi v\u00ebn\u00eb re ngadal\u00ebsime t\u00eb rast\u00ebsishme. Aplikacionet ngecin ose ndalen s\u00eb p\u00ebrgjiguri ndaj health check-eve, humbin lidhjen me rrjetin etj. Kjo sjellje na ka l\u00ebn\u00eb n\u00eb ng\u00ebr\u00e7 p\u00ebr nj\u00eb koh\u00eb t\u00eb gjat\u00eb, dhe s\u00eb fundmi vendos\u00ebm t\u00eb merremi me problemin p\u00ebr s\u00eb af\u00ebrmi.<\/p>\n<p>P\u00ebrmbledhje e artikullit:<\/p>\n<ul>\n<li> Disa fjal\u00eb p\u00ebr kontejner\u00ebt dhe Kubernetes;<\/li>\n<li> Si jan\u00eb realizuar k\u00ebrkesat dhe kufizimet e CPU;<\/li>\n<li> Si funksionon kufizimi i CPU n\u00eb mjediset me shum\u00eb b\u00ebrthama;<\/li>\n<li> Si t\u00eb monitoroni mbingopjen e CPU;<\/li>\n<li> Zgjidhja e problemit dhe nuancat.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Disa fjal\u00eb p\u00ebr kontejner\u00ebt dhe Kubernetes<\/h2>\n<p>\nKubernetes, n\u00eb thelb, \u00ebsht\u00eb standardi modern n\u00eb bot\u00ebn e infrastruktur\u00ebs. Detyra e tij kryesore \u00ebsht\u00eb orkestrimi i kontejner\u00ebve.<\/p>\n<h3>Kontejner\u00ebt<\/h3>\n<p>\nN\u00eb t\u00eb kaluar\u00ebn, na \u00ebsht\u00eb dashur t\u00eb krijojm\u00eb artefakte si Java JAR\/WAR, Python Egg ose skedar\u00eb ekzekutiv\u00eb p\u00ebr t'i ekzekutuar m\u00eb pas n\u00eb server\u00eb. Megjithat\u00eb, p\u00ebr t\u00eb b\u00ebr\u00eb q\u00eb ato t\u00eb funksiononin, na duhej t\u00eb b\u00ebnim pun\u00eb shtes\u00eb: t\u00eb instalonim ambientin e ekzekutimit (Java\/Python), t\u00eb vendosnim skedar\u00ebt e nevojsh\u00ebm n\u00eb vendet e duhura, t\u00eb siguronim kompatibilitetin me versionin e sakt\u00eb t\u00eb sistemit operativ etj. Me fjal\u00eb t\u00eb tjera, duhej t\u00eb jepnim v\u00ebmendje t\u00eb ve\u00e7ant\u00eb menaxhimit t\u00eb konfigurimeve (q\u00eb shpesh sh\u00ebrbente si shkak p\u00ebr mospajtime midis zhvilluesve dhe administrator\u00ebve t\u00eb sistemit).<\/p>\n<p><b>Kontejner\u00ebt ndryshuan gjith\u00e7ka.<\/b> Tani, artefakti \u00ebsht\u00eb nj\u00eb imazhi kontejneri. Eshte si nj\u00eb skedar ekzekutues i zgjeruar, q\u00eb p\u00ebrmban jo vet\u00ebm programin, por edhe nj\u00eb mjedis t\u00eb plot\u00eb ekzekutimi (Java\/Python\/\u2026), si dhe skedar\u00ebt\/paketat e nevojshme, t\u00eb parainstaluara dhe gati p\u00ebr t'u ekzekutuar. Kontejner\u00ebt mund t\u00eb vendosen dhe ekzekutohen n\u00eb servera t\u00eb ndrysh\u00ebm pa ndonj\u00eb veprim t\u00eb shtuar.<\/p>\n<p>P\u00ebr m\u00eb tep\u00ebr, kontejner\u00ebt funksionojn\u00eb n\u00eb nj\u00eb ambient t\u00eb vet\u00eb-substancuar. Ata kan\u00eb nj\u00eb adapter t\u00eb tyren virtual, nj\u00eb sistem skedar\u00ebsh me qasje t\u00eb kufizuar, nj\u00eb hierarki procesesh, kufizime p\u00ebr CPU dhe memorie, etj. T\u00eb gjitha k\u00ebto realizohen fal\u00eb nj\u00eb n\u00ebn-sistemi t\u00eb ve\u00e7ant\u00eb t\u00eb b\u00ebrtham\u00ebs Linux - namespaces.<\/p>\n<h3>Kubernetes<\/h3>\n<p>\nSi\u00e7 u tha m\u00eb par\u00eb, Kubernetes \u00ebsht\u00eb orkestratori i kontejner\u00ebve. Funksionon n\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb: ju ofroni nj\u00eb grup makinash, dhe pastaj i thoni: \u00abHej, Kubernetes, fillo dhjet\u00eb instanca t\u00eb kontejnerit tim me 2 procesor\u00eb dhe 3 GB memorie p\u00ebr secilin, dhe mbaji ato n\u00eb gjendje pune!\u00bb. Kubernetes do t\u00eb kujdeset p\u00ebr gjith\u00e7ka tjet\u00ebr. Ai do t\u00eb gjej\u00eb kapacitetet e lira, do t\u00eb nis\u00eb kontejner\u00ebt dhe do t'i rinis\u00eb ato kur t\u00eb jet\u00eb e nevojshme, do t\u00eb nxjerr\u00eb nj\u00eb p\u00ebrdit\u00ebsim kur t\u00eb ket\u00eb ndryshime versioni, etj. N\u00eb thelb, Kubernetes lejon q\u00eb t\u00eb shk\u00ebputeni nga komponent\u00ebt harduerik\u00eb dhe e b\u00ebn gjith\u00eb larmishm\u00ebrin\u00eb e sistemeve t\u00eb p\u00ebrshtatshme p\u00ebr vendosjen dhe funksionimin e aplikacioneve.<\/p>\n<p><img decoding=\"async\" alt=\"Kufijt\u00eb e CPU dhe ngadal\u00ebsimi agresiv n\u00eb Kubernetes\" src=\"\/wp-content\/uploads\/2020\/04\/6509bb1b66a4a0f5e9a479d0bd6ececb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Kubernetes nga perspektiva e nj\u00eb qytetari t\u00eb zakonsh\u00ebm<\/i><\/p>\n<h2>\u00c7far\u00eb jan\u00eb k\u00ebrkesat dhe kufizimet n\u00eb Kubernetes<\/h2>\n<p>\nMir\u00eb, tani e kuptuam kontejner\u00ebt dhe Kubernetes. Gjithashtu, ne e dim\u00eb se disa kontejner\u00eb mund t\u00eb jen\u00eb n\u00eb nj\u00eb makin\u00eb.<\/p>\n<p>Mund t\u00eb b\u00ebhet nj\u00eb analogji me nj\u00eb apartament t\u00eb zakonsh\u00ebm. Merrni nj\u00eb hap\u00ebsir\u00eb t\u00eb gjer\u00eb (makina\/nodet) dhe e jepni me qira disa banor\u00ebve (kontejner\u00ebve). Kubernetes vepron si agjent ndihm\u00ebs. Lind pyetja, si t\u00eb mbash t\u00eb kaluarit ndar\u00eb nga nj\u00ebri-tjetri? \u00c7far\u00eb n\u00ebse nj\u00ebri prej tyre, p\u00ebr shembull, vendos t\u00eb marr\u00eb banj\u00ebn p\u00ebr gjysm\u00eb dite?<\/p>\n<p>K\u00ebtu p\u00ebrfshihen k\u00ebrkesat dhe kufizimet. CPU <b>K\u00ebrkesa<\/b> nevojitet vet\u00ebm p\u00ebr planifikim. \u00cbsht\u00eb di\u00e7ka si \u00ablista e d\u00ebshirave\u00bb e kontejnerit, dhe p\u00ebrdoret p\u00ebr t\u00eb p\u00ebrzgjedhur nodin m\u00eb t\u00eb p\u00ebrshtatsh\u00ebm. Nd\u00ebrsa CPU <b>Kufizim<\/b> mund t\u00eb krahasohet me kontrat\u00ebn e qiras\u00eb - sa her\u00eb q\u00eb ne p\u00ebrzgjedhim nj\u00eb nod p\u00ebr kontejnerin, ai <b>nuk do t\u00eb<\/b> mund t\u00eb kaloj\u00eb kufijt\u00eb e vendosur.<\/p>\n<h3>Si jan\u00eb realizuar k\u00ebrkesat dhe kufizimet n\u00eb Kubernetes<\/h3>\n<p>\nKubernetes p\u00ebrdor mekanizmin e integruar n\u00eb bllok p\u00ebr pengimin (throttling) p\u00ebr t\u00eb zbatuar kufizimet e CPU. N\u00ebse aplikacioni kalon kufirin, aktivizohet pengimi (pra, merr m\u00eb pak cikle CPU). K\u00ebrkesat dhe kufizimet p\u00ebr memorie jan\u00eb organizuar ndryshe, prandaj \u00ebsht\u00eb m\u00eb e leht\u00eb t'i zbuloni ato. Mjafton t\u00eb kontrolloni statusin e fundit t\u00eb ri-p\u00ebrmbushjes s\u00eb pod-it: a \u00ebsht\u00eb ai \"OOMKilled\". Me pengimin e CPU nuk \u00ebsht\u00eb aq e thjesht\u00eb, pasi K8s ofron vet\u00ebm metrika mbi p\u00ebrdorimin, jo mbi cgroups.<\/p>\n<h4>K\u00ebrkesa CPU<\/h4>\n<p>\n<img decoding=\"async\" alt=\"Kufijt\u00eb e CPU dhe ngadal\u00ebsimi agresiv n\u00eb Kubernetes\" src=\"\/wp-content\/uploads\/2020\/04\/fbc8bf3f775ffd9513374ce94b20535d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Si \u00ebsht\u00eb realizuar k\u00ebrkesa CPU<\/i><\/p>\n<p>P\u00ebr thjesht\u00ebsi, le ta shqyrtojm\u00eb procesin n\u00eb shembullin e nj\u00eb makine me CPU kat\u00ebr b\u00ebrthamor.<\/p>\n<p>K8s p\u00ebrdor mekanizmin e grupeve t\u00eb kontrollit (cgroups) p\u00ebr t\u00eb menaxhuar shp\u00ebrndarjen e burimeve (memoris\u00eb dhe procesor\u00ebve). P\u00ebr t\u00eb disponibilizohet nj\u00eb model hierarkik: nj\u00eb pasardh\u00ebs trash\u00ebgon kufizimet e grupit prind. Detajet mbi shp\u00ebrndarjen ruhen n\u00eb sistemin e dosjeve virtuale (<code>\/sys\/fs\/cgroup<\/code>). N\u00eb rastin e CPU, kjo \u00ebsht\u00eb <code>\/sys\/fs\/cgroup\/cpu,cpuacct\/*<\/code>.<\/p>\n<p>K8s p\u00ebrdor skedarin <code>cpu.share<\/code> p\u00ebr shp\u00ebrndarjen e burimeve t\u00eb CPU. N\u00eb rastin ton\u00eb, grupi kontrollues rr\u00ebnj\u00ebsor merr 4096 aksione t\u00eb burimeve CPU - 100% e fuqis\u00eb s\u00eb disponueshme t\u00eb CPU (1 b\u00ebrtham\u00eb = 1024; kjo \u00ebsht\u00eb nj\u00eb vler\u00eb fikse). Grupi rr\u00ebnj\u00ebsor shp\u00ebrndan burimet proporcionalisht n\u00eb var\u00ebsi t\u00eb aksioneve t\u00eb f\u00ebmij\u00ebve t\u00eb shkruara n\u00eb <code>cpu.share<\/code>, dhe ata, nga ana e tyre, veprojn\u00eb n\u00eb m\u00ebnyr\u00eb t\u00eb ngjashme me f\u00ebmij\u00ebt e tyre, etj. N\u00eb nj\u00eb nod tipik Kubernetes, grupi kontrollues rr\u00ebnj\u00ebsor ka tri f\u00ebmij\u00eb: <code>system.slice<\/code>, <code>user.slice<\/code> dhe <code>kubepods<\/code>. Dy grupet e para p\u00ebrdoren p\u00ebr shp\u00ebrndarjen e burimeve midis ngarkesave kritike t\u00eb sistemit dhe programeve t\u00eb p\u00ebrdoruesve jasht\u00eb K8s. T\u00eb fundit - <code>kubepods<\/code> \u2014 krijohet nga Kubernetes p\u00ebr shp\u00ebrndarjen e burimeve midis pod-\u00ebve.<\/p>\n<p>N\u00eb diagramin e m\u00ebsip\u00ebrm shihet se grupet e para dhe t\u00eb dyta mor\u00ebn nga <b>1024<\/b> aksione, ndersa grupit kubepod i ishte ndar\u00eb <b>4096<\/b> aksioneve. Si \u00ebsht\u00eb e mundur q\u00eb grupit rr\u00ebnj\u00ebsor i jan\u00eb dh\u00ebn\u00eb vet\u00ebm <b>4096<\/b> aksione, kur gjithsej aksionet e f\u00ebmij\u00ebve t\u00eb tij e kalojn\u00eb k\u00ebt\u00eb num\u00ebr (<b>6144<\/b>)? \u00c7\u00ebshtja \u00ebsht\u00eb se vlera ka nj\u00eb kuptim logjik, prandaj planifikuesi Linux (CFS) e p\u00ebrdor at\u00eb p\u00ebr shp\u00ebrndarjen proporcionale t\u00eb burimeve t\u00eb CPU. N\u00eb rastin ton\u00eb, dy grupet e para marrin nga <b>680<\/b> aksionet reale (16,6% nga 4096), dhe kubepod merr t\u00eb mbeturat <b>2736<\/b> aksioneve. N\u00eb rastin e papun\u00ebsis\u00eb, grupet e para dy nuk do t\u00eb p\u00ebrdorin burimet e ndara.<\/p>\n<p>Fatmir\u00ebsisht, n\u00eb planifikues ka nj\u00eb mekaniz\u00ebm q\u00eb parandalon humbjen e burimeve t\u00eb pap\u00ebrdorura t\u00eb CPU. Ai kalon fuqit\u00eb \"n\u00eb papun\u00ebsi\" n\u00eb nj\u00eb pool global, nga i cili ata shp\u00ebrndahen n\u00eb grupe q\u00eb kan\u00eb nevoj\u00eb p\u00ebr fuqira shtes\u00eb t\u00eb CPU (transferimi ndodh n\u00eb grupe p\u00ebr t\u00eb shmangur humbjet nga rrethimi). Nj\u00eb metod\u00eb e ngjashme aplikohet gjithashtu p\u00ebr t\u00eb gjith\u00eb pasardh\u00ebsit e pasardh\u00ebsve.<\/p>\n<p>Ky mekaniz\u00ebm siguron shp\u00ebrndarjen e drejt\u00eb t\u00eb fuqive t\u00eb CPU dhe kontrollon q\u00eb asnj\u00eb proces \"t\u00eb mos vjedh\u00eb\" burime nga t\u00eb tjer\u00ebt.<\/p>\n<h4>Kufizimi CPU<\/h4>\n<p>\nMegjithat\u00eb, edhe pse konfigurimet e kufizimeve dhe k\u00ebrkesave n\u00eb K8s duken t\u00eb ngjashme, realizimi i tyre ndryshon n\u00eb m\u00ebnyr\u00eb drastike: kjo <b>n\u00eb t\u00eb v\u00ebrtet\u00eb m\u00eb mashtruese<\/b> dhe m\u00eb pak e dokumentuar pjes\u00eb.<\/p>\n<p>K8s angazhon <noindex><a rel=\"nofollow\" href=\"https:\/\/www.kernel.org\/doc\/Documentation\/scheduler\/sched-design-CFS.txt\">mekanizmin e kuotave CFS<\/a><\/noindex> p\u00ebr implementimin e kufizimeve. Konfigurimet e tyre caktohen n\u00eb skedar\u00ebt <code>cfs_period_us<\/code> dhe <code>cfs_quota_us<\/code> n\u00eb drejtorin\u00eb e cgroup (po aty ndodhet skedari) <code>cpu.share<\/code>).<\/p>\n<p>Ndryshe nga <code>cpu.share<\/code>, kuota bazohet n\u00eb <b>periudh\u00ebn e koh\u00ebs<\/b>, e cila nuk \u00ebsht\u00eb fuqia e disponueshme t\u00eb CPU. <code>cfs_period_us<\/code> caktuar zgjasin\u00eb e periudh\u00ebs (epok\u00ebs) - gjithmon\u00eb 100000 \u00b5s (100 ms). N\u00eb K8s ka mund\u00ebsi p\u00ebr t\u00eb ndryshuar k\u00ebt\u00eb vler\u00eb, megjithat\u00eb ajo \u00ebsht\u00eb aktualisht n\u00eb versionin alfa. Planifikuesi p\u00ebrdor epok\u00ebn p\u00ebr rinovimin e kuotave t\u00eb shfryt\u00ebzuara. Skedari i dyt\u00eb, <code>cfs_quota_us<\/code>, p\u00ebrcakton koh\u00ebn e disponueshme (kuot\u00ebn) n\u00eb \u00e7do epok\u00eb. Vini re se ajo gjithashtu tregohet n\u00eb mikrosekonda. Kuota mund t\u00eb kaloj\u00eb gjat\u00ebsi e epok\u00ebs; n\u00eb fjal\u00eb t\u00eb tjera, ajo mund t\u00eb jet\u00eb m\u00eb e madhe se 100 ms.<\/p>\n<p>Le t\u00eb shqyrtojm\u00eb dy skenar\u00eb n\u00eb makinat me 16 b\u00ebrthama (tipi m\u00eb i zakonsh\u00ebm i kompjuter\u00ebve n\u00eb Omio):<\/p>\n<p><img decoding=\"async\" alt=\"Kufijt\u00eb e CPU dhe ngadal\u00ebsimi agresiv n\u00eb Kubernetes\" src=\"\/wp-content\/uploads\/2020\/04\/61c6105320af3a92a91cec1007da0d45.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Skenari 1: 2 rrjedha dhe kufizimi prej 200 ms. Pa ngadal\u00ebsim<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Kufijt\u00eb e CPU dhe ngadal\u00ebsimi agresiv n\u00eb Kubernetes\" src=\"\/wp-content\/uploads\/2020\/04\/c33993341d5395bb73dda1f4c8482a11.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Skenari 2: 10 rrjedha dhe kufizimi prej 200 ms. Ngadal\u00ebsimi fillon pas 20 ms, aksesimi i burimeve t\u00eb CPU rinovohet pas 80 ms<\/i><\/p>\n<p>Supozoni se keni vendosur kufizimin e CPU n\u00eb <b>2<\/b> b\u00ebrthama; Kubernetes do ta p\u00ebrkthej\u00eb k\u00ebt\u00eb vler\u00eb n\u00eb 200 ms. Kjo do t\u00eb thot\u00eb se kontenieri mund t\u00eb p\u00ebrdor\u00eb maksimumi 200 ms koh\u00eb CPU pa ngadal\u00ebsim.<\/p>\n<p>Dhe k\u00ebtu fillon e gjitha. Si\u00e7 u tha m\u00eb sip\u00ebr, kuota e disponueshme \u00ebsht\u00eb 200 ms. N\u00ebse keni dhjet\u00eb <b>rrjedha q\u00eb punojn\u00eb paralelisht n\u00eb nj\u00eb makin\u00eb me 12 b\u00ebrthama (shih ilustrimin e skenarit 2), derisa t\u00eb gjitha pod-\u00ebt e tjer\u00eb t\u00eb jen\u00eb n\u00eb papun\u00ebsi, kuota do t\u00eb shteroj\u00eb brenda vet\u00ebm 20 ms (sepse 10 * 20 ms = 200 ms), dhe t\u00eb gjitha rrjedhat e k\u00ebtij pod-i do t\u00eb \"ngadal\u00ebsohen\"<\/b> n\u00eb 12-b\u00ebrthamor me makin\u00eb (shih ilustrimin p\u00ebr skenarin 2), nd\u00ebrsa t\u00eb gjith\u00eb pod&#8217;at e tjer\u00eb jan\u00eb n\u00eb pushim, kuota do t\u00eb p\u00ebrfundoj\u00eb brenda vet\u00ebm 20 ms (sepse 10 * 20 ms = 200 ms), dhe t\u00eb gjith\u00eb rrjedhat e k\u00ebtij pod&#8217;i do t\u00eb \"ngjiten\" <i>(throttle)<\/i> p\u00ebr 80 ms t\u00eb ardhshme. Kjo e p\u00ebrkeq\u00ebson situat\u00ebn e p\u00ebrmendur tashm\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/bugzilla.kernel.org\/show_bug.cgi?id=198197\">bugu i planifikuesit<\/a><\/noindex>, p\u00ebr shkak t\u00eb cilit ndodh tep\u00ebr shp\u00ebrthim dhe kontejneri nuk mund t\u00eb prodhoj\u00eb as kuot\u00ebn e tij ekzistuese.<\/p>\n<h2>Si t\u00eb vler\u00ebsojm\u00eb throttling-un n\u00eb pod&#8217;at?<\/h2>\n<p>\nThjesht hyni n\u00eb pod dhe ekzekutoni <code>cat \/sys\/fs\/cgroup\/cpu\/cpu.stat<\/code>.<\/p>\n<ul>\n<li> <code>nr_periods<\/code> \u2014 numri i p\u00ebrgjithsh\u00ebm i periudhave t\u00eb planifikuesit;<\/li>\n<li> <code>nr_throttled<\/code> \u2014 numri i periudhave me zhvler\u00ebsim n\u00eb p\u00ebrb\u00ebrje t\u00eb <code>nr_periods<\/code>;<\/li>\n<li> <code>throttled_time<\/code> \u2014 koha e p\u00ebrgjithshme e zhvler\u00ebsimit n\u00eb nanosekonda.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Kufijt\u00eb e CPU dhe ngadal\u00ebsimi agresiv n\u00eb Kubernetes\" src=\"\/wp-content\/uploads\/2020\/04\/a1818614914a8c31f7f7f1331cc02e8b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>\u00c7far\u00eb ndodh n\u00eb t\u00eb v\u00ebrtet\u00eb?<\/h3>\n<p>\nN\u00eb p\u00ebrfundim, ne marrim nj\u00eb zhvler\u00ebsim t\u00eb lart\u00eb n\u00eb t\u00eb gjitha aplikacionet. Ndonj\u00ebher\u00eb \u00ebsht\u00eb deri n\u00eb <b>nj\u00eb her\u00eb e gjysm\u00eb<\/b> m\u00eb e fort\u00eb se sa llogaritet!<\/p>\n<p>Kjo \u00e7on n\u00eb gabime t\u00eb ndryshme \u2014 d\u00ebshtime t\u00eb kontrolleve t\u00eb gatishm\u00ebris\u00eb (readiness), ngecje t\u00eb kontejner\u00ebve, prishje t\u00eb lidhjeve rrjet, koh\u00ebzgjatje n\u00eb thirrjet e sh\u00ebrbimeve. N\u00eb fund, kjo rezulton n\u00eb rritjen e vones\u00ebs dhe nj\u00eb rritje t\u00eb numrit t\u00eb gabimeve.<\/p>\n<h2>Zgjidhja dhe pasojat<\/h2>\n<p>\nK\u00ebtu \u00ebsht\u00eb e thjesht\u00eb. Ne heq\u00ebm kufizimet e CPU dhe u p\u00ebrfshim\u00eb n\u00eb p\u00ebrdit\u00ebsimin e b\u00ebrtham\u00ebs s\u00eb OS n\u00eb klaster\u00ebt n\u00eb versionin m\u00eb t\u00eb ri, n\u00eb t\u00eb cilin ishte rregulluar nd\u00ebrprerja. Numri i gabimeve (HTTP 5xx) n\u00eb sh\u00ebrbimet tona ka r\u00ebn\u00eb menj\u00ebher\u00eb ndjesh\u00ebm:<\/p>\n<h3>Gabimet HTTP 5xx<\/h3>\n<p>\n<img decoding=\"async\" alt=\"Kufijt\u00eb e CPU dhe ngadal\u00ebsimi agresiv n\u00eb Kubernetes\" src=\"\/wp-content\/uploads\/2020\/04\/86ab1694b952b5451a4ae075cbda2788.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Gabimet HTTP 5xx n\u00eb nj\u00eb sh\u00ebrbim jasht\u00ebzakonisht t\u00eb r\u00ebnd\u00ebsish\u00ebm<\/i><\/p>\n<h3>Koha e p\u00ebrgjigjes p95<\/h3>\n<p>\n<img decoding=\"async\" alt=\"Kufijt\u00eb e CPU dhe ngadal\u00ebsimi agresiv n\u00eb Kubernetes\" src=\"\/wp-content\/uploads\/2020\/04\/63922c8eb468366a7d05154a3adf40e6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Vonesa e k\u00ebrkesave t\u00eb sh\u00ebrbimit jasht\u00ebzakonisht t\u00eb r\u00ebnd\u00ebsish\u00ebm, percentile 95<\/i><\/p>\n<h3>Shpenzimet operative<\/h3>\n<p>\n<img decoding=\"async\" alt=\"Kufijt\u00eb e CPU dhe ngadal\u00ebsimi agresiv n\u00eb Kubernetes\" src=\"\/wp-content\/uploads\/2020\/04\/8405c26fcbd82853e296fa7e3bcba131.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Numri i or\u00ebve t\u00eb shpenzuara<\/i><\/p>\n<h2>Cila \u00ebsht\u00eb kurth?<\/h2>\n<p>\nSi\u00e7 u tha n\u00eb fillim t\u00eb artikullit:<\/p>\n<blockquote><p>Mund t\u00eb b\u00ebhet nj\u00eb analogji me nj\u00eb apartament t\u00eb p\u00ebrbashk\u00ebt\u2026 Kubernetes funksionon si nj\u00eb agjent pasurus. Por si t'i mbash qiramarr\u00ebsit t\u00eb mos bien n\u00eb konflikt me nj\u00ebri-tjetrin? \u00c7far\u00eb ndodh n\u00ebse nj\u00ebri prej tyre, le t\u00eb themi, vendos t\u00eb z\u00ebr\u00eb dushin p\u00ebr gjysm\u00eb dite?<\/p><\/blockquote>\n<p>\nK\u00ebtu \u00ebsht\u00eb kurthi. Nj\u00eb kontejner i keq administruar mund t\u00eb konsumoj\u00eb t\u00eb gjitha burimet e disponueshme t\u00eb procesorit n\u00eb makin\u00eb. N\u00ebse keni nj\u00eb stek gjithnj\u00eb t\u00eb men\u00e7ur (p\u00ebr shembull, JVM, Go, Node VM t\u00eb konfiguruara si\u00e7 duhet), at\u00ebher\u00eb kjo nuk \u00ebsht\u00eb problem: mund t\u00eb punoni n\u00eb k\u00ebto kushte p\u00ebr nj\u00eb koh\u00eb t\u00eb gjat\u00eb. Por n\u00ebse aplikacionet jan\u00eb optimizuar keq ose aspak (<code>FROM java:latest<\/code>), situata mund t\u00eb dal\u00eb jasht\u00eb kontrollit. Ne n\u00eb Omio kemi Dockerfiles baz\u00eb t\u00eb automatizuara me konfigurime t\u00eb arsyeshme t\u00eb parazgjedhura p\u00ebr stek\u00ebt kryesor\u00eb t\u00eb gjuh\u00ebve, prandaj nj\u00eb problem i till\u00eb nuk ka ekzistuar.<\/p>\n<p>Ne rekomandojm\u00eb t\u00eb monitoroni metrikat <noindex><a rel=\"nofollow\" href=\"http:\/\/www.brendangregg.com\/usemethod.html\">USE<\/a><\/noindex> (p\u00ebrdorimi, ngopja dhe gabimet), vonesat e API dhe shkall\u00ebn e shfaqjes s\u00eb gabimeve. Sigurohuni q\u00eb rezultatet t\u00eb p\u00ebrputhen me pritshm\u00ebrit\u00eb.<\/p>\n<h2>Linke<\/h2>\n<p>\nKjo \u00ebsht\u00eb historia jon\u00eb. Materialet n\u00eb vijim ndihmuan shum\u00eb p\u00ebr t\u00eb kuptuar se \u00e7far\u00eb po ndodh:<\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/www.kernel.org\/doc\/Documentation\/scheduler\/sched-design-CFS.txt\">kernel.org \u2192 CFS Scheduler<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/www.kernel.org\/doc\/Documentation\/scheduler\/sched-bwc.txt\">kernel.org \u2192 CFS Bandwidth Control<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/engineering.squarespace.com\/blog\/2017\/understanding-linux-container-scheduling\">Kuptimi i Planifikimit t\u00eb Kontejner\u00ebve n\u00eb Linux<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/www.linuxjournal.com\/content\/everything-you-need-know-about-linux-containers-part-i-linux-control-groups-and-process\">Gjith\u00e7ka q\u00eb duhet t\u00eb dini rreth Kontejner\u00ebve Linux, Pjesa I: Grupet e Kontrollit t\u00eb Linux dhe Izolimi i Proceseve<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/k8s.af\/\">Historit\u00eb e D\u00ebshtimeve n\u00eb Kubernetes<\/a><\/noindex> \u2014 k\u00ebrkoni \"cpu throttling\".<\/li>\n<\/ul>\n<p>\nRaportet p\u00ebr gabimet e Kubernetes:<\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/issues\/51135#issuecomment-373454012\">#51135: Avoid setting CPU limits for Guaranteed pods<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/issues\/67577\">#67577: CFS quotas can lead to unnecessary throttling<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/gist.github.com\/bobrik\/2030ff040fad360327a5fab7a09c4ff1\">CFS tep\u00ebr agresiv<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nA keni hasur n\u00eb probleme t\u00eb ngjashme n\u00eb praktik\u00ebn tuaj ose keni p\u00ebrvoj\u00eb q\u00eb lidhet me zhvler\u00ebsimin n\u00eb mjediset e prodhimit t\u00eb containerizuar? Shp\u00ebrndani historin\u00eb tuaj n\u00eb komente!<\/p>\n<h2>P.S. nga p\u00ebrkthyesi<\/h2>\n<p>\nLexoni gjithashtu n\u00eb blogun ton\u00eb:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/459326\/\">Avtomatikisht shkall\u00ebzimi dhe menaxhimi i burimeve n\u00eb Kubernetes (p\u00ebrmbledhje dhe video prezantimi)<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/418269\/\">Si funksionon Menaxheri i CPU n\u00eb Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/342822\/\">\u00c7far\u00eb ndodh n\u00eb Kubernetes kur ekzekutoni kubectl run? Pjesa 2<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/489668\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u044d\u0442\u0430 \u043f\u043e\u0443\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f Omio \u2014 \u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0433\u043e \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u0440\u0430 \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u0439 \u2014 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u043e\u0442 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0442\u0435\u043e\u0440\u0438\u0438 \u0434\u043e \u0443\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u0435\u0439 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 Kubernetes. \u0417\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u0441\u043b\u0443\u0447\u0430\u044f\u043c\u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c \u043a\u0440\u0443\u0433\u043e\u0437\u043e\u0440, \u043d\u043e \u0438 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u043d\u0435\u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u0414\u043e\u0432\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043b\u0438 \u0432\u0430\u043c \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u00ab\u0437\u0430\u0441\u0442\u0440\u0435\u0432\u0430\u043b\u043e\u00bb \u043d\u0430 \u043c\u0435\u0441\u0442\u0435, \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u0430\u043b\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":77694,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-77693","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u044d\u0442\u0430 \u043f\u043e\u0443\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f Omio \u2014 \u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0433\u043e \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u0440\u0430 \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u0439 \u2014 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u043e\u0442 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0442\u0435\u043e\u0440\u0438\u0438 \u0434\u043e \u0443\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u0435\u0439 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 Kubernetes.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/cpu-limity-i-agressivnyj-trottling-v-kubernetes\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47CPU-\u043b\u0438\u043c\u0438\u0442\u044b \u0438 \u0430\u0433\u0440\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0439 \u0442\u0440\u043e\u0442\u0442\u043b\u0438\u043d\u0433 \u0432 Kubernetes | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u044d\u0442\u0430 \u043f\u043e\u0443\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f Omio \u2014 \u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0433\u043e \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u0440\u0430 \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u0439 \u2014 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u043e\u0442 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0442\u0435\u043e\u0440\u0438\u0438 \u0434\u043e \u0443\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u0435\u0439 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 Kubernetes.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/cpu-limity-i-agressivnyj-trottling-v-kubernetes\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-04-12T23:42:39+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-12T23:42:39+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 Kufizimet e CPU dhe zhvler\u00ebsimi agresiv n\u00eb Kubernetes | ProHoster","description":"P.S. Translation: this instructive story of Omio \u2014 a European travel aggregator \u2014 guides readers from basic theory to fascinating practical nuances in Kubernetes configuration.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/cpu-limity-i-agressivnyj-trottling-v-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47CPU-\u043b\u0438\u043c\u0438\u0442\u044b \u0438 \u0430\u0433\u0440\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0439 \u0442\u0440\u043e\u0442\u0442\u043b\u0438\u043d\u0433 \u0432 Kubernetes | ProHoster","og:description":"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u044d\u0442\u0430 \u043f\u043e\u0443\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f Omio \u2014 \u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0433\u043e \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u0440\u0430 \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u0439 \u2014 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u043e\u0442 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0442\u0435\u043e\u0440\u0438\u0438 \u0434\u043e \u0443\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u0435\u0439 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 Kubernetes.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/cpu-limity-i-agressivnyj-trottling-v-kubernetes","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-04-12T23:42:39+00:00","article:modified_time":"2020-04-12T23:42:39+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"77693","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:13:23","updated":"2022-09-29 12:06:45","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/77693","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=77693"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/77693\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/77694"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=77693"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=77693"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=77693"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}