{"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\/cs\/blog\/administrirovanie\/steal-kto-kradyot-u-virtualok-protsessornoe-vremya","title":{"rendered":"Steal: kdo krade procesorov\u00fd \u010das u virtu\u00e1ln\u00edch stroj\u016f","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Steal: kdo krade procesorov\u00fd \u010das u virtu\u00e1ln\u00edch stroj\u016f\" src=\"\/wp-content\/uploads\/2019\/04\/23cac5d3cc3295dc6f1014e9fda36b89.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAhoj! Chci jednodu\u0161e vysv\u011btlit mechaniku vzniku steal uvnit\u0159 virtu\u00e1ln\u00edch stroj\u016f a n\u011bkter\u00e9 neviditeln\u00e9 artefakty, kter\u00e9 jsme zjistili b\u011bhem jeho v\u00fdzkumu, do kter\u00e9ho jsem se musel pono\u0159it jako technick\u00fd \u0159editel cloudov\u00e9 platformy. <noindex><a rel=\"nofollow\" href=\"https:\/\/mcs.mail.ru\/\">Mail.ru Cloud Solutions<\/a><\/noindex>. Platforma funguje na KVM.<\/p>\n<p>CPU steal time je \u010das, b\u011bhem kter\u00e9ho virtu\u00e1ln\u00ed stroj nedost\u00e1v\u00e1 zdroje procesoru ke sv\u00e9mu vykon\u00e1n\u00ed. Tento \u010das se po\u010d\u00edt\u00e1 pouze v hostitelsk\u00fdch opera\u010dn\u00edch syst\u00e9mech ve virtualiza\u010dn\u00edch prost\u0159ed\u00edch. D\u016fvody, kam zmiz\u00ed tyto p\u0159id\u011blen\u00e9 zdroje, jsou, jak je tomu v \u017eivot\u011b, dosti nejasn\u00e9. Ale rozhodli jsme se to zjistit, dokonce jsme provedli celou \u0159adu experiment\u016f. Ne \u017ee bychom nyn\u00ed v\u0161echno v\u011bd\u011bli o steal, ale n\u011bjak\u00e9 zaj\u00edmav\u00e9 informace v\u00e1m te\u010f pov\u00edme.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>1. Co je steal<\/h2>\n<p>\nTak\u017ee steal je metrika, kter\u00e1 nazna\u010duje nedostatek procesorov\u00e9ho \u010dasu pro procesy uvnit\u0159 virtu\u00e1ln\u00edho stroje. Jak je pops\u00e1no <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/stable\/linux.git\/patch\/?id=c9aaa8957f203bd6df83b002fb40b98390bed078\">v patchi j\u00e1dra KVM<\/a><\/noindex>, steal je \u010das, b\u011bhem kter\u00e9ho hypervizor vykon\u00e1v\u00e1 jin\u00e9 procesy na hostitelsk\u00e9m opera\u010dn\u00edm syst\u00e9mu, i kdy\u017e za\u0159adil proces virtu\u00e1ln\u00edho stroje do fronty na vykon\u00e1n\u00ed. Jin\u00fdmi slovy, steal se po\u010d\u00edt\u00e1 jako rozd\u00edl mezi \u010dasem, kdy je proces p\u0159ipraven k vykon\u00e1n\u00ed, a \u010dasem, kdy je proces\u016fm p\u0159id\u011blen \u010das procesoru.<\/p>\n<p>Metriku steal j\u00e1dro virtu\u00e1ln\u00edho stroje z\u00edsk\u00e1v\u00e1 od hypervizoru. Hypervizor p\u0159itom neuv\u00e1d\u00ed, jak\u00e9 konkr\u00e9tn\u00ed jin\u00e9 procesy vykon\u00e1v\u00e1, prost\u011b \"dokud jsem zanepr\u00e1zdn\u011bn, nemohu ti v\u011bnovat \u010das\". Na KVM byla podpora pro po\u010d\u00edt\u00e1n\u00ed steal p\u0159id\u00e1na v <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/449657\/\">patchech.<\/a><\/noindex>Dva kl\u00ed\u010dov\u00e9 body zde jsou: <\/p>\n<ul>\n<li>Virtu\u00e1ln\u00ed stroj se o steal dozv\u00edd\u00e1 od hypervizoru. To znamen\u00e1, \u017ee z hlediska ztr\u00e1t, pro procesy na samotn\u00e9 virtu\u00e1lce je to nep\u0159\u00edm\u00e9 m\u011b\u0159en\u00ed, kter\u00e9 m\u016f\u017ee b\u00fdt vystaveno r\u016fzn\u00fdm zkreslen\u00edm.\n<\/li>\n<li>Hypervizor se s virtu\u00e1lkou ned\u011bl\u00ed informacemi o tom, \u010d\u00edm jin\u00fdm je zanepr\u00e1zdn\u011bn \u2014 hlavn\u00ed je, \u017ee j\u00ed nev\u011bnuje \u010das. Z toho d\u016fvodu sama virtu\u00e1lka nem\u016f\u017ee zjistit zkreslen\u00ed v hodnot\u011b steal, kter\u00e1 by mohla b\u00fdt posouzena podle charakteru konkuren\u010dn\u00edch proces\u016f.\n<\/li>\n<\/ul>\n<p><\/p>\n<h2>2. Co ovliv\u0148uje steal<\/h2>\n<p><\/p>\n<h3>2.1. V\u00fdpo\u010det steal<\/h3>\n<p>\nV z\u00e1sad\u011b se steal po\u010d\u00edt\u00e1 p\u0159ibli\u017en\u011b stejn\u011b, jako oby\u010dejn\u00fd \u010das vyu\u017eit\u00ed procesoru. Informac\u00ed o tom, jak se po\u010d\u00edt\u00e1 vyu\u017eit\u00ed, nen\u00ed mnoho. Mo\u017en\u00e1 proto, \u017ee v\u011bt\u0161ina pova\u017euje tuto ot\u00e1zku za z\u0159ejmou. Ale i zde mohou b\u00fdt skryt\u00e9 \u00faskal\u00ed. Pro sezn\u00e1men\u00ed s t\u00edmto procesem si m\u016f\u017eete p\u0159e\u010d\u00edst. <noindex><a rel=\"nofollow\" href=\"http:\/\/www.brendangregg.com\/blog\/2017-05-09\/cpu-utilization-is-wrong.html\">\u010dl\u00e1nek Brendanna Gregga<\/a><\/noindex>: dozv\u00edte se spoustu detail\u016f p\u0159i po\u010d\u00edt\u00e1n\u00ed vyu\u017eit\u00ed a o situac\u00edch, kdy bude toto po\u010d\u00edt\u00e1n\u00ed chybn\u00e9 z n\u00e1sleduj\u00edc\u00edch d\u016fvod\u016f:<\/p>\n<ul>\n<li>P\u0159eh\u0159\u00e1t\u00ed procesoru, p\u0159i kter\u00e9m doch\u00e1z\u00ed k p\u0159esko\u010den\u00ed takt\u016f.\n<\/li>\n<li>Zapnut\u00ed\/vypnut\u00ed turbo Boost, co\u017e m\u011bn\u00ed taktovac\u00ed frekvenci procesoru.\n<\/li>\n<li>Zm\u011bna doby kvanta \u010dasu, kter\u00e1 nast\u00e1v\u00e1 p\u0159i pou\u017eit\u00ed technologi\u00ed \u00faspory energie procesoru, jako je SpeedStep.\n<\/li>\n<li>Probl\u00e9m s pr\u016fm\u011brov\u00e1n\u00edm: odhad vyu\u017eit\u00ed na \u00farovni 80 % po dobu jedn\u00e9 minuty m\u016f\u017ee skr\u00fdvat kr\u00e1tkodob\u00fd v\u00fdbuch na 100 %.\n<\/li>\n<li>Cyklick\u00e1 blokace (spin lock) zp\u016fsobuje, \u017ee je procesor vyu\u017eit, ale u\u017eivatelsk\u00fd proces nevid\u00ed pokrok ve sv\u00e9m proveden\u00ed. V\u00fdsledkem bude, \u017ee vypo\u010d\u00edtan\u00e1 vyu\u017eitelnost procesoru procesem bude stoprocentn\u00ed, p\u0159esto\u017ee fyzick\u00fd \u010das procesor nepou\u017e\u00edv\u00e1.\n<\/li>\n<\/ul>\n<p>\nNena\u0161el jsem \u010dl\u00e1nek, kter\u00fd by popisoval podobn\u00e9 po\u010d\u00edt\u00e1n\u00ed pro steal (pokud v\u00edte \u2014 pod\u011blte se v koment\u00e1\u0159\u00edch). Ale podle zdrojov\u00fdch k\u00f3d\u016f je mechanismus po\u010d\u00edt\u00e1n\u00ed stejn\u00fd jako pro vyu\u017eit\u00ed. Jen do j\u00e1dra se p\u0159id\u00e1v\u00e1 dal\u0161\u00ed \u010d\u00edta\u010d, p\u0159\u00edmo pro proces KVM (proces virtu\u00e1ln\u00edho stroje), kter\u00fd po\u010d\u00edt\u00e1 dobu, po kterou byl proces KVM ve stavu \u010dek\u00e1n\u00ed na \u010das procesoru. \u010c\u00edta\u010d \u010derp\u00e1 informace o procesoru z jeho specifikace a kontroluje, zda v\u0161echny jeho tikty byly vyu\u017eity procesem virtu\u00e1ln\u00edho stroje. Pokud ano, \u0159\u00edk\u00e1me, \u017ee procesor pracoval pouze na procesu virtu\u00e1ln\u00edho stroje. Jinak informujeme, \u017ee procesor se zab\u00fdval n\u011b\u010d\u00edm jin\u00fdm, do\u0161lo k steal. <\/p>\n<p>Proces po\u010d\u00edt\u00e1n\u00ed steal podl\u00e9h\u00e1 stejn\u00fdm probl\u00e9m\u016fm jako b\u011b\u017en\u00e9 po\u010d\u00edt\u00e1n\u00ed vyu\u017eit\u00ed. Nen\u00ed to tak, \u017ee by se tyto probl\u00e9my vyskytovaly \u010dasto, ale vypadaj\u00ed znepokojuj\u00edc\u00ed.<\/p>\n<h3>2.2. Typy virtualizace na KVM<\/h3>\n<p>\nObecn\u011b existuj\u00ed t\u0159i typy virtualizace a v\u0161echny jsou podporov\u00e1ny KVM. Typ virtualizace m\u016f\u017ee ovlivnit mechanismus vzniku steal.<\/p>\n<p><b>Vys\u00edl\u00e1n\u00ed<\/b>. V takov\u00e9m p\u0159\u00edpad\u011b funguje opera\u010dn\u00ed syst\u00e9m virtu\u00e1ln\u00edho stroje s fyzick\u00fdmi za\u0159\u00edzen\u00edmi hypervizora p\u0159ibli\u017en\u011b takto:<\/p>\n<ol>\n<li>Hostitelsk\u00fd opera\u010dn\u00ed syst\u00e9m pos\u00edl\u00e1 sv\u00e9mu hostuj\u00edc\u00edmu za\u0159\u00edzen\u00ed p\u0159\u00edkaz.\n<\/li>\n<li>Ovlada\u010d hostitelsk\u00e9ho za\u0159\u00edzen\u00ed p\u0159ij\u00edm\u00e1 p\u0159\u00edkaz, vytv\u00e1\u0159\u00ed po\u017eadavek pro BIOS za\u0159\u00edzen\u00ed a pos\u00edl\u00e1 ho do hypervizora.\n<\/li>\n<li>Proces hypervizora prov\u00e1d\u00ed p\u0159eklad p\u0159\u00edkaz\u016f na p\u0159\u00edkazy pro fyzick\u00e9 za\u0159\u00edzen\u00ed, co\u017e zaji\u0161\u0165uje, \u017ee jsou tak\u00e9 bezpe\u010dn\u011bj\u0161\u00ed.\n<\/li>\n<li>Ovlada\u010d fyzick\u00e9ho za\u0159\u00edzen\u00ed p\u0159ij\u00edm\u00e1 modifikovan\u00fd p\u0159\u00edkaz a odes\u00edl\u00e1 jej p\u0159\u00edmo do fyzick\u00e9ho za\u0159\u00edzen\u00ed.\n<\/li>\n<li>V\u00fdsledky vykon\u00e1n\u00ed p\u0159\u00edkaz\u016f se vracej\u00ed stejnou cestou. \n<\/li>\n<\/ol>\n<p>\nV\u00fdhodou p\u0159ekladu je, \u017ee umo\u017e\u0148uje emulovat jak\u00e9koli za\u0159\u00edzen\u00ed a nevy\u017eaduje speci\u00e1ln\u00ed \u00fapravy j\u00e1dra opera\u010dn\u00edho syst\u00e9mu. Za to se ale plat\u00ed p\u0159edev\u0161\u00edm v\u00fdkonem. <\/p>\n<p><b>Hardwarov\u00e1 virtualizace<\/b>. V tomto p\u0159\u00edpad\u011b fyzick\u00e9 za\u0159\u00edzen\u00ed na hardwarov\u00e9 \u00farovni rozum\u00ed p\u0159\u00edkaz\u016fm z opera\u010dn\u00edho syst\u00e9mu. To je nejrychlej\u0161\u00ed a nejlep\u0161\u00ed zp\u016fsob. Bohu\u017eel v\u0161ak nen\u00ed podporov\u00e1n v\u0161emi fyzick\u00fdmi za\u0159\u00edzen\u00edmi, hypervizory a hostitelsk\u00fdmi opera\u010dn\u00edmi syst\u00e9my. V sou\u010dasn\u00e9 dob\u011b jsou hlavn\u00edmi za\u0159\u00edzen\u00edmi, kter\u00e1 podporuj\u00ed hardwarovou virtualizaci, procesory.<\/p>\n<p><b>Paravirtualizace (paravirtualization)<\/b>. Nejroz\u0161\u00ed\u0159en\u011bj\u0161\u00ed varianta virtualizace za\u0159\u00edzen\u00ed na KVM a v\u016fbec nejroz\u0161\u00ed\u0159en\u011bj\u0161\u00ed re\u017eim virtualizace pro hostitelsk\u00e9 opera\u010dn\u00ed syst\u00e9my. Jej\u00ed zvl\u00e1\u0161tnost\u00ed je, \u017ee pr\u00e1ce s n\u011bkter\u00fdmi subsyst\u00e9my hypervizora (nap\u0159\u00edklad s\u00ed\u0165ov\u00fdm nebo diskov\u00fdm z\u00e1sobn\u00edkem) nebo p\u0159id\u011blov\u00e1n\u00ed pam\u011b\u0165ov\u00fdch str\u00e1nek prob\u00edh\u00e1 s vyu\u017eit\u00edm API hypervizora, bez p\u0159ekladu n\u00edzko\u00farov\u0148ov\u00fdch p\u0159\u00edkaz\u016f. Nev\u00fdhodou tohoto zp\u016fsobu virtualizace je nutnost modifikace j\u00e1dra hostitelsk\u00e9ho opera\u010dn\u00edho syst\u00e9mu, aby mohlo interagovat s hypervizorem pomoc\u00ed tohoto API. Obvykle se to v\u0161ak \u0159e\u0161\u00ed instalac\u00ed speci\u00e1ln\u00edch ovlada\u010d\u016f na hostitelsk\u00fd opera\u010dn\u00ed syst\u00e9m. V KVM se toto API naz\u00fdv\u00e1 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.ibm.com\/developerworks\/library\/l-virtio\/index.html\">virtio API<\/a><\/noindex>.<\/p>\n<p>P\u0159i paravirtualizaci, ve srovn\u00e1n\u00ed s p\u0159ekladem, je cesta k fyzick\u00e9mu za\u0159\u00edzen\u00ed zna\u010dn\u011b zkr\u00e1cena d\u00edky odes\u00edl\u00e1n\u00ed p\u0159\u00edkaz\u016f p\u0159\u00edmo z virtu\u00e1ln\u00edho stroje do procesu hypervizora na hostiteli. To umo\u017e\u0148uje urychlit vykon\u00e1v\u00e1n\u00ed v\u0161ech instrukc\u00ed uvnit\u0159 virtu\u00e1ln\u00edho stroje. V KVM za to odpov\u00edd\u00e1 virtio API, kter\u00e9 funguje pouze pro ur\u010dit\u00e9 za\u0159\u00edzen\u00ed, jako je s\u00ed\u0165ov\u00fd nebo diskov\u00fd adapt\u00e9r. Pr\u00e1v\u011b proto se dovnit\u0159 virtu\u00e1ln\u00edch stroj\u016f instaluj\u00ed ovlada\u010de virtio. <\/p>\n<p>Nehodl\u00fd d\u016fsledek takov\u00e9ho zrychlen\u00ed je, \u017ee ne v\u0161echny procesy prov\u00e1d\u011bn\u00e9 uvnit\u0159 virtu\u00e1ln\u00edho stroje z\u016fst\u00e1vaj\u00ed uvnit\u0159 n\u011bj. To vytv\u00e1\u0159\u00ed ur\u010dit\u00e9 speci\u00e1ln\u00ed efekty, kter\u00e9 mohou v\u00e9st k probl\u00e9m\u016fm. Doporu\u010duji za\u010d\u00edt podrobn\u011b studovat tuto ot\u00e1zku s <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/239238\/\">API pro virtu\u00e1ln\u00ed I\/O: virtio<\/a><\/noindex>.<\/p>\n<h3>2.3. \u201eSpravedliv\u00e9\u201c pl\u00e1nov\u00e1n\u00ed<\/h3>\n<p>\nVirtu\u00e1ln\u00ed stroj na hypervisoru je de facto b\u011b\u017en\u00fdm procesem, kter\u00fd podl\u00e9h\u00e1 z\u00e1kon\u016fm pl\u00e1nov\u00e1n\u00ed (rozd\u011blov\u00e1n\u00ed zdroj\u016f mezi procesy) v j\u00e1d\u0159e Linuxu, tak\u017ee se na n\u011bj pod\u00edv\u00e1me podrobn\u011bji. <\/p>\n<p>V Linuxu se pou\u017e\u00edv\u00e1 takzvan\u00fd CFS, Completely Fair Scheduler, kter\u00fd se od j\u00e1dra 2.6.23 stal spr\u00e1vcem zdroj\u016f v\u00fdchoz\u00edm. Abychom pochopili tento algoritmus, m\u016f\u017eeme si p\u0159e\u010d\u00edst Linux Kernel Architecture nebo zdrojov\u00e9 k\u00f3dy. Podstatou CFS je rozd\u011blen\u00ed procesorov\u00e9ho \u010dasu mezi procesy na z\u00e1klad\u011b doby jejich vykon\u00e1v\u00e1n\u00ed. \u010c\u00edm v\u00edce procesorov\u00e9ho \u010dasu proces pot\u0159ebuje, t\u00edm m\u00e9n\u011b ho dost\u00e1v\u00e1. To zaru\u010duje \u201espravedliv\u00e9\u201c prov\u00e1d\u011bn\u00ed v\u0161ech proces\u016f \u2014 aby jeden proces neobsadil v\u0161echny procesory trvale a ostatn\u00ed procesy m\u011bly mo\u017enost tak\u00e9 se vykon\u00e1vat. <\/p>\n<p>N\u011bkdy tato paradigma vede k zaj\u00edmav\u00fdm artefakt\u016fm. Dlouhodob\u00ed u\u017eivatel\u00e9 Linuxu si jist\u011b pamatuj\u00ed zamrz\u00e1n\u00ed b\u011b\u017en\u00e9ho textov\u00e9ho editoru na desktopu b\u011bhem spu\u0161t\u011bn\u00ed n\u00e1ro\u010dn\u00fdch aplikac\u00ed, jako jsou kompil\u00e1tory. St\u00e1valo se to, proto\u017ee nerostrov\u00e9 \u00fakoly desktopov\u00fdch aplikac\u00ed sout\u011b\u017eily s \u00fakoly, kter\u00e9 aktivn\u011b spot\u0159ebovaly zdroje, jako nap\u0159\u00edklad kompil\u00e1tor. CFS pova\u017euje tuto situaci za nespravedlivou, proto p\u0159\u00edle\u017eitostn\u011b zastav\u00ed textov\u00fd editor a umo\u017en\u00ed procesoru zpracovat \u00fakoly kompil\u00e1toru. To bylo opraveno pomoc\u00ed mechanismu <noindex><a rel=\"nofollow\" href=\"https:\/\/marc.info\/?l=linux-kernel&amp;m=128978361700898\">sched_autogroup<\/a><\/noindex>, ale z\u016fstalo mnoho dal\u0161\u00edch zvl\u00e1\u0161tnost\u00ed rozd\u011blov\u00e1n\u00ed procesorov\u00e9ho \u010dasu mezi \u00fakoly. Vlastn\u011b, toto vypr\u00e1v\u011bn\u00ed nen\u00ed o tom, jak je CFS \u0161patn\u00fd, ale o pokusu upozornit na to, \u017ee \u201espravedliv\u00e9\u201c rozd\u011blen\u00ed procesorov\u00e9ho \u010dasu nen\u00ed tak trivi\u00e1ln\u00ed \u00fakol.<\/p>\n<p>Je\u0161t\u011b jeden d\u016fle\u017eit\u00fd aspekt pl\u00e1nova\u010de \u2014 preemption. To je pot\u0159eba, aby se zbavil rozmazlen\u00e9ho procesu na procesoru a dal pr\u00e1ci dal\u0161\u00edm. Proces vyhazov\u00e1n\u00ed se naz\u00fdv\u00e1 p\u0159ep\u00edn\u00e1n\u00ed kontextu, p\u0159ep\u00edn\u00e1n\u00ed kontextu procesoru. P\u0159itom se udr\u017euje cel\u00fd kontext \u00falohy: stav z\u00e1sobn\u00edku, registry a dal\u0161\u00ed, po \u010dem\u017e je proces posl\u00e1n \u010dekat, a na jeho m\u00edsto nastoup\u00ed jin\u00fd. To je pro OS n\u00e1kladn\u00e1 operace a pou\u017e\u00edv\u00e1 se jen z\u0159\u00eddka, ale v z\u00e1sad\u011b na n\u00ed nen\u00ed nic \u0161patn\u00e9ho. \u010cast\u00e9 p\u0159ep\u00edn\u00e1n\u00ed kontextu m\u016f\u017ee nazna\u010dovat probl\u00e9m v OS, ale obvykle prob\u00edh\u00e1 nep\u0159etr\u017eit\u011b a na nic zvl\u00e1\u0161tn\u00edho neukazuje.<\/p>\n<p>Takov\u00fd dlouh\u00fd p\u0159\u00edb\u011bh je pot\u0159ebn\u00fd pro vysv\u011btlen\u00ed jedn\u00e9 skute\u010dnosti: \u010d\u00edm v\u00edce zdroj\u016f procesoru se sna\u017e\u00ed z\u00edskat proces v \u010destn\u00e9m pl\u00e1nova\u010di Linuxu, t\u00edm rychleji bude zastaven, aby mohly pracovat i jin\u00e9 procesy. Zda je to spr\u00e1vn\u011b nebo ne \u2014 je slo\u017eit\u00e1 ot\u00e1zka, kter\u00e1 se podle r\u016fzn\u00fdch z\u00e1t\u011b\u017e\u00ed \u0159e\u0161\u00ed r\u016fzn\u011b. V syst\u00e9mu Windows byl pl\u00e1nova\u010d do ned\u00e1vna orientov\u00e1n na prioritn\u00ed zpracov\u00e1n\u00ed desktopov\u00fdch aplikac\u00ed, co\u017e m\u011blo za n\u00e1sledek visen\u00edm na pozad\u00ed proces\u016f. V Sun Solaris bylo p\u011bt r\u016fzn\u00fdch t\u0159\u00edd pl\u00e1nova\u010d\u016f. Kdy\u017e byla spu\u0161t\u011bna virtualizace, p\u0159idali \u0161est\u00fd, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/man.shtml?topic=FSS&amp;category=7&amp;russian=4\">Fair share scheduler<\/a><\/noindex>, proto\u017ee p\u0159edchoz\u00edch p\u011bt pracovalo s virtualizac\u00ed Solaris Zones nedostate\u010dn\u011b. Podrobn\u00e9 studium t\u00e9to ot\u00e1zky doporu\u010duji za\u010d\u00edt s knihami jako <noindex><a rel=\"nofollow\" href=\"https:\/\/www.amazon.com\/Solaris-Internals-OpenSolaris-Kernel-Architecture\/dp\/0131482092\/\">Solaris Internals: Solaris 10 and OpenSolaris Kernel Architecture<\/a><\/noindex> nebo <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. Jak monitorovat steal?<\/h3>\n<p>\nMonitorov\u00e1n\u00ed steal uvnit\u0159 virtu\u00e1ln\u00edho stroje, jako\u017e i jakoukoli jinou metriky procesoru, je snadn\u00e9: m\u016f\u017eete pou\u017e\u00edt jak\u00fdkoli n\u00e1stroj pro sb\u011br metrik procesoru. Hlavn\u00ed je, aby virtu\u00e1ln\u00ed stroj b\u011b\u017eel na Linuxu. Windows z n\u011bjak\u00e9ho d\u016fvodu tuto informaci sv\u00fdm u\u017eivatel\u016fm neposkytuje. \ud83d\ude41<\/p>\n<p><img decoding=\"async\" alt=\"Steal: kdo krade procesorov\u00fd \u010das u virtu\u00e1ln\u00edch stroj\u016f\" src=\"\/wp-content\/uploads\/2019\/04\/3c7cd04f73fd6a74b86af81382090b69.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>V\u00fdstup p\u0159\u00edkazu top: podrobnosti o z\u00e1t\u011b\u017ei na procesoru, v krajn\u00ed prav\u00e9 kolonce \u2014 steal<\/i><\/p>\n<p>Obt\u00ed\u017enost nast\u00e1v\u00e1 p\u0159i pokusu z\u00edskat tyto informace z hypervisoru. M\u016f\u017eete se pokusit p\u0159edpov\u011bd\u011bt steal na hostitelsk\u00e9 ma\u0161in\u011b, nap\u0159\u00edklad podle parametru Load Average (LA) \u2014 pr\u016fm\u011brn\u00e9 hodnoty po\u010dtu proces\u016f \u010dekaj\u00edc\u00edch v po\u0159ad\u00ed na vykon\u00e1n\u00ed. Metodika v\u00fdpo\u010dtu tohoto parametru nen\u00ed jednoduch\u00e1, ale obecn\u011b, pokud je normovan\u00fd podle po\u010dtu vl\u00e1ken procesoru LA v\u011bt\u0161\u00ed ne\u017e 1, to nazna\u010duje, \u017ee server s Linuxem je n\u011bjak\u00fdm zp\u016fsobem p\u0159et\u00ed\u017een. <\/p>\n<p>Co tedy v\u0161echny tyto procesy o\u010dek\u00e1vaj\u00ed? Odpov\u011b\u010f je jasn\u00e1 \u2014 procesor. Ale odpov\u011b\u010f nen\u00ed \u00fapln\u011b spr\u00e1vn\u00e1, proto\u017ee n\u011bkdy je procesor voln\u00fd, zat\u00edmco LA je vysok\u00e1. Vzpome\u0148te si, <noindex><a rel=\"nofollow\" href=\"https:\/\/serverfault.com\/questions\/911976\/redhat-nfs-cluster-high-load-average-suddenly\">jak vypad\u00e1, kdy\u017e NFS sel\u017ee a jak mezit\u00edm roste LA.<\/a><\/noindex>. Podobn\u011b to m\u016f\u017ee fungovat i s diskem a dal\u0161\u00edmi za\u0159\u00edzen\u00edmi pro vstup\/v\u00fdstup. Ve skute\u010dnosti v\u0161ak procesy mohou \u010dekat na ukon\u010den\u00ed jak\u00e9koliv blokace, a\u0165 u\u017e fyzick\u00e9, souvisej\u00edc\u00ed se za\u0159\u00edzen\u00edm pro vstup\/v\u00fdstup, nebo logick\u00e9, nap\u0159\u00edklad mutexu. Zahrnuj\u00ed se sem i blokace na \u00farovni hardwaru (nap\u0159\u00edklad \u010dek\u00e1n\u00ed na odpov\u011b\u010f od disku) nebo logiky (takzvan\u00e9 blokovac\u00ed primitivy, kter\u00e9 zahrnuj\u00ed \u0159adu entit jako adaptivn\u00ed mutexy a spin, semafory, podm\u00ednkov\u00e1 prom\u011bnn\u00e9, rw z\u00e1mky, ipc z\u00e1mky\u2026).<\/p>\n<p>Dal\u0161\u00ed zvl\u00e1\u0161tnost\u00ed LA je, \u017ee se po\u010d\u00edt\u00e1 jako pr\u016fm\u011brn\u00e1 hodnota v opera\u010dn\u00edm syst\u00e9mu. Nap\u0159\u00edklad 100 proces\u016f sout\u011b\u017e\u00ed o jeden soubor, a v tom p\u0159\u00edpad\u011b LA=50. Takov\u00e1 vysok\u00e1 hodnota by teoreticky nazna\u010dovala, \u017ee opera\u010dn\u00ed syst\u00e9m m\u00e1 probl\u00e9my. Ale pro jinak \u0161patn\u011b napsan\u00fd k\u00f3d to m\u016f\u017ee b\u00fdt norm\u00e1ln\u00ed stav, p\u0159i\u010dem\u017e \u0161patn\u011b je pouze jemu, zat\u00edmco ostatn\u00ed procesy v opera\u010dn\u00edm syst\u00e9mu netrp\u00ed. <\/p>\n<p>Kv\u016fli tomuto pr\u016fm\u011brov\u00e1n\u00ed (a to minim\u00e1ln\u011b za minutu) je ur\u010den\u00ed n\u011b\u010deho podle ukazatele LA \u2014 nevd\u011b\u010dn\u00e9 zam\u011bstn\u00e1n\u00ed, s velmi nejasn\u00fdmi v\u00fdsledky v konkr\u00e9tn\u00edch p\u0159\u00edpadech. Pokud se pokus\u00edte to pochopit, zjist\u00edte, \u017ee v \u010dl\u00e1nc\u00edch na Wikipedii a dal\u0161\u00edch dostupn\u00fdch zdroj\u00edch jsou pops\u00e1ny pouze ty nejjednodu\u0161\u0161\u00ed p\u0159\u00edpady, bez hlubok\u00e9ho vysv\u011btlen\u00ed procesu. V\u0161echny z\u00e1jemce pos\u00edl\u00e1m, op\u011bt, <noindex><a rel=\"nofollow\" href=\"http:\/\/www.brendangregg.com\/blog\/2017-08-08\/linux-load-averages.html\">sem, k Brendannovi Greggovi<\/a><\/noindex> \u00a0\u2014 d\u00e1le podle odkaz\u016f. Kdo se necht\u011bj\u00ed d\u00edt na angli\u010dtin\u011b \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/335326\/\">p\u0159eklad jeho popul\u00e1rn\u00edho \u010dl\u00e1nku o LA<\/a><\/noindex>.<\/p>\n<h2>3. Speci\u00e1ln\u00ed efekty<\/h2>\n<p>\nNyn\u00ed se zastav\u00edme nad hlavn\u00edmi p\u0159\u00edpady v\u00fdskytu steal, se kter\u00fdmi jsme se setkali. Pov\u011bd\u00edm v\u00e1m, jak vznikaj\u00ed z v\u00fd\u0161e uveden\u00e9ho a jak se vztahuj\u00ed k ukazatel\u016fm na hypervizoru.<\/p>\n<p><b>P\u0159epln\u011bn\u00ed zdroj\u016f<\/b>. Nejsnaz\u0161\u00ed a nej\u010dast\u011bj\u0161\u00ed: hypervizor je p\u0159epln\u011bn\u00fd. Opravdu, je spu\u0161t\u011bno mnoho virtu\u00e1ln\u00edch stroj\u016f, vysok\u00e1 spot\u0159eba procesoru uvnit\u0159 nich, velk\u00e1 konkurence, uplatn\u011bn\u00ed podle LA v\u00edce ne\u017e 1 (v normalizaci na procesn\u00ed vl\u00e1kna). Uvnit\u0159 v\u0161ech virtu\u00e1ln\u00edch stroj\u016f v\u0161e zpomaluje. Steal, p\u0159en\u00e1\u0161en\u00fd z hypervizoru, tak\u00e9 roste, je t\u0159eba p\u0159erozd\u011blit z\u00e1t\u011b\u017e nebo n\u011bkoho vypnout. V podstat\u011b, je to logick\u00e9 a jasn\u00e9.<\/p>\n<p><b>Paravirtualizace versus izolovan\u00e9 instance<\/b>. Na hypervizoru je jedna jedin\u00e1 virtu\u00e1ln\u00ed stroj, kter\u00fd zab\u00edr\u00e1 malou \u010d\u00e1st jeho zdroj\u016f, ale vytv\u00e1\u0159\u00ed vysokou z\u00e1t\u011b\u017e na vstupu\/v\u00fdstupu, nap\u0159\u00edklad na disku. A z ni\u010deho nic se v n\u011bm objevuje mal\u00fd steal, a\u017e 10 % (jak uk\u00e1zalo n\u011bkolik proveden\u00fdch experiment\u016f).<\/p>\n<p>Zaj\u00edmav\u00fd p\u0159\u00edpad. Steal se zde objevuje pr\u00e1v\u011b kv\u016fli zablokov\u00e1n\u00ed na \u00farovni paravirtualizovan\u00fdch ovlada\u010d\u016f. Uvnit\u0159 virtu\u00e1ln\u00edho stroje se vytv\u00e1\u0159\u00ed p\u0159eru\u0161en\u00ed, kter\u00e9 zpracov\u00e1v\u00e1 ovlada\u010d a pos\u00edl\u00e1 ho do hypervizoru. Kv\u016fli zpracov\u00e1n\u00ed p\u0159eru\u0161en\u00ed na hypervizoru to vypad\u00e1 pro virtu\u00e1ln\u00ed stroj jako odeslan\u00fd po\u017eadavek, je p\u0159ipraven k vykon\u00e1n\u00ed a \u010dek\u00e1 na procesor, ale procesorov\u00fd \u010das mu nen\u00ed poskytnut. Virtu\u00e1ln\u00ed stroj si mysl\u00ed, \u017ee tento \u010das byl ukraden. <\/p>\n<p>To se st\u00e1v\u00e1 v okam\u017eiku odesl\u00e1n\u00ed bufferu, kter\u00fd odch\u00e1z\u00ed do kernel space hypervizoru, a za\u010d\u00edn\u00e1me na n\u011bj \u010dekat. I kdy\u017e z pohledu virtu\u00e1ln\u00edho stroje by se m\u011bl okam\u017eit\u011b vr\u00e1tit. Podle algoritmu pro v\u00fdpo\u010det steal se tento \u010das pova\u017euje za ukraden\u00fd. Je pravd\u011bpodobn\u00e9, \u017ee v t\u00e9to situaci mohou existovat i jin\u00e9 mechanismy (nap\u0159\u00edklad zpracov\u00e1n\u00ed dal\u0161\u00edch sys call), ale nem\u011bly by se v\u00fdrazn\u011b li\u0161it.<\/p>\n<p><b>Scheduler proti vysoko zat\u00ed\u017een\u00fdm virtu\u00e1ln\u00edm stroj\u016fm<\/b>. Kdy\u017e jedna virtu\u00e1ln\u00ed stroj trp\u00ed v\u00edce steal ne\u017e ostatn\u00ed, je to p\u0159\u00edmo spojeno se schedulern. \u010c\u00edm v\u00edce proces zat\u011b\u017euje procesor, t\u00edm rychleji jej scheduler vykopne, aby ostatn\u00ed tak\u00e9 mohli pracovat. Pokud virtu\u00e1ln\u00ed stroj zab\u00edr\u00e1 m\u00e1lo, t\u00e9m\u011b\u0159 neuvid\u00ed steal: jeho proces poctiv\u011b sed\u011bl a \u010dekal, je t\u0159eba mu poskytnout v\u00edce \u010dasu. Pokud virtu\u00e1ln\u00ed stroj vytv\u00e1\u0159\u00ed maxim\u00e1ln\u00ed z\u00e1t\u011b\u017e na v\u0161ech sv\u00fdch j\u00e1drech, \u010dast\u011bji je vyhazov\u00e1n z procesoru a sna\u017e\u00ed se mu ned\u00e1vat mnoho \u010dasu. <\/p>\n<p>Je\u0161t\u011b hor\u0161\u00ed je, kdy\u017e procesy uvnit\u0159 virtu\u00e1ln\u00edho stroje se sna\u017e\u00ed z\u00edskat v\u00edce procesorov\u00e9ho \u010dasu, proto\u017ee nezvl\u00e1daj\u00ed zpracov\u00e1n\u00ed dat. Tehdy opera\u010dn\u00ed syst\u00e9m na hypervizoru, d\u00edky poctiv\u00e9 optimalizaci, za\u010dne d\u00e1vat st\u00e1le m\u00e9n\u011b procesorov\u00e9ho \u010dasu. Tento proces prob\u00edh\u00e1 lavinovit\u011b, a steal vylet\u00ed do nebes, i kdy\u017e ostatn\u00ed virtu\u00e1ln\u00ed stroje si toho t\u00e9m\u011b\u0159 nev\u0161\u00edmaj\u00ed. A \u010d\u00edm v\u00edce jader, t\u00edm h\u016f\u0159e posti\u017een\u00e9 virtu\u00e1ln\u00edm stroji. Jin\u00fdmi slovy, nejv\u00edce trp\u00ed vysoko zat\u00ed\u017een\u00e9 virtu\u00e1ln\u00ed stroje s mnoha j\u00e1dry.<\/p>\n<p><b>N\u00edzk\u00fd LA, ale je zde steal<\/b>. Pokud je LA p\u0159ibli\u017en\u011b 0,7 (to znamen\u00e1, \u017ee hypervizor se zd\u00e1 b\u00fdt m\u00e1lo zat\u00ed\u017een), ale uvnit\u0159 jednotliv\u00fdch virtu\u00e1ln\u00edch stroj\u016f se pozoruje steal:<\/p>\n<ul>\n<li>U\u017e popsan\u00e1 varianta s paravirtualizac\u00ed. Virtu\u00e1ln\u00ed stroj m\u016f\u017ee z\u00edsk\u00e1vat metriky ukazuj\u00edc\u00ed na steal, i kdy\u017e hypervizor funguje bez probl\u00e9m\u016f. Na z\u00e1klad\u011b na\u0161ich experiment\u016f tento typ steal nep\u0159esahuje 10 % a nem\u011bl by m\u00edt z\u00e1sadn\u00ed vliv na v\u00fdkon aplikac\u00ed uvnit\u0159 virtu\u00e1ln\u00edho stroje.\n<\/li>\n<li>Parametr LA se pova\u017euje za nespr\u00e1vn\u00fd. P\u0159esn\u011bji, v ka\u017ed\u00e9m konkr\u00e9tn\u00edm okam\u017eiku je po\u010d\u00edt\u00e1n spr\u00e1vn\u011b, ale p\u0159i pr\u016fm\u011brov\u00e1n\u00ed p\u0159es jednu minutu vych\u00e1z\u00ed sn\u00ed\u017een\u011b. Nap\u0159\u00edklad, pokud jeden virtu\u00e1ln\u00ed stroj na t\u0159etinu hypervizoru spot\u0159ebov\u00e1v\u00e1 v\u0161echny sv\u00e9 procesory p\u0159esn\u011b p\u016fl minuty, pak bude LA za minutu na hypervizoru 0,15; \u010dty\u0159i takov\u00e9 virtu\u00e1ln\u00ed stroje b\u011b\u017e\u00edc\u00ed sou\u010dasn\u011b daj\u00ed 0,6. Ale to, \u017ee p\u016fl minuty ka\u017ed\u00fd z nich m\u011bl extr\u00e9mn\u00ed steal kolem 25 % podle ukazatele LA, se ji\u017e ned\u00e1 vyt\u00e1hnout.\n<\/li>\n<li>Op\u011bt kv\u016fli scheduleru, kter\u00fd se rozhodl, \u017ee n\u011bkdo spot\u0159ebov\u00e1v\u00e1 p\u0159\u00edli\u0161 mnoho prost\u0159edk\u016f a m\u011bl by po\u010dkat. A j\u00e1 zat\u00edm p\u0159epnu kontext, zpracov\u00e1v\u00e1m p\u0159eru\u0161en\u00ed a zab\u00fdv\u00e1m se dal\u0161\u00edmi d\u016fle\u017eit\u00fdmi syst\u00e9mov\u00fdmi v\u011bcmi. V d\u016fsledku toho jedny virtu\u00e1ln\u00ed stroje nevid\u00ed \u017e\u00e1dn\u00e9 probl\u00e9my, zat\u00edmco jin\u00e9 za\u017e\u00edvaj\u00ed v\u00e1\u017enou degradaci v\u00fdkonu.\n<\/li>\n<\/ul>\n<p><\/p>\n<h2>4. Dal\u0161\u00ed zkreslen\u00ed<\/h2>\n<p>\nExistuje je\u0161t\u011b milion d\u016fvod\u016f pro zkreslen\u00ed spravedliv\u00e9ho rozd\u011blen\u00ed procesorov\u00e9ho \u010dasu na virtu\u00e1ln\u00edm stroji. Nap\u0159\u00edklad komplikace v v\u00fdpo\u010dtech p\u0159in\u00e1\u0161\u00ed hyper-threading a NUMA. Tyto faktory kone\u010dn\u011b zamot\u00e1vaj\u00ed v\u00fdb\u011br j\u00e1dra pro prov\u00e1d\u011bn\u00ed procesu, proto\u017ee scheduler pou\u017e\u00edv\u00e1 koeficienty \u2013 v\u00e1hy, kter\u00e9 b\u011bhem p\u0159ep\u00edn\u00e1n\u00ed kontextu situaci je\u0161t\u011b komplikuj\u00ed.<\/p>\n<p>Zkreslen\u00ed mohou nastat tak\u00e9 z technologi\u00ed jako turbo boost nebo naopak re\u017eimu \u00faspory energie, kter\u00e9 p\u0159i v\u00fdpo\u010dtu vyu\u017eit\u00ed mohou um\u011ble zvy\u0161ovat nebo sni\u017eovat frekvenci nebo dokonce \u010dasov\u00fd kvant na serveru. Aktivace turbo boost sni\u017euje v\u00fdkon jednoho procesorov\u00e9ho vl\u00e1kna kv\u016fli zv\u00fd\u0161en\u00ed v\u00fdkonu jin\u00e9ho. V tu chv\u00edli informace o aktu\u00e1ln\u00ed frekvenci procesoru nen\u00ed virtu\u00e1ln\u00edmu stroji p\u0159ed\u00e1v\u00e1na a on si mysl\u00ed, \u017ee mu jeho \u010das n\u011bkdo krade (nap\u0159\u00edklad po\u017eadoval 2 GHz, ale dostal dvakr\u00e1t m\u00e9n\u011b). <\/p>\n<p>Obecn\u011b m\u016f\u017ee b\u00fdt p\u0159\u00ed\u010din zkreslen\u00ed mnoho. V konkr\u00e9tn\u00edm syst\u00e9mu m\u016f\u017eete objevit n\u011bco dal\u0161\u00edho. Nejl\u00e9pe za\u010d\u00edt s knihami, na kter\u00e9 jsem dal odkazy v\u00fd\u0161e, a se sb\u011brem statistik z hypervizoru pomoc\u00ed n\u00e1stroj\u016f jako perf, sysdig, systemtap, jich\u017e <noindex><a rel=\"nofollow\" href=\"https:\/\/jvns.ca\/blog\/2017\/07\/05\/linux-tracing-systems\/\">jsou des\u00edtky.<\/a><\/noindex>.<\/p>\n<h2>5. Z\u00e1v\u011bry<\/h2>\n<p><\/p>\n<ol>\n<li>N\u011bjak\u00e9 mno\u017estv\u00ed steal m\u016f\u017ee vznikat z d\u016fvodu paravirtualizace a lze to pova\u017eovat za norm\u00e1ln\u00ed. Na internetu se p\u00ed\u0161e, \u017ee tato hodnota m\u016f\u017ee b\u00fdt 5-10 %. Z\u00e1vis\u00ed na aplikac\u00edch uvnit\u0159 virtu\u00e1ln\u00edho stroje a na tom, jakou z\u00e1t\u011b\u017e p\u0159edstavuj\u00ed pro sv\u00e9 fyzick\u00e9 za\u0159\u00edzen\u00ed. Je d\u016fle\u017eit\u00e9 sledovat, jak si aplikace vedou uvnit\u0159 virtu\u00e1ln\u00edch stroj\u016f.\n<\/li>\n<li>Pom\u011br z\u00e1t\u011b\u017ee na hypervizoru a steal uvnit\u0159 virtu\u00e1ln\u00edho stroje nen\u00ed v\u017edy jednozna\u010dn\u011b vz\u00e1jemn\u011b propojen, ob\u011b odhady steal mohou b\u00fdt chybn\u00e9 v konkr\u00e9tn\u00edch situac\u00edch p\u0159i r\u016fzn\u00fdch z\u00e1t\u011b\u017e\u00edch.\n<\/li>\n<li>Scheduler se \u0161patn\u011b chov\u00e1 k proces\u016fm, kter\u00e9 hodn\u011b \u017e\u00e1daj\u00ed. Sna\u017e\u00ed se d\u00e1vat m\u00e9n\u011b t\u011bm, kte\u0159\u00ed \u017e\u00e1daj\u00ed v\u00edce. Velk\u00e9 virtu\u00e1ln\u00ed stroje jsou zlo.\n<\/li>\n<li>Mal\u00fd steal m\u016f\u017ee b\u00fdt normou i bez paravirtualizace (s ohledem na z\u00e1t\u011b\u017e uvnit\u0159 virtu\u00e1ln\u00edho stroje, zvl\u00e1\u0161tnosti z\u00e1t\u011b\u017ee soused\u016f, rozd\u011blen\u00ed z\u00e1t\u011b\u017ee mezi vl\u00e1kna a dal\u0161\u00ed faktory).\n<\/li>\n<li>Pokud chcete zjistit steal v konkr\u00e9tn\u00edm syst\u00e9mu, mus\u00edte zkoumat r\u016fzn\u00e9 varianty, shroma\u017e\u010fovat metriky, pe\u010dliv\u011b je analyzovat a prom\u00fd\u0161let, jak rovnom\u011brn\u011b rozlo\u017eit z\u00e1t\u011b\u017e. Od jak\u00fdchkoliv p\u0159\u00edpad\u016f mohou odchylky, kter\u00e9 je t\u0159eba potvrdit experiment\u00e1ln\u011b nebo sledovat v debuggeru j\u00e1dra.\n<\/li>\n<\/ol>\n<p>Zdroj: <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\/cs\/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=\"cs_CZ\" \/>\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\/cs\/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: kdo krade virtu\u00e1ln\u00edm stroj\u016fm procesorov\u00fd \u010das | ProHoster","description":"Ahoj!","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/steal-kto-kradyot-u-virtualok-protsessornoe-vremya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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\/cs\/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\/cs\/wp-json\/wp\/v2\/posts\/32331","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=32331"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/32331\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/24147"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=32331"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=32331"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=32331"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}