Zákazníci sa často pýtajú na CPU steal time. Najmä tí, ktorí intenzívne využívajú procesory a pre ktorých je to kľúčové výkonnostné kritérium. V nastavení a správaní procesorov a jadier medzi fyzickým a virtuálnym prostredím je pomerne veľa rozdielov. Dokonca aj medzi poskytovateľmi cloudových služieb existujú rozdiely v nastaveniach, ktoré na prvý pohľad sťažujú priame porovnanie. Z tohto dôvodu sme považovali za užitočné poskytnúť zákazníkom stručný prehľad nášho nastavenia a logiky prideľovania CPU, ako aj vysvetliť najčastejšie zdroje CPU steal time.
Najprv teda pre tých, ktorí tento koncept nepoznajú: CPU steal time je čas, počas ktorého musí váš virtuálny procesor v rámci cloudového servera čakať na skutočný fyzický procesor, kým ho hypervizor aktívne využíva na iné účely (napríklad pre iné virtuálne stroje/cloudové servery). Toto je skvelý článok o CPU steal time ktorý sa rozhodne oplatí prečítať.
Pár informácií o našom nastavení CPU
Prvá vec, ktorú je potrebné pochopiť, sa týka spôsobu, akým prideľujeme jadrá medzi virtuálne stroje na každom fyzickom výpočtovom uzle, ktorý hostí vaše výpočty. Procesory a ich jadrá v CloudSigma sú zdieľané. Inými slovami, nepriraďujeme cloudový server zákazníka ku konkrétnym jadrám. Čas CPU je prideľovaný plánovačom fyzického výpočtového uzla dynamicky a všetko je zdieľané. Veríme, že to prináša viacero výhod v podobe poskytovania spoľahlivejšieho výkonu ako celku tým, že výpočtovému uzlu umožňuje vykonávať rozumné úpravy alokácie za behu s cieľom vyvážiť záťaž.
V kombinácii s tým používame Control Groups (skrátene cgroups) na zaručenie dostatočého času CPU pre každý z cloudových serverov v súlade s prostriedkami, ktoré ste nastavili prostredníctvom veľkosti servera. Nakoniec plánovač rozhodne, čo urobí s akýmikoľvek zostávajúcimi prostriedkami a cgroups. Za zmienku tiež stojí, že vyhradzujeme sadu špecifických jadier, ktoré sú mimo rozsahu alokácie pre výpočtové zaťaženie zákazníkov. Tieto jadrá používame na beh operačného systému fyzického hostiteľa. Konkrétne vyhradzujeme ďalšie jadrá na spracovanie sieťových a úložných operácií. Cieľom toho všetkého je zvýšiť stabilitu celého stroja. Okrem toho vám to ako zákazníkovi pomáha dlhodobo dosahovať spoľahlivú úroveň výkonu bez ohľadu na zaťaženie ostatných zákazníkov.
Zdroje CPU steal time vo virtualizovanom prostredí
Na rozdiel od fyzického prostredia existuje viacero zdrojov a situácií, kedy sa môžete stretnúť s CPU steal time. Je to preto, že vo virtualizovanom prostredí s viacerými nájomcami (multi-tenant) sú veci zložitejšie. Nie vo všetkých prípadoch ide o situáciu, kedy nedostávate čas CPU, ktorý by ste mali mať. V mnohých prípadoch môžete často absorbovať voľné cykly CPU nad rámec vašej pridelenej veľkosti, ale to nie je situácia, kedy by ste videli CPU steal time. Tri najčastejšie situácie sú podrobnejšie opísané nižšie.
Váš cloudový server je preťažený
Stáva sa to! Každý chce využívať kapacitu čo najbližšie k maximu toho, za čo platí, avšak ak pridelené CPU pre váš virtuálny cloudový server nestačí na spracovanie záťaže, môžete zaznamenať CPU steal time, keďže sa úlohy hromadia a radia do frontu v rámci virtuálneho CPU. Ak je toto hlavnou príčinou CPU steal time, riešením je zmena veľkosti cloudového servera. Ak ide o dočasné preťaženie, môžete veci bezpečne ponechať bez zmeny. Keď vaša záťaž klesne, uvidíte, že CPU steal time zmizne.
Fyzický server, ktorý hostí váš cloudový server, je preťažený
Ak dôjde k preťaženiu hostiteľa, v tomto prípade ide o chybu z našej strany. Je to zriedkavé, ale môže sa to stať. V takom prípade používame živú migráciu na migráciu virtuálnych strojov bez prerušenia prevádzky na iné fyzické výpočtové uzly, aby sme znížili úroveň zaťaženia späť na normálnu úroveň. Vo všeobecnosti udržiavame hostiteľov hlboko pod plným zaťažením. Ak to teda pozorujete dlhší čas, kontaktujte nás. Naša bezplatná podpora 24/7 môže skontrolovať fyzického hostiteľa, na ktorom sa nachádzate. Ak nedochádza k preťaženiu, potom je nepravdepodobné, že by to bolo hlavnou príčinou vášho CPU steal time.
Používate menšiu veľkosť virtuálneho jadra
V spoločnosti CloudSigma vám dávame možnosť definovať veľkosť virtuálneho jadra, aby ste mohli využiť napríklad viac CPU vlákien z viacerých menších virtuálnych jadier pre akúkoľvek veľkosť cloudového servera. Cloudový server v rámci operačného systému bude vždy vidieť veľkosť jadra ako plnú fyzickú veľkosť.
Ak je fyzické jadro 2.6GHz, ale váš VM má 4GHz a dve jadrá, každé virtuálne jadro bude mať 2GHz. Takže vždy uvidíte steal time. V skutočnosti je to preto, že dostávate pomernú časť celkového jadra, nie plnú veľkosť, kvôli tomu, že veľkosť virtuálneho jadra je menšia. Preto by ste mali vždy upraviť akékoľvek výpočty CPU steal time tak, aby zohľadňovali menšiu veľkosť virtuálneho jadra, ak ju skutočne používate. Aby ste sa tomu vyhli, môžete použiť plnú veľkosť jadra na jedno jadro. Môžete to urobiť tak, že rozšírite veľkosť virtuálneho jadra na plnú veľkosť jadra procesora (napr. Intel v4 2.6GHz).
Záver
CPU steal time v cloude je o niečo komplexnejší ako v tradičných fyzických prostrediach s jedným nájomcom. Určite však stále existuje. Hlásenie CPU steal time operačnými systémami sa však neprispôsobilo odlišným podmienkam. To znamená, že môžete získať falošne pozitívne výsledky. Keď narazíte na CPU steal time, zvyčajne to znamená, že dochádza k obmedzeniu zdrojov. Dúfame, že vám tento príspevok pomôže rýchlo identifikovať hlavnú príčinu a zabezpečiť nepretržitú bezproblémovú prevádzku.
Príjemnú prácu s počítačom!
Robert
Komentáre
Zatiaľ žiadne komentáre. Buďte prvý.