Spreman za procesor: Tihi ubojica hipervizora



Isprobajte Naš Instrument Za Uklanjanje Problema

CPU Ready je nešto što vam možda nije poznato. Na prvi dojam možda zvuči dobro, ali nažalost nije. CPU Ready muči virtualna okruženja duže nego što smo znali što je to. VMware to definira kao „Postotak vremena u kojem je virtualni stroj bio spreman, ali nije mogao zakazati pokretanje na fizičkom CPU-u. Vrijeme spremnosti za CPU ovisi o broju virtualnih strojeva na hostu i njihovom učitavanju CPU-a. ' Hyper-V je tek nedavno počeo pružati ovaj brojač (Hyper-V Hypervisor Virtual procesor CPU Vrijeme čekanja po otpremi), a drugi hipervizori možda još uvijek neće pružiti ovu mjernu vrijednost.



Da bismo razumjeli što je CPU Ready, trebat ćemo razumjeti kako hipervizori planiraju virtualne CPU (vCPU) na fizičke CPU (pCPU). Kad je vrijeme vCPU-a potrebno u VM-u, to je vCPU (e) potrebno rasporediti prema pCPU-u, tako da se naredbe / procesi / niti mogu pokretati protiv pCPU-a. U idealnom svijetu nema sukoba resursa ili uskih grla kad se to treba dogoditi. Kada jedan vCPU VM treba zakazati vrijeme u odnosu na pCPU, pCPU jezgra je dostupna i CPU Ready je vrlo minimalan u ovom idealnom svijetu. Važno je napomenuti da CPU Ready uvijek postoji, ali u idealnom svijetu vrlo je minimalan i nije primijećen.



U stvarnom svijetu, jedna od prednosti virtualizacije je ta što se možete kladiti da mnogi vaši VM-ovi neće istodobno dodati sve svoje vCPU-ove, a ako su VM-ovi s vrlo malom upotrebom, možete čak pretpostaviti koliko možete učitajte svoj fizički domaćin na temelju upotrebe CPU-a i RAM-a. U prošlosti su davane preporuke za postojanje omjera od 4 vCPU prema 1 pCPU ili čak 10: 1, ovisno o opterećenju. Na primjer, možda imate jednostruki četverojezgreni procesor, ali imate 4 VM-a s vCPU-ima svaki da vam daju 16 vCPU-a na 4 pCPU-a ili 4: 1. Ono što su inženjeri počeli shvaćati jest da su okruženja bila užasno spora i nisu mogli shvatiti zašto. Korištenje RAM-a činilo se u redu, upotreba CPU-a na fizičkim domaćinima može biti čak i vrlo niska, ispod 20%. Kašnjenje pohrane bilo je izuzetno malo, no VM-ovi su bili izuzetno tromi.



U ovom se scenariju događalo da je CPU spreman. Postojao je red čekanja za vCPU spreman za planiranje, ali nije bio dostupan pCPU za planiranje. Hipervizor bi zaustavio zakazivanje i uzrokovao kašnjenje za gostujući VM. Tihi je ubojica koji do posljednjih godina nije bilo mnogo alata za otkrivanje. U Windows VM-u trebalo bi vječno pokretanje, a kad bi se to konačno dogodilo, kad kliknete na izbornik Start, trebalo bi zauvijek da se prikaže. Možete ga čak i kliknuti ponovo misleći da nije prihvatio vaš prvi klik, a kad ga napokon sustignete, dobit ćete dvostruki klik. Na Linuxu se vaš VM u nekom trenutku kasnije može pokrenuti u način samo za čitanje ili čak prebaciti datotečni sustav u način samo za čitanje.

Pa kako se boriti protiv CPU-a? Postoji nekoliko načina koji vam mogu pomoći. Prvo je praćenje mjernih podataka za CPU. U VMwareu se ne preporučuje ići iznad 10%, ali u osobnom iskustvu korisnici počinju primjećivati ​​iznad 5-7%, ovisno o vrsti VM-a i onome što radi.

U nastavku ću upotrijebiti nekoliko primjera iz VMware ESXi 5.5 kako bih pokazao da je CPU spreman. Pomoću naredbenog retka pokrenite 'esxtop'. Pritisnite 'c' za prikaz CPU-a i trebali biste vidjeti stupac ' % RDY ”Za CPU spreman. Možete pritisnuti kapital “ V ”Samo za VM prikaz.



CPU-spreman-1

Ovdje možete vidjeti da je% RDY donekle visok za prilično neiskorišteno okruženje. U ovom slučaju, moj ESXi 5.5 pokreće testni VM povrh VMware Fusion (Mac hipervizor), pa se očekuje da bude pomalo napredan, jer VM pokrećemo na hipervizoru iznad drugog hipervizora.

U vSphere klijentu možete izvući određeni VM i kliknuti karticu Performanse. Odatle kliknite na 'Opcije grafikona'

CPU-spreman-2

Unutar mogućnosti grafikona odaberite CPU, u stvarnom vremenu (ako imate vCenter, možda imate i druge mogućnosti vremena osim stvarnog vremena). Od tamo u Brojačima odaberite 'Spremno'. Možda ćete trebati poništiti odabir drugog brojača jer pogled u bilo kojem trenutku omogućuje samo dvije vrste podataka.

CPU-spreman-3

Primijetit ćete da je ova vrijednost sažetak spremnosti naspram postotka. Evo veze do članka VMware KB o tome kako sažete mjerne podatke pretvoriti u postotak. - https://kb.vmware.com/kb/2002181

Kada kupujete hardver, više jezgri pomaže umanjiti utjecaj CPU Ready. Pomaže i hipernitanje. Iako Hyperthreading ne pruža punu drugu jezgru za svaku primarnu jezgru, obično je dovoljno da se omogući zakazivanje vCPU-a na pCPU i pomogne u ublažavanju problema. Iako se hipervizori počinju udaljavati od preporuke omjera vCPU i pCPU, obično možete dobro proći u umjereno korištenom okruženju s 4: 1 i otići odande. Kad počnete učitavati VM-ove, pogledajte kašnjenje CPU-a, spremnost za CPU i cjelokupni osjećaj i performanse. Ako imate neke teške VM-ove, možda ćete ih htjeti razdvojiti na druge klastere i koristiti niži omjer i održavati ih laganima. S druge strane, za VM-ove gdje izvedba nije ključna i u redu je da oni rade usporeno, možete pretplatiti mnogo više.

Prikladno prilagođavanje VM-a također je ogroman alat za borbu protiv CPU-a. Mnogi dobavljači preporučuju specifikacije u odnosu na ono što VM zapravo treba. Tradicionalno više procesora i više jezgri = više snage. Problem u virtualnom okruženju je taj što hipervizor otprilike istovremeno mora rasporediti sve vCPU-ove na pCPU-e, a zaključavanje pCPU-a može biti problematično. Ako imate 8 vCPU VM, morate zaključati 8 pCPU-a kako biste im omogućili istovremeno planiranje. Ako vaš vCPU VM u bilo kojem trenutku koristi samo 10% ukupnih vCPU-a, bolje vam je da odbrojite vCPU na 2 ili 4. Bolje je pokrenuti VM na 50-80% CPU s manje vCPU-a od 10% na više vCPU-ova. Ovaj je problem djelomično zbog toga što je planiratelj CPU-a operativnog sustava dizajniran za upotrebu što više jezgri, dok ako je bio osposobljen za maksimaliziranje jezgri prije nego što je upotrijebio više, to može biti manji problem. Predimenzionirani VM može imati dobru izvedbu, ali može biti „bučni susjed“ za druge VM-ove, tako da je to obično postupak u kojem morate proći sve VM-ove u klasteru da biste ih „prilagodili veličini“ kako biste vidjeli poboljšanje performansi.

Mnogo puta ste naletjeli na CPU Ready i teško je započeti pravilno dimenzioniranje VM-ova ili nadogradnju na procesore s više jezgri. Ako ste u ovoj situaciji, dodavanje više hostova u vaš klaster može vam pomoći u širenju tereta na više hostova. Ako imate hostove s više jezgri / procesora od ostalih, vezanje visokih vCPU VM-ova na ove više jezgre također može pomoći. Želite osigurati da vaš fizički domaćin ima barem jednak broj jezgri, ako ne i više od VM-a, inače će biti vrlo sporo / teško zakazati višak vCPU-a na pCPU-u jer ih treba zaključati otprilike u isto vrijeme .

Napokon, vaš hipervizor može podržavati rezervacije i ograničenja na VM-u. Ponekad se teze postave slučajno. Agresivne postavke na njima mogu dovesti do spremanja CPU-a kad su mu zapravo dostupni osnovni resursi. Obično je najbolje koristiti rezervacije i ograničenja štedljivo i samo kada je prijeko potrebno. Klaster pravilne veličine uglavnom će uravnotežiti resurse, a ti obično nisu potrebni.

Ukratko, najbolja obrana protiv CPU Ready je znati da postoji i kako to provjeriti. Tada možete sustavno odrediti najbolje korake ublažavanja za svoje okruženje s obzirom na gore navedeno. Informacije u ovom članku uglavnom se primjenjuju na bilo koji hipervizor, iako se snimke zaslona i grafikoni odnose posebno na VMware.

5 minuta čitanja