{"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\/et\/blog\/administrirovanie\/cpu-limity-i-agressivnyj-trottling-v-kubernetes","title":{"rendered":"CPU piirangud ja agressiivne trottling Kuberneteses","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>M\u00e4rk. t\u00f5lge.<\/b>: see looja lugu Omio \u2014 Euroopa reisikoguja \u2014 viib lugejad alates p\u00f5hiteooriast kuni k\u00f6itvate praktiliste n\u00fcanssideni Kubernetes'i konfiguratsioonis. Selliste juhtumite tundmine aitab mitte ainult silmaringi laiendada, vaid ka v\u00e4ltida keerulisi probleeme.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"CPU piirangud ja agressiivne trottling Kuberneteses\" src=\"\/wp-content\/uploads\/2020\/04\/1175c9df746e43b5a7d81476164929db.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\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 (health check&#8217;\u0438) \u0438 \u0432\u044b \u043d\u0435 \u043c\u043e\u0433\u043b\u0438 \u043f\u043e\u043d\u044f\u0442\u044c \u043f\u0440\u0438\u0447\u0438\u043d\u0443 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f? \u041e\u0434\u043d\u043e \u0438\u0437 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0439 \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u043b\u0438\u043c\u0438\u0442\u043e\u043c \u043a\u0432\u043e\u0442 \u043d\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u044b CPU. \u041e \u043d\u0435\u043c \u0438 \u043f\u043e\u0439\u0434\u0435\u0442 \u0440\u0435\u0447\u044c \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435.<\/p>\n<p><b>L\u00fchikokkuv\u00f5te:<br \/>\n\u041c\u044b \u043d\u0430\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c \u043e\u0442\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043e\u0442 CPU limit&#8217;\u043e\u0432 \u0432 Kubernetes (\u0438\u043b\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a\u0432\u043e\u0442\u044b CFS \u0432 Kubelet), \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u044f\u0434\u0440\u0430 Linux \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 CFS-\u043a\u0432\u043e\u0442. \u0412 \u044f\u0434\u0440\u0435 <noindex><a rel=\"nofollow\" href=\"https:\/\/bugzilla.kernel.org\/show_bug.cgi?id=198197\">on olemas<\/a><\/noindex> t\u00f5sine ja <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/issues\/67577\">h\u00e4sti tuntud<\/a><\/noindex> bugi, mis p\u00f5hjustab liialdatud trottlite ja viivitusi.<\/b>.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Omios <b>on kogu infrastruktuur hallatud Kubernetes\u2019i kaudu.<\/b>. \u0412\u0441\u0435 \u043d\u0430\u0448\u0438 stateful- \u0438 stateless-\u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430 Kubernetes (\u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c Google Kubernetes Engine). \u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043f\u043e\u043b\u0433\u043e\u0434\u0430 \u043c\u044b \u0441\u0442\u0430\u043b\u0438 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0440\u0430\u043d\u0434\u043e\u043c\u043d\u044b\u0435 \u043f\u043e\u0434\u0442\u043e\u0440\u043c\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u044f. \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0437\u0430\u0432\u0438\u0441\u0430\u044e\u0442 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u044e\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043d\u0430 health check&#8217;\u0438, \u0442\u0435\u0440\u044f\u044e\u0442 \u0441\u0432\u044f\u0437\u044c \u0441 \u0441\u0435\u0442\u044c\u044e \u0438 \u0442.\u043f. \u041f\u043e\u0434\u043e\u0431\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0433\u043e \u0441\u0442\u0430\u0432\u0438\u043b\u043e \u043d\u0430\u0441 \u0432 \u0442\u0443\u043f\u0438\u043a, \u0438, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0437\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 \u0432\u043f\u043b\u043e\u0442\u043d\u0443\u044e.<\/p>\n<p>Artikli kokkuv\u00f5te:<\/p>\n<ul>\n<li> M\u00f5ned s\u00f5nad konteineritest ja Kubernetesest;<\/li>\n<li> \u041a\u0430\u043a \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b CPU request&#8217;\u044b \u0438 limit&#8217;\u044b;<\/li>\n<li> Kuidas CPU limit t\u00f6\u00f6tab mitme tuuma keskkondades;<\/li>\n<li> Kuidas j\u00e4lgida CPU trottling\u2019ut;<\/li>\n<li> Probleemi lahendamine ja n\u00fcansid.<\/li>\n<\/ul>\n<p><\/p>\n<h2>M\u00f5ned s\u00f5nad konteineritest ja Kubernetesest<\/h2>\n<p>\nKubernetes on sisuliselt kaasaegne standard infrastruktuuri maailmas. Selle peamine \u00fclesanne on konteinerite orkestreerimine.<\/p>\n<h3>Konteinerid<\/h3>\n<p>\n\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u043c \u043d\u0430\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b \u0432\u0440\u043e\u0434\u0435 Java JAR&#8217;\u043e\u0432\/WAR&#8217;\u043e\u0432, Python Egg&#8217;\u043e\u0432 \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445. \u041e\u0434\u043d\u0430\u043a\u043e, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u0434\u0435\u043b\u044b\u0432\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443: \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0441\u0440\u0435\u0434\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f (Java\/Python), \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0432 \u043d\u0443\u0436\u043d\u044b\u0445 \u043c\u0435\u0441\u0442\u0430\u0445, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0442\u044c \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u0442.\u0434. \u0414\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0443\u0434\u0435\u043b\u044f\u0442\u044c \u043f\u0440\u0438\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u043c\u0438 (\u0447\u0442\u043e \u0447\u0430\u0441\u0442\u043e \u0441\u043b\u0443\u0436\u0438\u043b\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u043e\u0439 \u0440\u0430\u0437\u0434\u043e\u0440\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430\u043c\u0438).<\/p>\n<p><b>Konteinerid on k\u00f5ik muutnud.<\/b> N\u00fc\u00fcd on artefakt konteiners\u00fcsteem. Seda v\u00f5ib n\u00e4ha kui pikendatud k\u00e4ivitatavat faili, mis sisaldab mitte ainult programmi, vaid ka t\u00e4ielikku jooksva keskkonda (Java\/Python\/\u2026) ning vajalikke faile\/pakette, mis on eelinstalleeritud ja valmis k\u00e4ivitamiseks. Konteinerid saab juurutada ja k\u00e4ivitada erinevates serverites ilma t\u00e4iendavate toiminguteta.<\/p>\n<p>Lisaks toimivad konteinerid omaenese liivakasti keskkonnas. Neil on oma virtuaalne v\u00f5rgukaart, oma failis\u00fcsteem piiratud juurdep\u00e4\u00e4suga, oma protsesside hierarhia, oma CPU ja m\u00e4lu piirangud jne. K\u00f5ik see on realiseeritud Linuxi tuuma erilise alams\u00fcsteemi \u2014 namespaces (nimetuste ruumide) abil.<\/p>\n<h3>Kubernetes<\/h3>\n<p>\nNagu eelnevalt mainitud, on Kubernetes konteinerite orkestreerija. See t\u00f6\u00f6tab j\u00e4rgmiselt: te annate sellele masinate hulga ja seej\u00e4rel \u00fctlete: \"Hei, Kubernetes, k\u00e4ivita k\u00fcmme eksemplari minu konteinerist, iga\u00fchel 2 protsessorit ja 3 GB m\u00e4lu ning hoolda neid!\" Kubernetes hoolitseb \u00fclej\u00e4\u00e4nud eest. See leiab vabad ressursid, k\u00e4ivitab konteinerid ja k\u00e4ivitab need vajadusel uuesti, toob v\u00e4lja v\u00e4rskenduse versioonide vahetumisel jne. \u00dcldiselt v\u00f5imaldab Kubernetes abstraheerida riistvarast ja muudab k\u00f5ik s\u00fcsteemide mitmekesisuse rakenduste juurutamiseks ja t\u00f6\u00f6tamiseks sobivaks.<\/p>\n<p><img decoding=\"async\" alt=\"CPU piirangud ja agressiivne trottling Kuberneteses\" src=\"\/wp-content\/uploads\/2020\/04\/6509bb1b66a4a0f5e9a479d0bd6ececb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Kubernetes igap\u00e4evase kasutaja vaatenurgast<\/i><\/p>\n<h2>\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 request&#8217;\u044b \u0438 limit&#8217;\u044b \u0432 Kubernetes<\/h2>\n<p>\nN\u00fc\u00fcd oleme containerite ja Kubernetes'ega sina peal. Teame, et mitu konteinerit v\u00f5ivad olla \u00fchel masinal.<\/p>\n<p>V\u00f5ib tuua paralleeli \u00fchisest korterist. Suur ruum (masinad\/s\u00f5lmed) antakse mitmele \u00fc\u00fcrnikule (konteineritele). Kubernetes m\u00e4ngib maakleri rolli. Tekib k\u00fcsimus, kuidas hoida \u00fc\u00fcrnikud konfliktideta? Mis juhtub, kui \u00fcks neist otsustab n\u00e4iteks kasutada vannituba poole p\u00e4evaks?<\/p>\n<p>\u0418\u043c\u0435\u043d\u043d\u043e \u0437\u0434\u0435\u0441\u044c \u0432 \u0438\u0433\u0440\u0443 \u0432\u0441\u0442\u0443\u043f\u0430\u044e\u0442 request&#8217;\u044b \u0438 limit&#8217;\u044b. CPU <b>Request<\/b> on vajalik ainult planeerimiseks. See on nagu konteineri \u201esoovide nimekiri\u201d ja seda kasutatakse sobivaima s\u00f5lme leidmiseks. Samal ajal on CPU <b>Limit<\/b> v\u00f5imalik v\u00f5rrelda \u00fc\u00fcrilepinguga \u2014 kui oleme leidnud s\u00f5lme konteineri jaoks, siis <b>ei saa<\/b> \u00fcletada kehtestatud piire. Ja siin tekib probleem...<\/p>\n<h3>\u041a\u0430\u043a \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b request&#8217;\u044b \u0438 limit&#8217;\u044b \u0432 Kubernetes<\/h3>\n<p>\nKubernetes \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0432 \u044f\u0434\u0440\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0442\u0440\u043e\u0442\u0442\u043b\u0438\u043d\u0433\u0430 (\u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430 \u0442\u0430\u043a\u0442\u043e\u0432) \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 CPU limit&#8217;\u043e\u0432. \u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 \u043b\u0438\u043c\u0438\u0442, \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0442\u0440\u043e\u0442\u0442\u043b\u0438\u043d\u0433 (\u0442.\u0435. \u043e\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043c\u0435\u043d\u044c\u0448\u0435 \u0442\u0430\u043a\u0442\u043e\u0432 CPU). Request&#8217;\u044b \u0438 limit&#8217;\u044b \u0434\u043b\u044f \u043f\u0430\u043c\u044f\u0442\u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0438\u043d\u0430\u0447\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0445 \u043b\u0435\u0433\u0447\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0441\u0442\u0430\u0442\u0443\u0441 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 pod&#8217;\u0430: \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u043e\u043d \u00abOOMKilled\u00bb. \u0421 \u0442\u0440\u043e\u0442\u0442\u043b\u0438\u043d\u0433\u043e\u043c CPU \u0432\u0441\u0435 \u043d\u0435 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 K8s \u0434\u0435\u043b\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043f\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e, \u0430 \u043d\u0435 \u043f\u043e cgroups.<\/p>\n<h4>CPU P\u00e4ring<\/h4>\n<p>\n<img decoding=\"async\" alt=\"CPU piirangud ja agressiivne trottling Kuberneteses\" src=\"\/wp-content\/uploads\/2020\/04\/fbc8bf3f775ffd9513374ce94b20535d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Kuidas on rakendatud CPU p\u00e4ring<\/i><\/p>\n<p>Lihtsuse huvides vaatame protsessi 4-erialise CPU masina n\u00e4itel.<\/p>\n<p>K8s \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f (cgroups) \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 (\u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430). \u0414\u043b\u044f \u043d\u0435\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c: \u043f\u043e\u0442\u043e\u043c\u043e\u043a \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442 limit&#8217;\u044b \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 (<code>\/sys\/fs\/cgroup<\/code>). Protsessoriga seotud osas on see <code>\/sys\/fs\/cgroup\/cpu,cpuacct\/*<\/code>.<\/p>\n<p>K8s kasutab faili <code>cpu.share<\/code> sisaldab CPU ressursside jaotamist. Meie juhul saab peamine kontrollgrupp 4096 CPU ressurssi aktsiat \u2014 100% saadaval olevast protsessoriv\u00f5imsusest (1 tuum = 1024; see on fikseeritud v\u00e4\u00e4rtus). Peamine grupp jaotab ressursse proportsionaalselt alluvate aktsiate alusel, mis on m\u00e4\u00e4ratud <code>cpu.share<\/code>, ja need omakorda k\u00e4ituvad sarnaselt oma j\u00e4reltulijatega jne. T\u00fc\u00fcpilises Kubernetes'e s\u00f5lmes on peamisel kontrollgrupil kolm j\u00e4reltulijat: <code>system.slice<\/code>, <code>user.slice<\/code> ja <code>kubepods<\/code>. Esimesi kahte alagruppi kasutatakse ressursside jaotamiseks kriitiliste s\u00fcsteemikoormuste ja kasutajaprogrammide vahel v\u00e4ljaspool K8s. Viimane \u2014 <code>kubepods<\/code> \u2014 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f Kubernetes&#8217;\u043e\u043c \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 pod&#8217;\u0430\u043c\u0438.<\/p>\n<p>\u00dclaltoodud skeemilt on n\u00e4ha, et esimesed kaks alagruppi said kumbki <b>1024<\/b> aktsiat, samal ajal kui alagrupile kubepod on eraldatud <b>4096<\/b> aktsiat. Kuidas see on v\u00f5imalik: peamise grupi jaoks on saadaval ainult <b>4096<\/b> aktsiat, kuid tema alluvate aktsiate summa \u00fcletab seda numbrit m\u00e4rkimisv\u00e4\u00e4rselt (<b>6144<\/b>)? Asi on, et v\u00e4\u00e4rtus omab loogilist t\u00e4hendust, seet\u00f5ttu kasutab Linuxi planeerija (CFS) seda CPU ressursside proportsionaalseks jaotamiseks. Meie puhul saavad esimesed kaks gruppi <b>680<\/b> reaalseid osasid (16,6% 4096-st), samas kui kubepood saab \u00fclej\u00e4\u00e4nud <b>2736<\/b> osasid. Seisaku korral ei kasuta esimesed kaks gruppi eraldatud ressurssi.<\/p>\n<p>K\u00fcmmnes, et planeerijal on mehhanism, mis aitab v\u00e4ltida kasutamata CPU ressursside kadu. See suunab \u201eseisakusse\u201d j\u00e4\u00e4vad v\u00f5imsused globaalsetesse fondidesse, kust need jaotatakse gruppidesse, mis vajavad t\u00e4iendavaid CPU v\u00f5imsusi (jaotamine toimub partiitide kaupa, et v\u00e4ltida kadu \u00fcmmardamise t\u00f5ttu). Sarnast meetodit rakendatakse ka k\u00f5ikide j\u00e4reltulijate puhul.<\/p>\n<p>See mehhanism tagab CPU v\u00f5imsuste \u00f5iglase jaotamise ja j\u00e4lgib, et \u00fckski protsess ei \u201evarastaks\u201d ressursse teistelt.<\/p>\n<h4>CPU Limit<\/h4>\n<p>\n\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 limit&#8217;\u043e\u0432 \u0438 request&#8217;\u043e\u0432 \u0432 K8s \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u043f\u043e\u0445\u043e\u0436\u0435, \u0438\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u0430\u0440\u0434\u0438\u043d\u0430\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f: \u044d\u0442\u043e <b>k\u00f5ige eksitavam<\/b> ja v\u00e4heseima dokumentatsiooni korral.<\/p>\n<p>K8s kasutab <noindex><a rel=\"nofollow\" href=\"https:\/\/www.kernel.org\/doc\/Documentation\/scheduler\/sched-design-CFS.txt\">CFS kvootide mehhanismi.<\/a><\/noindex> piiride rakendamiseks. Nende seaded on m\u00e4\u00e4ratletud failides <code>cfs_period_us<\/code> ja <code>cfs_quota_us<\/code> cgroup kaustas (seal asub ka fail <code>cpu.share<\/code>).<\/p>\n<p>Erinevalt <code>cpu.share<\/code>, on kvoot p\u00f5hinev <b>ajaperioodil<\/b>, mitte saadaval oleval protsessoriv\u00f5imsusel. <code>cfs_period_us<\/code> m\u00e4\u00e4rab perioodi (ajastu) kestuse \u2013 see on alati 100000 \u00b5s (100 ms). K8s-is on v\u00f5imalik seda v\u00e4\u00e4rtust muuta, kuid see on hetkel saadaval ainult alfa-versioonis. Planeerija kasutab ajastut kasutatud kvootide taask\u00e4ivitamiseks. Teine fail, <code>cfs_quota_us<\/code>, m\u00e4\u00e4rab saadaval oleva aja (kvoodi) iga ajastu jooksul. Pange t\u00e4hele, et see on samuti antud mikroskeedes. Kvoot v\u00f5ib \u00fcletada ajastu kestuse; teisis\u00f5nu, see v\u00f5ib olla \u00fcle 100 ms.<\/p>\n<p>Vaadakem kahte stsenaariumi 16- tuumasilma masinatel (k\u00f5ige levinum arvutit\u00fc\u00fcp meie Omios):<\/p>\n<p><img decoding=\"async\" alt=\"CPU piirangud ja agressiivne trottling Kuberneteses\" src=\"\/wp-content\/uploads\/2020\/04\/61c6105320af3a92a91cec1007da0d45.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Stsenaarium 1: 2 niiti ja piirang 200 ms. Ilma trottlinguta<\/i><\/p>\n<p><img decoding=\"async\" alt=\"CPU piirangud ja agressiivne trottling Kuberneteses\" src=\"\/wp-content\/uploads\/2020\/04\/c33993341d5395bb73dda1f4c8482a11.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Stsenaarium 2: 10 niiti ja piirang 200 ms. Trottling algab p\u00e4rast 20 ms, juurde p\u00e4\u00e4s protsessori ressurssidele taastub veel 80 ms p\u00e4rast<\/i><\/p>\n<p>Oletame, et olete seadnud CPU piirangu <b>2<\/b> tuum; Kubernetes t\u00f5lgib selle v\u00e4\u00e4rtuse 200 ms-ks. See t\u00e4hendaks, et konteiner v\u00f5ib kasutada maksimaalselt 200 ms protsessoriaega ilma throttlinguta.<\/p>\n<p>Ja siin hakkab asi huvitavaks minema. Nagu eelnevalt mainitud, on saadaval olev kvoot 200 ms. Kui teil t\u00f6\u00f6tab samal ajal <b>k\u00fcmme<\/b> \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u043d\u0430 12-\u044f\u0434\u0435\u0440\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 (\u0441\u043c. \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u044e \u043a \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044e 2), \u043f\u043e\u043a\u0430 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 pod&#8217;\u044b \u043f\u0440\u043e\u0441\u0442\u0430\u0438\u0432\u0430\u044e\u0442, \u043a\u0432\u043e\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u0447\u0435\u0440\u043f\u0430\u043d\u0430 \u0432\u0441\u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 20 \u043c\u0441 (\u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 10 * 20 \u043c\u0441 = 200 \u043c\u0441), \u0438 \u0432\u0441\u0435 \u043f\u043e\u0442\u043e\u043a\u0438 \u0434\u0430\u043d\u043d\u043e\u0433\u043e pod&#8217;\u0430 \u00ab\u0437\u0430\u0432\u0438\u0441\u043d\u0443\u0442\u00bb <i>(throttle)<\/i> j\u00e4rgmise 80 ms jooksul. Probleemi halvendab juba mainitud <noindex><a rel=\"nofollow\" href=\"https:\/\/bugzilla.kernel.org\/show_bug.cgi?id=198197\">planeerija viga<\/a><\/noindex>, mille t\u00f5ttu toimub \u00fclem\u00e4\u00e4rane throttling ja konteiner ei suuda isegi olemasolevat kvooti \u00e4ra kasutada.<\/p>\n<h2>\u041a\u0430\u043a \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u0442\u0440\u043e\u0442\u0442\u043b\u0438\u043d\u0433 \u0432 pod&#8217;\u0430\u0445?<\/h2>\n<p>\nLihtsalt logige sisse pod'i ja tehke <code>cat \/sys\/fs\/cgroup\/cpu\/cpu.stat<\/code>.<\/p>\n<ul>\n<li> <code>nr_periods<\/code> \u2014 planeerija kogupindade arv;<\/li>\n<li> <code>nr_throttled<\/code> \u2014 throttled-perioodide arv; <code>nr_periods<\/code>;<\/li>\n<li> <code>throttled_time<\/code> \u2014 kogu throttled-aeg nanosekundites.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"CPU piirangud ja agressiivne trottling Kuberneteses\" src=\"\/wp-content\/uploads\/2020\/04\/a1818614914a8c31f7f7f1331cc02e8b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Mis tegelikult toimub?<\/h3>\n<p>\nKokkuv\u00f5ttes saame \u00fchtlast k\u00f5rget throttlingut k\u00f5igis rakendustes. M\u00f5nikord on see <b>poolteise korra<\/b> v\u00f5rra tugevam kui arvutatud!<\/p>\n<p>See to erinevad vead \u2013 valmisoleku kontrolle (readiness) p\u00f5hjustavad t\u00f5rked, konteinerite seiskumised, v\u00f5rgu\u00fchenduste katkestused ja teenusek\u00f5nede ajaviivitused. L\u00f5ppkokkuv\u00f5ttes v\u00e4ljendub see suurema viivituse ja veateate arvu suurenemises.<\/p>\n<h2>Lahendus ja tagaj\u00e4rjed<\/h2>\n<p>\n\u0422\u0443\u0442 \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e. \u041c\u044b \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u043e\u0442 limit&#8217;\u043e\u0432 CPU \u0438 \u0437\u0430\u043d\u044f\u043b\u0438\u0441\u044c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u044f\u0434\u0440\u0430 \u041e\u0421 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u0445 \u043d\u0430 \u0441\u0430\u043c\u0443\u044e \u0441\u0432\u0435\u0436\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0430\u0433 \u0431\u044b\u043b \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d. \u0427\u0438\u0441\u043b\u043e \u043e\u0448\u0438\u0431\u043e\u043a (HTTP 5xx) \u0432 \u043d\u0430\u0448\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u0445 \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043f\u0430\u043b\u043e:<\/p>\n<h3>HTTP 5xx vead<\/h3>\n<p>\n<img decoding=\"async\" alt=\"CPU piirangud ja agressiivne trottling Kuberneteses\" src=\"\/wp-content\/uploads\/2020\/04\/86ab1694b952b5451a4ae075cbda2788.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>\u00dche kriitilise teenuse HTTP 5xx vead<\/i><\/p>\n<h3>Vastusaja p95<\/h3>\n<p>\n<img decoding=\"async\" alt=\"CPU piirangud ja agressiivne trottling Kuberneteses\" src=\"\/wp-content\/uploads\/2020\/04\/63922c8eb468366a7d05154a3adf40e6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Kriitilise teenuse p\u00e4ringute viivitus, 95. percentiil<\/i><\/p>\n<h3>Eksploiteerimise kulud<\/h3>\n<p>\n<img decoding=\"async\" alt=\"CPU piirangud ja agressiivne trottling Kuberneteses\" src=\"\/wp-content\/uploads\/2020\/04\/8405c26fcbd82853e296fa7e3bcba131.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Kulunud eksemplari-tunnid<\/i><\/p>\n<h2>Mis on petuouks?<\/h2>\n<p>\nNagu artikli alguses \u00f6eldud:<\/p>\n<blockquote><p>V\u00f5ib teha analoogia kommunaalkorteriga\u2026 Kubernetes on nagu kinnisvaramaakler. Kuidas aga hoida \u00fc\u00fcrnikud konfliktideta? Mis juhtub, kui \u00fcks neist otsustab n\u00e4iteks v\u00f5tta vannitoa pooleks p\u00e4evaks enda kasutusse?<\/p><\/blockquote>\n<p>\nSiin on probleem. \u00dcks kehv konteiner v\u00f5ib \u00e4ra kasutada k\u00f5ik masina p\u00f6\u00f6rdusressursid. Kui teil on korralik rakenduste virn (n\u00e4iteks \u00f5igesti seadistatud JVM, Go, Node VM), siis ei ole see probleem: sellistes tingimustes saab t\u00f6\u00f6tada pikka aega. Aga kui rakendused on halvasti optimeeritud v\u00f5i \u00fcldse mitte optimeeritud (<code>FROM java:latest<\/code>), v\u00f5ib olukord kontrolli alt v\u00e4ljas olla. Meil Omios on automatiseeritud p\u00f5hja Dockerfiles koos adekvaatsete vaikeseadetega peamiste keelte virna jaoks, seega sellist probleemi ei tekkinud.<\/p>\n<p>Soovitame j\u00e4lgida m\u00f5\u00f5dikuid <noindex><a rel=\"nofollow\" href=\"http:\/\/www.brendangregg.com\/usemethod.html\">USE<\/a><\/noindex> (kasutamine, k\u00fcllastus ja vead), API-late viivitusi ja vigade esinemise sagedust. J\u00e4lgige, et tulemused vastaksid ootustele.<\/p>\n<h2>Lingid<\/h2>\n<p>\nSelline on meie lugu. J\u00e4rgmised materjalid aitasid palju m\u00f5ista, mis toimub:<\/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\">Understanding Linux Container Scheduling<\/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\">Everything You Need to Know about Linux Containers, Part I: Linux Control Groups and Process Isolation<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/k8s.af\/\">Kubernetes Failure Stories<\/a><\/noindex> \u2014 otsige \"cpu throttling\".<\/li>\n<\/ul>\n<p>\nKubernetesi veateated:<\/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\">Liialt agressivne CFS<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nKas olete oma praktikas kokku puutunud sarnaste probleemidega v\u00f5i on teil kogemusi konteinerites k\u00e4ituvate tootmiskeskkondade trottlimisega? Jagage oma lugu kommentaarides!<\/p>\n<h2>P.S. t\u00f5lkija m\u00e4rkused<\/h2>\n<p>\nLugege ka meie blogist:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/459326\/\">Automaatskalaarimine ja ressursside haldamine Kuberneteses (\u00fclevaade ja ettekande video)<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/418269\/\">Kuidas t\u00f6\u00f6tab CPU Manager Kuberneteses<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/342822\/\">Mis toimub Kuberneteses, kui k\u00e4ivitame kubectl run? Osa 2<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Allikas: <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 4.9.10 - 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. \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\" \/>\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\/et\/blog\/administrirovanie\/cpu-limity-i-agressivnyj-trottling-v-kubernetes\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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. \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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/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\udd47CPU piirangud ja agressiivne trottlemine Kuberneteses | ProHoster","description":"T\u00f5lke m\u00e4rk: see \u00f5petlik lugu Omio'st \u2014 Euroopa reisikogumikust \u2014 viib lugejad alusesse teooriasse ja p\u00f5nevatesse praktilistesse detailidesse Kuberneteses. Selliste juhtumitega tutvumine aitab mitte ainult silmaringi laiendada, vaid ka ennetada t\u00f5siseid probleeme. Kas olete kunagi kokku puutunud sellega, et rakendus \"siis j\u00e4i\" seisma ja l\u00f5petas oleku kontrollimise p\u00e4ringutele vastamise.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/cpu-limity-i-agressivnyj-trottling-v-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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. \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","og:url":"https:\/\/prohoster.info\/et\/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"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/77693","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=77693"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/77693\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/77694"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=77693"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=77693"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=77693"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}