{"id":32331,"date":"2019-10-31T21:46:24","date_gmt":"2019-10-31T18:46:24","guid":{"rendered":"https:\/\/prohoster.info\/blog\/steal-kto-kradyot-u-virtualok-protsessornoe-vremya\/"},"modified":"2019-10-31T21:46:24","modified_gmt":"2019-10-31T18:46:24","slug":"steal-kto-kradyot-u-virtualok-protsessornoe-vremya","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/steal-kto-kradyot-u-virtualok-protsessornoe-vremya","title":{"rendered":"Steal: ki lopja a virtu\u00e1lis g\u00e9pekt\u0151l a CPU id\u0151t","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Steal: ki lopja a virtu\u00e1lis g\u00e9pekt\u0151l a CPU id\u0151t\" src=\"\/wp-content\/uploads\/2019\/04\/23cac5d3cc3295dc6f1014e9fda36b89.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHell\u00f3! Szeretn\u00e9k egyszer\u0171 nyelven mes\u00e9lni a steal fogalm\u00e1r\u00f3l a virtu\u00e1lis g\u00e9pekben, \u00e9s n\u00e9h\u00e1ny nyilv\u00e1nval\u00f3an nem \u00e9szlelhet\u0151 jelens\u00e9gr\u0151l, amelyet kutat\u00e1sunk sor\u00e1n siker\u00fclt felfedezn\u00fcnk technikai igazgat\u00f3k\u00e9nt a felh\u0151platformon. <noindex><a rel=\"nofollow\" href=\"https:\/\/mcs.mail.ru\/\">Mail.ru Cloud Solutions<\/a><\/noindex>. A platform KVM-en m\u0171k\u00f6dik.<\/p>\n<p>A CPU steal time az az id\u0151, amikor a virtu\u00e1lis g\u00e9p nem kap processzori er\u0151forr\u00e1sokat a fut\u00e1s\u00e1hoz. Ezt az id\u0151t csak a vend\u00e9g oper\u00e1ci\u00f3s rendszerekben sz\u00e1m\u00edtj\u00e1k virtu\u00e1lis k\u00f6rnyezetekben. Az okok, hogy hova t\u0171nnek ezek az er\u0151forr\u00e1sok, ak\u00e1rcsak az \u00e9letben, meglehet\u0151sen k\u00f6d\u00f6sek. De elhat\u00e1roztuk, hogy ut\u00e1naj\u00e1runk, \u00e9s egy sor k\u00eds\u00e9rletet is v\u00e9gezt\u00fcnk. Nem mondhatom, hogy mindent tudunk a stealr\u00f3l, de most elmondunk n\u00e9h\u00e1ny \u00e9rdekes dolgot.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>1. Mi az a steal<\/h2>\n<p>\nTeh\u00e1t a steal egy olyan mutat\u00f3, amely arra utal, hogy hi\u00e1nyzik a processzori id\u0151 a folyamatok sz\u00e1m\u00e1ra a virtu\u00e1lis g\u00e9pben. Ahogy azt le\u00edrt\u00e1k <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/stable\/linux.git\/patch\/?id=c9aaa8957f203bd6df83b002fb40b98390bed078\">a KVM kernel patchben<\/a><\/noindex>, a steal az az id\u0151, amikor a hypervisor m\u00e1s folyamatokat hajt v\u00e9gre a host oper\u00e1ci\u00f3s rendszeren, mik\u00f6zben a virtu\u00e1lis g\u00e9p folyamat\u00e1t v\u00e9grehajt\u00e1si sorba \u00e1ll\u00edtotta. Teh\u00e1t a steal a folyamat k\u00e9szenl\u00e9tben \u00e1ll\u00e1s\u00e1nak ideje \u00e9s a folyamat sz\u00e1m\u00e1ra biztos\u00edtott processzori id\u0151 k\u00f6z\u00f6tti k\u00fcl\u00f6nbs\u00e9gk\u00e9nt sz\u00e1m\u00edt.<\/p>\n<p>A virtu\u00e1lis g\u00e9p a hypervisort\u00f3l kapja meg a steal mutat\u00f3t. A hypervisor azonban nem r\u00e9szletezi, hogy pontosan mely m\u00e1s folyamatokat hajt v\u00e9gre, csak annyit mond: \"m\u00edg elfoglalt vagyok, nem tudok r\u00e1d figyelni\". A KVM-en a steal sz\u00e1m\u00edt\u00e1s\u00e1nak t\u00e1mogat\u00e1s\u00e1t a <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/449657\/\">patchokban<\/a><\/noindex>vezett\u00e9k be. Itt k\u00e9t kulcsfontoss\u00e1g\u00fa elem van: <\/p>\n<ul>\n<li>A virtu\u00e1lis g\u00e9p a hypervisort\u00f3l \u00e9rtes\u00fcl a stealr\u00f3l. Teh\u00e1t a vesztes\u00e9gek szempontj\u00e1b\u00f3l a virtu\u00e1lis g\u00e9pen bel\u00fcli folyamatok eset\u00e9ben ez egy k\u00f6zvetett m\u00e9r\u00e9s, amely k\u00fcl\u00f6nf\u00e9le torzul\u00e1sokra hajlamos.\n<\/li>\n<li>A hypervisor nem osztja meg a virtu\u00e1lis g\u00e9ppel, hogy mivel foglalkozik \u2013 a l\u00e9nyeg, hogy nem szentel neki id\u0151t. Emiatt a virtu\u00e1lis g\u00e9p nem k\u00e9pes \u00e9szlelni a steal mutat\u00f3 torzul\u00e1sait, amelyeket a verseng\u0151 folyamatok jellege alapj\u00e1n lehetne \u00e9rt\u00e9kelni.\n<\/li>\n<\/ul>\n<p><\/p>\n<h2>2. Mi befoly\u00e1solja a steal-t<\/h2>\n<p><\/p>\n<h3>2.1. A steal sz\u00e1m\u00edt\u00e1sa<\/h3>\n<p>\nAlapvet\u0151en a steal k\u00f6r\u00fclbel\u00fcl \u00fagy sz\u00e1m\u00edt\u00f3dik, mint a hagyom\u00e1nyos processzorhaszn\u00e1lati id\u0151. Az inform\u00e1ci\u00f3 arr\u00f3l, hogy hogyan sz\u00e1m\u00edtj\u00e1k a kihaszn\u00e1lts\u00e1got, nem t\u00fal sok. Tal\u00e1n az\u00e9rt, mert a legt\u00f6bben ezt a k\u00e9rd\u00e9st nyilv\u00e1nval\u00f3nak tartj\u00e1k. De itt is el\u0151fordulhatnak csapd\u00e1k. E folyamat megismer\u00e9s\u00e9hez olvasson el <noindex><a rel=\"nofollow\" href=\"http:\/\/www.brendangregg.com\/blog\/2017-05-09\/cpu-utilization-is-wrong.html\">cikk Brendann Gregg<\/a><\/noindex>: megtudhatja a kihaszn\u00e1lts\u00e1g sz\u00e1m\u00edt\u00e1s\u00e1nak sz\u00e1mos r\u00e9szlet\u00e9t \u00e9s azokat a helyzeteket, amikor ez a sz\u00e1m\u00edt\u00e1s hib\u00e1s lehet az al\u00e1bbi okok miatt:<\/p>\n<ul>\n<li>A processzor t\u00falmeleged\u00e9se, amikor a ciklusok kiolvadnak.\n<\/li>\n<li>A turbo boost be- \u00e9s kikapcsol\u00e1sa, aminek k\u00f6vetkezt\u00e9ben megv\u00e1ltozik a processzor \u00f3rajel frekvenci\u00e1ja.\n<\/li>\n<li>A kvantumid\u0151 hossz\u00e1nak megv\u00e1ltoz\u00e1sa, ami a processzor energiahat\u00e9kony technol\u00f3gi\u00e1inak, p\u00e9ld\u00e1ul a SpeedStep haszn\u00e1latakor t\u00f6rt\u00e9nik.\n<\/li>\n<li>Az \u00e1tlagos sz\u00e1m\u00edt\u00e1s probl\u00e9m\u00e1ja: ha egy perc alatt 80%-os kihaszn\u00e1lts\u00e1got \u00e9rt\u00e9kel\u00fcnk, az elrejtheti a 100%-os r\u00f6vidt\u00e1v\u00fa cs\u00facsot.\n<\/li>\n<li>A ciklikus blokkol\u00e1s (spin lock) miatt a processzor kihaszn\u00e1ltnak t\u0171nik, de a felhaszn\u00e1l\u00f3i folyamat nem l\u00e1tja az el\u0151rehalad\u00e1st a v\u00e9grehajt\u00e1s\u00e1ban. Ennek k\u00f6vetkezt\u00e9ben a folyamat \u00e1ltal kisz\u00e1m\u00edtott processzorkihaszn\u00e1lts\u00e1g 100%-os lesz, m\u00edg fizikailag a processzor id\u0151t nem fog felhaszn\u00e1lni.\n<\/li>\n<\/ul>\n<p>\nNem tal\u00e1ltam olyan cikket, amely hasonl\u00f3 steal sz\u00e1m\u00edt\u00e1ssal foglalkozik (ha tud valamit, oszthatn\u00e1 meg a megjegyz\u00e9sekben). De a forr\u00e1sk\u00f3d alapj\u00e1n a sz\u00e1m\u00edt\u00e1s mechanizmusa ugyanaz, mint a kihaszn\u00e1lts\u00e1gn\u00e1l. Csak a kernelben hozz\u00e1adnak egy \u00faj sz\u00e1ml\u00e1l\u00f3t, kifejezetten a KVM folyamathoz (a virtu\u00e1lis g\u00e9p folyamata), amely nyomon k\u00f6veti, mennyi ideig v\u00e1r a KVM folyamat a processzorid\u0151re. A sz\u00e1ml\u00e1l\u00f3 a processzor specifik\u00e1ci\u00f3j\u00e1b\u00f3l szerzi az inform\u00e1ci\u00f3t, \u00e9s megn\u00e9zi, hogy minden tickj\u00e9t kihaszn\u00e1lta-e a virtu\u00e1lis g\u00e9p. Ha igen, akkor azt sz\u00e1m\u00edtjuk, hogy a processzor csak a virtu\u00e1lis g\u00e9p folyamataival foglalkozott. Ellenkez\u0151 esetben azt jelezz\u00fck, hogy a processzor valami m\u00e1ssal is foglalkozott, \u00e9s elk\u00e9pzelhet\u0151 a steal megjelen\u00e9se. <\/p>\n<p>A steal sz\u00e1m\u00edt\u00e1s folyamata ugyanazokkal a probl\u00e9m\u00e1kkal terhelt, mint a szok\u00e1sos kihaszn\u00e1lts\u00e1g sz\u00e1m\u00edt\u00e1sa. Nem mondhat\u00f3, hogy ezek a probl\u00e9m\u00e1k gyakran el\u0151fordulnak, de elriaszt\u00f3nak t\u0171nnek.<\/p>\n<h3>2.2. A KVM virtualiz\u00e1ci\u00f3 t\u00edpusai<\/h3>\n<p>\n\u00c1ltal\u00e1noss\u00e1gban h\u00e1rom t\u00edpus\u00fa virtualiz\u00e1ci\u00f3 l\u00e9tezik, \u00e9s mindh\u00e1rom t\u00e1mogatott a KVM \u00e1ltal. A virtualiz\u00e1ci\u00f3 t\u00edpusa befoly\u00e1solhatja a steal megjelen\u00e9s\u00e9nek mechanizmus\u00e1t.<\/p>\n<p><b>Transzl\u00e1ci\u00f3<\/b>. Ebben az esetben a virtu\u00e1lis g\u00e9p oper\u00e1ci\u00f3s rendszere a hypervisor fizikai eszk\u00f6zeivel k\u00f6r\u00fclbel\u00fcl \u00edgy m\u0171k\u00f6dik:<\/p>\n<ol>\n<li>A vend\u00e9g oper\u00e1ci\u00f3s rendszer parancsot k\u00fcld a vend\u00e9g eszk\u00f6z\u00e9nek.\n<\/li>\n<li>A vend\u00e9g eszk\u00f6zmeghajt\u00f3 elfogadja a parancsot, l\u00e9trehoz egy k\u00e9r\u00e9st az eszk\u00f6z BIOS-\u00e1nak, \u00e9s elk\u00fcldi azt a hypervisorhoz.\n<\/li>\n<li>A hipervizor folyamata parancsokat ford\u00edt \u00e1t a fizikai eszk\u00f6z sz\u00e1m\u00e1ra, ezzel k\u00f6zt\u00fck biztons\u00e1gosabb\u00e1 is t\u00e9ve azt.\n<\/li>\n<li>A fizikai eszk\u00f6z meghajt\u00f3ja a m\u00f3dos\u00edtott parancsot fogadja, \u00e9s azt m\u00e1r mag\u00e1nak a fizikai eszk\u00f6znek k\u00fcldi el.\n<\/li>\n<li>A parancsok v\u00e9grehajt\u00e1s\u00e1nak eredm\u00e9nye ugyanazon az \u00faton t\u00e9r vissza. \n<\/li>\n<\/ol>\n<p>\nA ford\u00edt\u00e1s el\u0151nye, hogy lehet\u0151v\u00e9 teszi b\u00e1rmilyen eszk\u00f6z emul\u00e1l\u00e1s\u00e1t, \u00e9s nem ig\u00e9nyel a m\u0171veleti rendszer magj\u00e1nak k\u00fcl\u00f6n felk\u00e9sz\u00edt\u00e9s\u00e9t. De ez\u00e9rt els\u0151dlegesen a teljes\u00edtm\u00e9ny rov\u00e1s\u00e1ra megy. <\/p>\n<p><b>Hardveres virtualiz\u00e1ci\u00f3<\/b>. Ebben az esetben a hardver szintj\u00e9n az eszk\u00f6z \u00e9rti a m\u0171veleti rendszerb\u0151l \u00e9rkez\u0151 parancsokat. Ez a leggyorsabb \u00e9s legjobb m\u00f3dja. De sajnos, nem minden fizikai eszk\u00f6z, hipervizor \u00e9s vend\u00e9g oper\u00e1ci\u00f3s rendszer t\u00e1mogatja. Jelenleg a hardveres virtualiz\u00e1ci\u00f3t t\u00e1mogat\u00f3 f\u0151 eszk\u00f6z\u00f6k a processzorok.<\/p>\n<p><b>Paravirtualiz\u00e1ci\u00f3 (paravirtualization)<\/b>. A legelterjedtebb eszk\u00f6zvirtualiz\u00e1ci\u00f3s m\u00f3d a KVM-en, \u00e9s \u00e1ltal\u00e1ban a vend\u00e9g oper\u00e1ci\u00f3s rendszerek sz\u00e1m\u00e1ra a legelterjedtebb virtualiz\u00e1l\u00e1si m\u00f3d is. Jellemz\u0151je, hogy bizonyos hipervizor alrendszerek (p\u00e9ld\u00e1ul a h\u00e1l\u00f3zati vagy lemezk\u00f6teg) kezel\u00e9s\u00e9re vagy mem\u00f3riaoldalak kioszt\u00e1s\u00e1ra a hipervizor API-j\u00e1t haszn\u00e1lja, alacsony szint\u0171 parancsok ford\u00edt\u00e1sa n\u00e9lk\u00fcl. E m\u00f3dszer h\u00e1tr\u00e1nya, hogy a vend\u00e9g oper\u00e1ci\u00f3s rendszer magj\u00e1t m\u00f3dos\u00edtani kell, hogy az interakci\u00f3ba l\u00e9phessen a hipervizorral ezen API seg\u00edts\u00e9g\u00e9vel. De ez \u00e1ltal\u00e1ban k\u00fcl\u00f6nleges meghajt\u00f3k telep\u00edt\u00e9s\u00e9vel oldhat\u00f3 meg a vend\u00e9g oper\u00e1ci\u00f3s rendszeren. A KVM-n\u00e9l ezt az API-t h\u00edvj\u00e1k <noindex><a rel=\"nofollow\" href=\"https:\/\/www.ibm.com\/developerworks\/library\/l-virtio\/index.html\">virtio API<\/a><\/noindex>.<\/p>\n<p>A paravirtualiz\u00e1ci\u00f3 sor\u00e1n a ford\u00edt\u00e1shoz k\u00e9pest a fizikai eszk\u00f6z fel\u00e9 vezet\u0151 \u00fat jelent\u0151sen ler\u00f6vid\u00fcl, mivel a paranccsok k\u00f6zvetlen\u00fcl a virtu\u00e1lis g\u00e9pb\u0151l a hipervizor processzor\u00e1hoz ker\u00fclnek a gazdag\u00e9pen. Ez lehet\u0151v\u00e9 teszi a virtu\u00e1lis g\u00e9pen bel\u00fcli \u00f6sszes utas\u00edt\u00e1s v\u00e9grehajt\u00e1s\u00e1nak felgyors\u00edt\u00e1s\u00e1t. A KVM-n\u00e9l ez\u00e9rt a virtio API felel\u0151s, amely csak bizonyos eszk\u00f6z\u00f6kkel m\u0171k\u00f6dik, mint p\u00e9ld\u00e1ul a h\u00e1l\u00f3zati vagy lemezes adapterek. Ez\u00e9rt a virtu\u00e1lis g\u00e9pekbe virtio-meghajt\u00f3kat telep\u00edtenek. <\/p>\n<p>Ennek a felgyors\u00edt\u00e1snak a h\u00e1tul\u00fct\u0151je, hogy nem minden folyamat, amely a virtu\u00e1lis g\u00e9pen fut, marad bent. Ez n\u00e9h\u00e1ny speci\u00e1lis hat\u00e1st eredm\u00e9nyez, amelyek a stolen val\u00f3 megjelen\u00e9shez vezethetnek. Javaslom, hogy a t\u00e9ma r\u00e9szletes tanulm\u00e1nyoz\u00e1s\u00e1t kezdje el itt: <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/239238\/\">Egy API virtu\u00e1lis I\/O-hoz: virtio<\/a><\/noindex>.<\/p>\n<h3>2.3. \u201eTisztess\u00e9ges\u201d \u00fctemez\u00e9s<\/h3>\n<p>\nA hypervisor alatt fut\u00f3 virtu\u00e1lis g\u00e9p val\u00f3j\u00e1ban egy szokv\u00e1nyos folyamat, amely a Linux kernel \u00fctemez\u00e9si t\u00f6rv\u00e9nyeinek (er\u0151forr\u00e1sok eloszt\u00e1sa a folyamatok k\u00f6z\u00f6tt) al\u00e1vetett, ez\u00e9rt r\u00e9szletesebben megvizsg\u00e1ljuk. <\/p>\n<p>A Linuxban az \u00fagynevezett CFS-t, azaz Completely Fair Scheduler-t haszn\u00e1lj\u00e1k, amely a 2.6.23-as kernelt\u0151l kezdve az alap\u00e9rtelmezett \u00fctemez\u0151v\u00e9 v\u00e1lt. Az algoritmus meg\u00e9rt\u00e9s\u00e9hez \u00e9rdemes elolvasni a Linux Kernel Architecture k\u00f6nyvet vagy a forr\u00e1sk\u00f3dokat. A CFS l\u00e9nyeg\u00e9ben a processzormin\u0151s\u00e9gi id\u0151 eloszt\u00e1s\u00e1r\u00f3l sz\u00f3l, att\u00f3l f\u00fcgg\u0151en, hogy a folyamatok mennyi ideig futnak. Min\u00e9l t\u00f6bb processzorid\u0151t ig\u00e9nyel egy folyamat, ann\u00e1l kevesebb id\u0151t kap. Ez garant\u00e1lja, hogy minden folyamat \u201etisztess\u00e9gesen\u201d hajt\u00f3dik v\u00e9gre \u2014 hogy egyetlen folyamat ne foglalja el folyamatosan az \u00f6sszes processzort, \u00e9s a t\u00f6bbi folyamat is futhasson. <\/p>\n<p>N\u00e9ha ez a paradigma \u00e9rdekes artefaktumokhoz vezet. A r\u00e9gi Linux felhaszn\u00e1l\u00f3k bizony\u00e1ra eml\u00e9keznek az asztali sz\u00f6vegszerkeszt\u0151 megfagy\u00e1s\u00e1ra, amikor er\u0151forr\u00e1s-ig\u00e9nyes alkalmaz\u00e1sokat, p\u00e9ld\u00e1ul ford\u00edt\u00f3kat ind\u00edtottunk. Ez az\u00e9rt t\u00f6rt\u00e9nt, mert az er\u0151forr\u00e1s-k\u00edm\u00e9l\u0151 feladatok versenyeztek az akt\u00edvan er\u0151forr\u00e1st fogyaszt\u00f3 feladatokkal, mint p\u00e9ld\u00e1ul a ford\u00edt\u00f3. A CFS ezt tisztess\u00e9gtelens\u00e9gnek tartja, ez\u00e9rt id\u0151nk\u00e9nt meg\u00e1ll\u00edtja a sz\u00f6vegszerkeszt\u0151t, \u00e9s lehet\u0151s\u00e9get ad a processzornak a ford\u00edt\u00f3k feladatainak feldolgoz\u00e1s\u00e1ra. Ezt korrekci\u00f3ra ker\u00fclt a <noindex><a rel=\"nofollow\" href=\"https:\/\/marc.info\/?l=linux-kernel&amp;m=128978361700898\">sched_autogroup<\/a><\/noindex>, azonban m\u00e9g mindig sok m\u00e1s, a processzorid\u0151 feloszt\u00e1s\u00e1nak saj\u00e1toss\u00e1ga fenn\u00e1ll. Val\u00f3j\u00e1ban nem arr\u00f3l van sz\u00f3, hogy mennyire rossz a CFS, hanem arr\u00f3l, hogy a processzorid\u0151 \u201etisztess\u00e9ges\u201d eloszt\u00e1sa nem egy trivi\u00e1lis feladat.<\/p>\n<p>Egy m\u00e1sik fontos t\u00e9nyez\u0151 a schedulerben a preemption (megszak\u00edt\u00e1s). Erre sz\u00fcks\u00e9g van ahhoz, hogy elt\u00e1vol\u00edtsuk a t\u00falhev\u00fclt folyamatot a processzorr\u00f3l, \u00e9s lehet\u0151s\u00e9get adjunk m\u00e1soknak a munk\u00e1ra. A folyamat elt\u00e1vol\u00edt\u00e1s\u00e1t context switching-nek nevezik, azaz a processzor kontextus\u00e1nak v\u00e1lt\u00e1s\u00e1nak. Ek\u00f6zben a feladat teljes kontextusa megmarad: a verem \u00e1llapota, regiszterek \u00e9s egyebek, majd a folyamatot v\u00e1rakoz\u00f3 \u00e1llapotba helyezik, \u00e9s a hely\u00e9re egy m\u00e1sik folyamat l\u00e9p. Ez egy dr\u00e1ga m\u0171velet az oper\u00e1ci\u00f3s rendszer sz\u00e1m\u00e1ra, ez\u00e9rt ritk\u00e1n haszn\u00e1lj\u00e1k, de l\u00e9nyeg\u00e9ben semmi rossz nincs benne. A gyakori kontextusv\u00e1lt\u00e1s probl\u00e9m\u00e1t jelezhet az oper\u00e1ci\u00f3s rendszerben, de \u00e1ltal\u00e1ban folyamatosan zajlik, \u00e9s nem mutat k\u00fcl\u00f6n\u00f6sebb probl\u00e9m\u00e1ra.<\/p>\n<p>Ez a hossz\u00fa t\u00f6rt\u00e9net az\u00e9rt sz\u00fcks\u00e9ges, hogy egy t\u00e9nyt megmagyar\u00e1zzak: min\u00e9l t\u00f6bb er\u0151forr\u00e1st pr\u00f3b\u00e1l felhaszn\u00e1lni egy folyamat a Linux tisztess\u00e9ges scheduler\u00e9ben, ann\u00e1l gyorsabban fognak le\u00e1ll\u00edtani, hogy m\u00e1s folyamatok is dolgozhassanak. Helyes-e ez vagy sem \u2013 bonyolult k\u00e9rd\u00e9s, amire a k\u00fcl\u00f6nb\u00f6z\u0151 terhel\u00e9sek eset\u00e9ben k\u00fcl\u00f6nb\u00f6z\u0151 v\u00e1laszok sz\u00fcletnek. A Windowsban nemr\u00e9giben a scheduler a desktop alkalmaz\u00e1sok priorit\u00e1sos feldolgoz\u00e1s\u00e1ra \u00f6sszpontos\u00edtott, ami miatt a h\u00e1tt\u00e9rfolyamatok lefagytak. A Sun Solarisnak \u00f6t k\u00fcl\u00f6nb\u00f6z\u0151 scheduler oszt\u00e1lya volt. Amikor elind\u00edtott\u00e1k a virtualiz\u00e1ci\u00f3t, hozz\u00e1adt\u00e1k a hatodikat, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/man.shtml?topic=FSS&amp;category=7&amp;russian=4\">Fair share scheduler<\/a><\/noindex>, mivel az el\u0151z\u0151 \u00f6t nem kezelt megfelel\u0151en a Solaris Zones virtualiz\u00e1ci\u00f3val. E t\u00e9ma r\u00e9szletes tanulm\u00e1nyoz\u00e1s\u00e1t aj\u00e1nlom olyan k\u00f6nyvekkel kezdeni, mint <noindex><a rel=\"nofollow\" href=\"https:\/\/www.amazon.com\/Solaris-Internals-OpenSolaris-Kernel-Architecture\/dp\/0131482092\/\">Solaris Internals: Solaris 10 \u00e9s OpenSolaris Kernel Architecture<\/a><\/noindex> vagy <noindex><a rel=\"nofollow\" href=\"https:\/\/www.amazon.com\/Understanding-Linux-Kernel-Third-Daniel\/dp\/0596005652\/\">Understanding the Linux Kernel<\/a><\/noindex>.<\/p>\n<h3>2.4. Hogyan monitorozzuk a steal-t?<\/h3>\n<p>\nA steal monitoroz\u00e1sa a virtu\u00e1lis g\u00e9pben, ak\u00e1rcsak b\u00e1rmely m\u00e1s processzormetrika, egyszer\u0171: b\u00e1rmilyen processzor-metric\u00e1k gy\u0171jt\u00e9s\u00e9re szolg\u00e1l\u00f3 eszk\u00f6zt haszn\u00e1lhatunk. A l\u00e9nyeg, hogy a virtu\u00e1lis g\u00e9p Linuxon fusson. A Windows valami\u00e9rt nem biztos\u00edt ilyen inform\u00e1ci\u00f3t a felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra. \ud83d\ude41<\/p>\n<p><img decoding=\"async\" alt=\"Steal: ki lopja a virtu\u00e1lis g\u00e9pekt\u0151l a CPU id\u0151t\" src=\"\/wp-content\/uploads\/2019\/04\/3c7cd04f73fd6a74b86af81382090b69.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>A top parancs kimenete: a processzorra nehezed\u0151 terhel\u00e9s r\u00e9szletes elemz\u00e9se, a legjobb oszlopban \u2013 steal<\/i><\/p>\n<p>A neh\u00e9zs\u00e9g akkor mer\u00fcl fel, amikor ezt az inform\u00e1ci\u00f3t a hypervisorb\u00f3l szeretn\u00e9nk megszerezni. Megpr\u00f3b\u00e1lhatjuk el\u0151re jelezni a steal-t a hostg\u00e9pen, p\u00e9ld\u00e1ul a Load Average (LA) param\u00e9ter alapj\u00e1n \u2013 a v\u00e1rakoz\u00f3 folyamatok \u00e1tlagos sz\u00e1m\u00e1nak mondta. E param\u00e9ter kisz\u00e1m\u00edt\u00e1s\u00e1nak m\u00f3dszere nem egyszer\u0171, de \u00e1ltal\u00e1noss\u00e1gban, ha a processzort\u00f6meghez norm\u00e1lt LA \u00e9rt\u00e9k 1 felett van, akkor az azt jelzi, hogy a Linux szerver valamilyen m\u00f3don t\u00falterhelt. <\/p>\n<p>Mit v\u00e1rnak ezek a folyamatok? A nyilv\u00e1nval\u00f3 v\u00e1lasz a processzor. De a v\u00e1lasz nem teljesen helyes, mert n\u00e9ha a processzor szabad, m\u00edg a LA a plafonon van. Eml\u00e9kezz\u00fcnk arra, <noindex><a rel=\"nofollow\" href=\"https:\/\/serverfault.com\/questions\/911976\/redhat-nfs-cluster-high-load-average-suddenly\">hogyan szakadhat le az NFS, \u00e9s hogy ek\u00f6zben hogyan n\u0151 a LA<\/a><\/noindex>. Hasonl\u00f3k\u00e9ppen m\u0171k\u00f6dhet a lemez \u00e9s m\u00e1s t\u00e1rol\u00f3eszk\u00f6z\u00f6k eset\u00e9ben is. Val\u00f3j\u00e1ban a folyamatok v\u00e1rhatj\u00e1k b\u00e1rmilyen blokkol\u00e1s befejez\u00e9s\u00e9t, legyen az fizikai, amely a t\u00e1rol\u00f3eszk\u00f6zh\u00f6z kapcsol\u00f3dik, vagy logikai, mint p\u00e9ld\u00e1ul a mutex. Ide tartoznak a hardver szint\u0171 blokkol\u00e1sok (p\u00e9ld\u00e1ul a lemez v\u00e1lasza) vagy a logikai (az \u00fagynevezett blokkol\u00e1si primit\u00edvek, amelyek k\u00f6z\u00e9 tartozik sok entit\u00e1s, mint p\u00e9ld\u00e1ul az adapt\u00edv mutexek \u00e9s spin, szemaforok, felt\u00e9teles v\u00e1ltoz\u00f3k, rw z\u00e1rak, ipc z\u00e1rak\u2026).<\/p>\n<p>A LA egyik m\u00e1sik saj\u00e1toss\u00e1ga, hogy az oper\u00e1ci\u00f3s rendszeren bel\u00fcl \u00e1tlagos \u00e9rt\u00e9kk\u00e9nt sz\u00e1m\u00edtj\u00e1k. P\u00e9ld\u00e1ul 100 folyamat versenyez egy f\u00e1jl felett, \u00e9s akkor a LA=50. Ez a magas \u00e9rt\u00e9k nyilv\u00e1nval\u00f3nak t\u0171nik, hogy az oper\u00e1ci\u00f3s rendszer rosszul teljes\u00edt. De egy hib\u00e1san \u00edrt k\u00f3d eset\u00e9ben ez norm\u00e1lis \u00e1llapot lehet, mik\u00f6zben m\u00e1s folyamatok az oper\u00e1ci\u00f3s rendszerben nem szenvednek. <\/p>\n<p>A fent eml\u00edtett \u00e1tlagol\u00e1s miatt (legal\u00e1bb egy perc alatt), a LA mutat\u00f3 alapj\u00e1n valami meghat\u00e1roz\u00e1sa nem a legkellemesebb feladat, \u00e9s a konkr\u00e9t esetekben meglehet\u0151sen bizonytalan eredm\u00e9nyeket ad. Ha pr\u00f3b\u00e1lkozik, \u00e9szre fogja venni, hogy a Wikip\u00e9di\u00e1n \u00e9s egy\u00e9b el\u00e9rhet\u0151 forr\u00e1sokban csup\u00e1n a legegyszer\u0171bb esetek vannak le\u00edrva, m\u00e9lyebb folyamatmagyar\u00e1zat n\u00e9lk\u00fcl. Minden \u00e9rdekl\u0151d\u0151t \u00fajra ide k\u00fcld\u00f6k, <noindex><a rel=\"nofollow\" href=\"http:\/\/www.brendangregg.com\/blog\/2017-08-08\/linux-load-averages.html\">ide, Brendann Gregghez<\/a><\/noindex> \u00a0\u2014 tov\u00e1bbi linkeken. Akinek nincs kedve angolul, \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/335326\/\">az \u0151 LA-r\u00f3l sz\u00f3l\u00f3 n\u00e9pszer\u0171 cikk\u00e9nek ford\u00edt\u00e1sa<\/a><\/noindex>.<\/p>\n<h2>3. Speci\u00e1lis hat\u00e1sok<\/h2>\n<p>\nMost \u00e1tt\u00e9r\u00fcnk arra, hogy mik a steal megjelen\u00e9s\u00e9nek f\u0151 esetei, amelyekkel tal\u00e1lkoztunk. Elmondom, hogyan k\u00f6vetkeznek az \u00f6sszes kor\u00e1bban elmondottb\u00f3l, \u00e9s hogyan kapcsol\u00f3dnak a hypervisor m\u00e9r\u00e9seihez.<\/p>\n<p><b>\u00dajrahaszn\u00e1l\u00e1s<\/b>. A legegyszer\u0171bb \u00e9s leggyakoribb eset: a hypervisor \u00fajrahaszn\u00e1lva. Val\u00f3ban, sok virtu\u00e1lis g\u00e9p fut, nagy CPU-felhaszn\u00e1l\u00e1s benn\u00fck, nagy verseny, LA nagyobb mint 1 (a processzort\u00e1lc\u00e1kra normaliz\u00e1lva). Minden bels\u0151 virtu\u00e1lis g\u00e9p lelassul. A hypervisort\u00f3l \u00e1tadott steal is n\u0151, a terhel\u00e9st \u00fajra kell osztani vagy valakit ki kell kapcsolni. \u00d6sszess\u00e9g\u00e9ben minden logikus \u00e9s vil\u00e1gos.<\/p>\n<p><b>Paravirtualiz\u00e1ci\u00f3 az egyedi p\u00e9ld\u00e1nyokkal szemben<\/b>. A hypervisor has a single virtual machine that consumes a small part of it but imposes a significant load in terms of I\/O, such as disk usage. And from somewhere, a small amount of steal appears in it, up to 10% (as shown by several experiments conducted).<\/p>\n<p>This is an interesting case. Steal occurs here precisely because of locks at the level of paravirtualized drivers. An interrupt is created inside the virtual machine, which is processed by the driver and sent to the hypervisor. Due to the processing of the interrupt in the hypervisor, it appears to the virtual machine as a sent request; it is ready for execution and waits for the processor, but is not allocated processor time. The virtual machine thinks this time has been stolen. <\/p>\n<p>This happens at the moment the buffer is sent; it goes to the kernel space of the hypervisor, and we begin to wait for it. However, from the virtual machine's perspective, it should return immediately. Therefore, according to the steal calculation algorithm, this time is considered stolen. Most likely, in this situation, there could be other mechanisms (for example, handling some other sys calls), but they should not differ significantly.<\/p>\n<p><b>Scheduler vs. high-load virtual machines<\/b>. When one virtual machine suffers more from steal than others, it is directly related to the scheduler. The more a process loads the processor, the sooner the scheduler will evict it, so that others can work too. If a virtual machine is consuming little, it will hardly notice steal: its process waited patiently, and it needs more time. If a virtual machine generates maximum load across all its cores, it is evicted from the processor more frequently and is not given much time. <\/p>\n<p>It is even worse when processes inside the virtual machine try to gain more processor time because they cannot handle data processing. Then the operating system on the hypervisor, due to proper optimization, will allocate less and less processor time. This process becomes avalanche-like, and steal skyrockets, although other virtual machines may hardly notice it. And the more cores there are, the worse it is for the machine caught in this situation. In short, high-load virtual machines with many cores suffer the most.<\/p>\n<p><b>Low LA, but there is steal<\/b>. If LA is around 0.7 (meaning the hypervisor seems underloaded), but steal is observed inside individual virtual machines:<\/p>\n<ul>\n<li>A fent eml\u00edtett paravirtualiz\u00e1ci\u00f3s m\u00f3dszer. A virtu\u00e1lis g\u00e9p olyan mutat\u00f3kat kaphat, amelyek a steal-re mutatnak, b\u00e1r a hypervisor sz\u00e1m\u00e1ra minden rendben van. K\u00eds\u00e9rleteink alapj\u00e1n ez a steal nem haladja meg a 10%-ot, \u00e9s nem kellene jelent\u0151s hat\u00e1ssal lennie a virtu\u00e1lis g\u00e9pben fut\u00f3 alkalmaz\u00e1sok teljes\u00edtm\u00e9ny\u00e9re.\n<\/li>\n<li>Hib\u00e1san sz\u00e1molj\u00e1k a LA param\u00e9tert. Pontosabban, minden egyes pillanatban helyesen sz\u00e1molj\u00e1k, de egy perc \u00e1tlaga alatt alulbecs\u00fclt \u00e9rt\u00e9ket ad. P\u00e9ld\u00e1ul, ha egy virtu\u00e1lis g\u00e9p a hypervisor processzorainak egyharmad\u00e1t pontosan f\u00e9l percen kereszt\u00fcl haszn\u00e1lja, akkor a hypervisor LA-ja egy perc alatt 0,15 lesz; n\u00e9gy ilyen virtu\u00e1lis g\u00e9p, amelyek egyszerre futnak, 0,6-ot adnak. Az, hogy minden virtu\u00e1lis g\u00e9pen f\u00e9l percen kereszt\u00fcl 25%-os steal volt a LA mutat\u00f3 szerint, m\u00e1r nem hozhat\u00f3 vissza.\n<\/li>\n<li>Ism\u00e9t csak a scheduler miatt, aki \u00fagy d\u00f6nt\u00f6tt, hogy valaki t\u00fal sokat haszn\u00e1l, \u00e9s ennek a valakinek v\u00e1rnia kell. K\u00f6zben \u00e9n \u00e1tv\u00e1ltok m\u00e1s kontextusra, feldolgozom a megszak\u00edt\u00e1sokat \u00e9s foglalkozom m\u00e1s fontos rendszerbeli \u00fcgyekkel. Ennek eredm\u00e9nyek\u00e9nt egyes virtu\u00e1lis g\u00e9pek nem tapasztalnak probl\u00e9m\u00e1kat, m\u00edg m\u00e1sok s\u00falyos teljes\u00edtm\u00e9nyroml\u00e1st szenvednek el.\n<\/li>\n<\/ul>\n<p><\/p>\n<h2>4. Egy\u00e9b torzul\u00e1sok<\/h2>\n<p>\nSz\u00e1mos m\u00e1s oka is lehet a virtu\u00e1lis g\u00e9pen v\u00e9gzett processzorid\u0151 torzul\u00e1s\u00e1nak. P\u00e9ld\u00e1ul, a hyper-threading \u00e9s a NUMA zavar\u00f3 hat\u00e1sai bonyol\u00edtj\u00e1k a folyamatok v\u00e9grehajt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges magv\u00e1laszt\u00e1st, mivel a scheduler s\u00falyoz\u00f3kat haszn\u00e1l, amelyek a kontextusv\u00e1lt\u00e1s sor\u00e1n m\u00e9g nehezebb\u00e9 teszik a sz\u00e1m\u00edt\u00e1st.<\/p>\n<p>Torzul\u00e1sok l\u00e9phetnek fel turb\u00f3boost vagy \u00e9ppen ellenkez\u0151leg, energiatakar\u00e9kos \u00fczemm\u00f3d technol\u00f3gi\u00e1k miatt is, amelyek a kihaszn\u00e1lts\u00e1g sz\u00e1m\u00edt\u00e1sa sor\u00e1n mesters\u00e9gesen n\u00f6velhetik vagy cs\u00f6kkentheti a frekvenci\u00e1t vagy ak\u00e1r a kvantumid\u0151t a szerveren. A turb\u00f3boost bekapcsol\u00e1sa cs\u00f6kkenti az egyik processzor sz\u00e1l teljes\u00edtm\u00e9ny\u00e9t a m\u00e1sik teljes\u00edtm\u00e9ny\u00e9nek n\u00f6vel\u00e9se miatt. Ekkor a virtu\u00e1lis g\u00e9p sz\u00e1m\u00e1ra nem ker\u00fcl \u00e1tad\u00e1sra a t\u00e9nyleges processzorfrekvencia inform\u00e1ci\u00f3ja, \u00e9s azt hiszi, hogy az id\u0151t ellopj\u00e1k t\u0151le (p\u00e9ld\u00e1ul \u0151 2 GHz-t k\u00e9rt, de fele annyit kapott). <\/p>\n<p>\u00d6sszess\u00e9g\u00e9ben sokf\u00e9le oka lehet a torzul\u00e1soknak. Egy adott rendszerben felfedezhet valami m\u00e1st is. \u00c9rdemes a fent eml\u00edtett k\u00f6nyvekkel kezdeni, \u00e9s statisztikai adatokat gy\u0171jteni a hypervisorr\u00f3l olyan eszk\u00f6z\u00f6kkel, mint a perf, sysdig, systemtap, amelyekb\u0151l <noindex><a rel=\"nofollow\" href=\"https:\/\/jvns.ca\/blog\/2017\/07\/05\/linux-tracing-systems\/\">t\u00f6bb tucat<\/a><\/noindex>.<\/p>\n<h2>5. K\u00f6vetkeztet\u00e9sek<\/h2>\n<p><\/p>\n<ol>\n<li>Valamely mennyis\u00e9g\u0171 steal el\u0151fordulhat a paravirtualiz\u00e1ci\u00f3 miatt, \u00e9s ezt norm\u00e1lisnak lehet tekinteni. Az interneten azt \u00edrj\u00e1k, hogy ez az \u00e9rt\u00e9k 5-10% k\u00f6z\u00f6tt mozoghat. Ez f\u00fcgg a virtu\u00e1lis g\u00e9pben l\u00e9v\u0151 alkalmaz\u00e1sokt\u00f3l \u00e9s att\u00f3l, hogy mekkora terhel\u00e9st adnak a fizikai berendez\u00e9sekre. Itt fontos figyelni arra, hogy az alkalmaz\u00e1sok hogyan teljes\u00edtenek a virtu\u00e1lis g\u00e9pekben.\n<\/li>\n<li>A hipervizor terhel\u00e9se \u00e9s a steal ar\u00e1nya a virtu\u00e1lis g\u00e9pben nem mindig egy\u00e9rtelm\u0171en k\u00f6lcs\u00f6nhat\u00e1sban \u00e1llnak, mindk\u00e9t steal \u00e9rt\u00e9k t\u00e9ves lehet konkr\u00e9t helyzetekben, elt\u00e9r\u0151 terhel\u00e9sek eset\u00e9n.\n<\/li>\n<li>A scheduler nem kedveli azokat a folyamatokat, amelyek sokat k\u00e9rnek. Igyekszik kevesebbet adni azoknak, akik t\u00f6bbet k\u00e9rnek. A nagy virtu\u00e1lis g\u00e9pek \u00e1rtalmasak.\n<\/li>\n<li>Kis steal norm\u00e1nak sz\u00e1m\u00edthat an\u00e9lk\u00fcl is, hogy paravirtualiz\u00e1ci\u00f3 lenne (figyelembe v\u00e9ve a virtu\u00e1lis g\u00e9p bels\u0151 terhel\u00e9s\u00e9t, a szomsz\u00e9dok terhel\u00e9s\u00e9nek saj\u00e1toss\u00e1gait, a terhel\u00e9s sz\u00e1lak k\u00f6z\u00f6tti eloszt\u00e1s\u00e1t \u00e9s egy\u00e9b t\u00e9nyez\u0151ket).\n<\/li>\n<li>Ha meg szeretn\u00e9 tudni a steal \u00e9rt\u00e9k\u00e9t egy adott rendszeren, k\u00fcl\u00f6nb\u00f6z\u0151 lehet\u0151s\u00e9geket kell kutatnia, metr\u00edk\u00e1kat kell gy\u0171jtenie, alaposan elemeznie kell azokat, \u00e9s meg kell fontolnia, hogyan lehet egyenletesen elosztani a terhel\u00e9st. B\u00e1rmely esetn\u00e9l lehets\u00e9ges elt\u00e9r\u00e9sek mer\u00fclhetnek fel, amelyeket k\u00eds\u00e9rleti \u00faton kell meger\u0151s\u00edteni vagy a kernel debuggere seg\u00edts\u00e9g\u00e9vel megvizsg\u00e1lni.\n<\/li>\n<\/ol>\n<p>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/449316\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442! \u0425\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u044f\u0437\u044b\u043a\u043e\u043c \u043e \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f steal \u0432\u043d\u0443\u0442\u0440\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d \u0438 \u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0445 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043c \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c \u043f\u0440\u0438 \u0435\u0433\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u043e\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0442\u0435\u0445\u0434\u0438\u0440\u0443 \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Mail.ru Cloud Solutions. \u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 KVM. CPU steal time \u2014 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f, \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":24147,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-32331","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.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442!\" \/>\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\/hu\/blog\/administrirovanie\/steal-kto-kradyot-u-virtualok-protsessornoe-vremya\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\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\udd47Steal: \u043a\u0442\u043e \u043a\u0440\u0430\u0434\u0451\u0442 \u0443 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043e\u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442!\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/steal-kto-kradyot-u-virtualok-protsessornoe-vremya\" \/>\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=\"2019-10-31T18:46:24+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:46:24+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\udd47Steal: ki lopja el a virtu\u00e1lis g\u00e9pek processzorid\u0151j\u00e9t | ProHoster","description":"Hell\u00f3!","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/steal-kto-kradyot-u-virtualok-protsessornoe-vremya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","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\udd47Steal: \u043a\u0442\u043e \u043a\u0440\u0430\u0434\u0451\u0442 \u0443 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043e\u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442!","og:url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/steal-kto-kradyot-u-virtualok-protsessornoe-vremya","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":"2019-10-31T18:46:24+00:00","article:modified_time":"2019-10-31T18:46:24+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"32331","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":"2026-01-21 10:21:22","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:00:23","updated":"2026-01-21 10:21:22","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/32331","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=32331"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/32331\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/24147"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=32331"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=32331"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=32331"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}