Suorittimen valmius: Hiljainen hypervisor-tappaja



Kokeile Instrumenttia Ongelmien Poistamiseksi

CPU Ready on jotain, jota et ehkä tunne. Ensi vaikutelmasta se saattaa kuulostaa hyvältä, mutta valitettavasti ei ole. CPU Ready on vaivannut virtuaaliympäristöjä kauemmin kuin tiesimme, mitä se oli. VMware määrittelee tämän 'prosenttiosuudeksi ajasta, jolloin virtuaalikone oli valmis, mutta sitä ei voitu ajoittaa fyysiselle suorittimelle. Suorittimen valmiusaika riippuu isännän virtuaalikoneiden määrästä ja niiden suorittimien latauksista. ' Hyper-V aloitti vasta laskurin tarjoamisen vasta äskettäin (Hyper-V Hypervisor Virtual Processor CPU Wait time per lähetys), ja muut hypervisorit eivät välttämättä tarjoa tätä tietoa.



Jotta ymmärtäisimme, mikä CPU-valmius on, meidän on ymmärrettävä, kuinka hypervisorit ajastavat virtuaaliset suorittimet (vCPU) fyysisiin suorittimiin (pCPU). Kun virtuaalikoneessa tarvitaan vCPU-aikaa, se on ajoitettava pCPU: een, jotta komennot / prosessit / ketjut voivat toimia pCPU: ta vastaan. Ihanteellisessa maailmassa ei ole resurssiristiriitoja tai pullonkauloja, kun tämän täytyy tapahtua. Kun yhden vCPU-virtuaalikoneen on ajoitettava aika pCPU: ta vastaan, pCPU-ydin on käytettävissä ja CPU-valmius on hyvin vähäinen tässä ihanteellisessa maailmassa. On tärkeää huomata, että CPU Ready on aina olemassa, mutta ihanteellisessa maailmassa se on hyvin vähäistä eikä sitä huomata.



Todellisessa maailmassa yksi virtualisoinnin eduista on se, että voit lyödä vetoa siitä, että monet virtuaalikoneistasi eivät piikitä kaikkia vCPU-yksikköjään samanaikaisesti, ja jos ne ovat hyvin vähän käyttäviä virtuaalikoneita, voit jopa arvata kuinka paljon voit lataa fyysinen isäntäsi suorittimen käytön ja RAM-muistin käytön perusteella. Aiemmin tehtiin suosituksia 4 vCPU: n ja 1 pCPU: n tai jopa 10: 1 suhteen työmäärästä riippuen. Esimerkiksi, sinulla voi olla yksi neliytiminen prosessori, mutta sinulla on 4 virtuaalikoneita, joissa kussakin on vCPU, jotta saat 16 vCPU: ta 4 pCPU: han tai 4: 1. Insinöörit alkoivat kuitenkin nähdä, että ympäristöt olivat vain hirvittävän hitaita eivätkä voineet selvittää miksi. RAM-muistin käyttö tuntui hyvältä, fyysisten isäntien suorittimen käyttö voi olla jopa hyvin vähäistä, alle 20%. Tallennuksen viive oli erittäin pieni, mutta virtuaalikoneet olivat erittäin hitaita.



Tässä tilanteessa tapahtui CPU-valmiutta. VCPU: sta oli jono, joka oli valmis ajoitettavaksi, mutta pCPU: ta ei ollut käytettävissä aikataulutettavaksi. Hypervisori pysäyttäisi ajoituksen ja aiheuttaisi viiveen vieras virtuaalikoneelle. Se on hiljainen tappaja, että viime vuosiin asti ei ollut paljon työkaluja havaitsemiseen. Windows VM: ssä käynnistyminen kestää ikuisesti, ja kun se lopulta tapahtuu, kun napsautat Käynnistä-valikkoa, se kestää ikuisesti. Voit jopa napsauttaa sitä uudelleen ajattelemalla, että se ei hyväksynyt ensimmäistä napsautustasi, ja kun se lopulta kiinni, saat kaksoisnapsautuksen. Linuxissa virtuaalikoneesi voi käynnistyä vain luku -tilaan tai jopa vaihtaa tiedostojärjestelmät vain luku -tilaan jossain vaiheessa myöhemmin.

Joten miten taistelemme prosessorivalmiina? On olemassa muutamia tapoja, jotka voivat auttaa. Ensinnäkin on suoritinvalmiiden tietojen seuranta. VMwaressa ei ole suositeltavaa ylittää 10%, mutta henkilökohtaisen kokemuksen mukaan käyttäjät alkavat huomata yli 5-7% riippuen virtuaalikoneen tyypistä ja siitä, mitä se käyttää.

Seuraavassa käytän joitain esimerkkejä VMware ESXi 5.5: sta CPU-valmiuden näyttämiseen. Suorita komentorivillä ”esxtop”. Paina 'c' suorittimen näkymää varten ja sinun pitäisi nähdä sarake ' % RDY ”CPU-valmiudelle. Voit painaa isoa V ”Vain VM-näkymälle.



prosessorivalmis 1

Täällä voit nähdä, että% RDY on jonkin verran korkea melko käyttämättömässä ympäristössä. Tässä tapauksessa ESXi 5.5 -laitteessani on testimoduuli VMware Fusionin (Mac hypervisor) päällä, joten sen odotetaan olevan hieman huippuluokan, koska käytämme virtuaalikoneen hypervisorilla toisen hypervisorin päällä.

VSphere-asiakkaassa voit nostaa tietyn virtuaalikoneen ja napsauttaa Suorituskyky-välilehteä. Napsauta sitten 'Chart Options'

prosessorivalmis-2

Valitse Chart Options -kohdassa CPU, Real-time (jos sinulla on vCenter, sinulla voi olla muita ajoitusvaihtoehtoja kuin reaaliaikainen). Valitse laskureista ”Valmis”. Sinun on ehkä poistettava toisen laskurin valinta, koska näkymä sallii vain kaksi tietotyyppiä kerrallaan.

prosessorivalmis-3

Huomaa, että tämä arvo on yhteenveto valmiudesta prosentteina. Tässä on linkki VMware KB -artikkeliin siitä, kuinka muutetaan yhteenvetotiedot prosentteiksi. - https://kb.vmware.com/kb/2002181

Kun ostat laitteistoa, useampi ydin auttaa vähentämään CPU-valmiuden vaikutusta. Hyperthreading auttaa myös. Vaikka Hyperthreading ei tarjoa täyttä toista ydintä kullekin ensisijaiselle ytimelle, se yleensä riittää sallimaan vCPU: n ajoituksen pCPU: lle ja helpottamaan ongelmaa. Vaikka hypervisorit alkavat siirtyä vCPU: sta pCPU-suhdesuositukseen, voit yleensä toimia hyvin kohtalaisesti käytetyssä ympäristössä 4: 1: llä ja siirtyä sieltä. Kun aloitat virtuaalikoneiden lataamisen, tarkastele suorittimen viivettä, prosessorivalmiutta sekä yleistä tunnetta ja suorituskykyä. Jos sinulla on voimakkaita osuvia virtuaalikoneita, kannattaa ehkä erotella ne muihin klustereihin ja käyttää pienempää suhdetta ja pitää ne kevyinä. Toisaalta virtuaalikoneille, joissa suorituskyky ei ole avain ja heille on hyvä ajaa hitaasti, voit tilata paljon korkeammalla.

Virtuaalikoneiden sopiva koko on myös valtava työkalu prosessorivalmiuden torjumiseksi. Monet toimittajat suosittelevat eritelmiä paljon enemmän kuin mitä virtuaalikone todella tarvitsee. Perinteisesti enemmän suorittimia ja enemmän ytimiä = enemmän virtaa. Virtuaalisessa ympäristössä ongelmana on, että hypervisorin on ajoitettava kaikki vCPU: t pCPU: ille suunnilleen samaan aikaan ja pCPU: iden lukitseminen voi olla ongelmallista. Jos sinulla on 8 vCPU-virtuaalikone, sinun on lukittava 8 pCPU-yksikköä, jotta ne voivat ajoittaa samanaikaisesti. Jos vCPU-virtuaalikoneesi käyttää vain 10% kaikista vCPU-yksiköistä kulloinkin, sinun on parempi nostaa vCPU-lukema kahteen tai neljään. On parempi käyttää virtuaalikonetta 50-80%: n suorittimella, jossa vähemmän kuin 10% lisää vCPU: ita. Tämä ongelma johtuu osittain siitä, että käyttöjärjestelmän CPU-ajastin on suunniteltu käyttämään mahdollisimman monta ydintä, kun taas jos se opetettaisiin maksimoimaan ytimet ennen enemmän käyttöä, se voi olla vähemmän ongelma. Ylimitoitettu virtuaalikone voi toimia hyvin, mutta se voi olla 'meluisa naapuri' muille virtuaalikoneille, joten se on yleensä prosessi, jossa sinun täytyy käydä kaikki klusterin virtuaalikoneet läpi 'oikean kokoisiksi', jotta saat nähdä joitain suorituskyvyn parannuksia.

Monta kertaa olet törmännyt suorittimen valmiuteen, ja on vaikea aloittaa virtuaalikoneiden oikean koon asettaminen tai päivittäminen prosessoreihin, joissa on enemmän ytimiä. Jos olet tässä tilanteessa, uusien isäntien lisääminen klusteriin voi auttaa tässä levittämään kuorman useammalle isännälle. Jos sinulla on isäntiä, joissa on enemmän ytimiä / prosessoreita kuin muilla, voi auttaa myös korkeiden vCPU-virtuaalikoneiden kiinnittäminen näihin ylemmän tason isäntiin. Haluat varmistaa, että fyysisessä isännässäsi on vähintään sama määrä ytimiä, ellei enempää kuin virtuaalikone, muuten on erittäin hidasta / vaikeaa ajoittaa ylimääräisen vCPU: n pCPU: ksi, koska ne on lukittava suunnilleen samanaikaisesti .

Lopuksi hypervisorisi voi tukea varauksia ja rajoituksia virtuaalikoneelle. Joskus opinnäytteet asetetaan vahingossa. Näiden aggressiiviset asetukset voivat saada CPU: n valmiiksi, kun itse asiassa taustalla olevat resurssit ovat käytettävissä. Yleensä on parasta käyttää varauksia ja rajoituksia säästeliäästi ja vain silloin, kun se on ehdottoman välttämätöntä. Suurimmaksi osaksi oikean kokoinen klusteri tasapainottaa resurssit asianmukaisesti, eikä niitä yleensä tarvita.

Yhteenvetona voidaan todeta, että paras suoja CPU-valmiutta vastaan ​​on tietää, että se on olemassa ja miten se tarkistetaan. Tämän jälkeen voit määrittää järjestelmällisesti ympäristösi parhaat lieventämisvaiheet edellä esitetyn perusteella. Suurimmaksi osaksi tämän artikkelin tiedot koskevat yleisesti mitä tahansa hypervisoria, vaikka kuvakaappaukset ja kaaviot koskevat nimenomaan VMwarea.

5 minuuttia luettu