Voimme vuokrata niin paljon tai vähän laskentakapasiteettia tai tallennustilaa tai liitettävyyttä kuin haluamme, ja saamme sen milloin haluamme. Ja meidän ei tarvitse ylläpitää tai ottaa huomioon mitään näistä laitteistoista. Mikä hieno idea, tämä pilvi. Miksi sitä ei ole tehty kauan sitten? Ja kaikki nämä resurssit tarjoavat yritykset ovat yhä helpommin tehneet käytöstämme helppoa. Elämä IT-maailmassa näyttää varmasti hyvältä.
Ne, jotka tarjoavat meille pilven, tietävät kuitenkin, että – kuten useimmissa asioissa – tähän hyvään elämään liittyy muutamia kompromisseja. Kyse ei todellakaan ole siitä, että nämä varoitukset olisivat piilossa, vaan se vaatii vain jonkin verran teknistä taustaa, jotta se on helppo selittää. Miksi on esimerkiksi niin, että yhtenä päivänä pilvipohjaisen sovellukseni suorituskyky on loistava ja seuraavana päivänä ei, vaikka kaikki muu – meidän näkökulmastamme – olisi tasavertainen? Mahdollisia syitä ei todellakaan ole niin vaikea saada selville. Joten aiomme tässä keskittyä prosessorin virtualisointiin, joukkoon teknisiä konsepteja, jotka ovat ainakin osan pilvestä taustalla.
Onko sinulla todella mahdollisuus olla ymmärtämättä tätä? Kuten luin äskettäin The Next Platformin artikkelista: "Yritykset toimivat nykyään toisella jalalla paikalla ja toinen pilvessä. Tämä olennaisia liike-elämän palveluita tarjoava yksityisen ja julkisen omaisuuden yhdistelmä tunnetaan hybridiyrityksenä, ja siitä on tullut uusi normaali. Vaikka tämä malli voi vähentää kustannuksia ja parantaa työntekijöiden tuottavuutta, se voi olla myös painajainen IT:n hallitukselle." Pienen lisätiedon pitäisi auttaa tässä.
Puhumme ehdottomasti siitä, mikä ohjaa suorituskykyä, mutta tämä ei ole – ja sen pitäisi olla itsestään selvää – artikkeli tietojenkäsittelyn suorituskyvystä yleensä. se on artikkeli julkisen ja yksityisen omaisuuden käytön eroista.
Joten, istu alas ja rakenna muutama mielikuva siitä, mitä noissa pilvissä todella tapahtuu.
LÄHTÖKOHTA
Toki osa pilven kauneutta on se, että voit vuokrata sen resursseja. Mutta sen mahdollistaa melko yksinkertainen tosiasia; käytät tyypillisesti vain pientä prosenttia suoritettavan laitteiston käytettävissä olevista laskentaresursseista. Jos käytät – sanotaan – vain 10 prosenttia, miksi maksat myös muista 90 prosentista? Vuokraa sen sijaan tarvitsemasi.
Pilveä käyttävillä on tietysti ja on maksettu laitteistosta ja siten kaikesta sen mukana tulevasta laskentakapasiteetista. Ja usein paljon. Ja he ovat täysin valmiita sallimaan sinun jakaa – tiettyyn rajaan asti – kyseisen laitteiston, maksamaan etuoikeudesta nimellisen summan ja silti olemaan taattu, että olet toiminnallisesti eristetty kaikista muista pilvipalveluista. Tästä prosessorin virtualisoinnissa on oikeastaan kyse; jakaa laitteisto jollain turvallisella tavalla, mutta siten, että laitteiston käytettävissä olevaa kapasiteettia käytetään paremmin.
Kun näemme kuvia siitä, mistä pilvi (pilvet) todella koostuu, näyttää varmasti siltä, että omat käyttöjalanjälkemme ovat käsittämättömän pieniä jossain käsittämättömän massiivisessa. kukin näyttää laskentakapasiteetin, muistin, jatkuvan tallennustilan ja valtavien kaistanleveysyhteyksien huijauksilta. Huudat jotain niin suurta ja odotat kuulevasi kaiun; eli vaikka kuulisit muuta kuin jäähdytystuulettimet.
Mutta ei, se ei todellakaan ole niin. Jokainen pilvi on rakennettu suurelta osin tuntemastasi ja rakastamastasi laitteistosta. Monet niistä ovat massiivisia replikaatioita yhdestä pariin SMP:tä (Symmetric Multi-Processor) tukevasta levystä, joista jokaisessa on yhdestä pariin prosessorisiru, jokaisessa sirussa on iso kourallinen prosessoriytimiä, joista jokaisessa on melko vähän välimuistia ja kokonaismuistia. teratavun muistin päässä. Ja nämä rakennuspalikat puolestaan tukevat yhteyksiä naapureihin, muihin I/O-laitteisiin ja ulkomaailmaan esimerkiksi PCI-Expressin, Ethernetin, InfiniBandin ja muiden kautta. Verrattuna ei liian kauan sitten, jopa nämä yksittäiset SMP-rakennuspalikat ovat tehokkaita kokonaisuuksia. Ja niille, jotka tarvitsevat enemmän, enemmän korkeammalla hinnalla, on edelleen suurempia SMP-järjestelmiä – tai sellaisia, joissa on GPU:n kaltaisia –, jotka voitaisiin kopioida samalla tavalla. pilvi ei ole niinkään massiivinen sumupankki, vaan se on suuri määrä kuumia lumipalloja; se on pilvi, koska sinun ei tarvitse tietää missä olet siinä ollessasi, ei siksi, että se on sinun käytettävissäsi.
Nämä SMP-yksiköt saattavat kaikki vaikuttaa suurilta sinänsä – useiden kymmenien prosessorien laskentakapasiteetti ja satojen gigatavujen muistia – mutta ne ovat rajallisia. Pilvipalveluntarjoajan tehtävänä on täyttää ja ylittää suorituskykytarpeesi alentamalla kustannuksiasi, minimoimalla samalla kustannuksiaan – joihin kuuluvat valtavat energiakustannukset – ja maksimoimalla tuotot samalla kun sinä ja muut mahtuvat näihin rajallisiin resursseihin. Kuormituksen tasapainottaminen tämän saavuttamiseksi on nostettu korkeaksi tieteeksi.
Ne eivät anna käyttöjärjestelmäesiintymällesi ja sen sovelluksille koko suoritinlevyä. Sen sijaan ne tarjoavat sinulle jotain paljon abstraktimpaa, laskentakapasiteettia. Sinä ja kymmenet, sadat, ehkä tuhannet muut käyttöjärjestelmäesiintymät – eli osiot – jaatte yhden SMP-yksikön kokonaiskapasiteetin. Jälleen, et osta tai edes välttämättä vuokraa tiettyä määrää prosessoriytimiä, vaan jaat tämän resurssin ja vuokraat osan sen kapasiteetista.
Teit sopimuksen varmasti tietyltä kapasiteettitasolta; niin teki monet, monet muut. pilvipalveluntarjoajat ottavat haluamasi ja todelliset suorituskykytarpeesi, tarkastelevat jokaisen todellisen ja tällä hetkellä aktiivisen laitteistonsa käytettävissä olevaa kapasiteettia, mukautuvat energiankulutukseen ja päättävät, missä tässä valtavassa pilvessä osiosi joutuu olemaan jonkin aikaa; asuvat siellä, tuossa SMP-yksikössä, sekä monet muut.
Se on lähtökohta. Seuraavaksi kaivetaan hieman alas ja katsotaan, mitä se tarkoittaa ja miltä se saattaa tuntua.
MIKÄ ON KAPASITEETTI?
Oletko koskaan katsonut työasemasi suorittimen käyttökaavioita? Useimpiin tarkoituksiin on OK käyttää suorittimen käyttöä erittäin karkeana mittana siitä, kuinka paljon enemmän työtä prosessorisi voivat tehdä. Mutta tätä keskustelua varten oletetaan, että suorittimen käyttö tarjoaa huomattavan tarkkuuden kapasiteetin mittauksessa.
Oletetaan, että mittaat jotakin työyksikköä, jota kutsut "tapahtumaksi". Oletetaan, että tällä hetkellä järjestelmäsi katkaisee 1 000 tapahtumaa sekunnissa. Ja olet huomannut, että suorittimen käyttöaste on - sanotaan - 20%. Mikä on automaattinen oletuksesi järjestelmäsi käytettävissä olevasta kapasiteetista? Luuletteko, että 20 % prosessorin käyttöaste tarkoittaa, että prosessorini voivat kestää viisi kertaa enemmän työtä. Siksi minun pitäisi pystyä saamaan noin 5 kertaa enemmän tapahtumia – 5 kertaa niin paljon läpimenoa; Tämä olettaa, että kyseinen SMP on prosessorirajoitettu – ei I/O. Joten, 5 kertaa 1 000, käytettävissä oleva kokonaiskapasiteetti on noin 5 000 tapahtumaa sekunnissa. Jälleen tämä on automaattinen take-away, kun tarkastelet suorittimen käyttöä.
Olet saattanut myös mitata tapahtumapohjaista suorituskykyäsi ajan mittaan ja havainnut kaikenlaisia mielenkiintoisia suhteita tapahtumaprosentteihin ajan mittaan, ehkä jopa yhdistänyt sen suorittimen käyttöasteeseen. Olet ehkä jopa mennyt niin pitkälle, että olet määrittänyt ydinlaskennan laskentakapasiteetin, joka tarvitaan tämän suorituskyvyn ohjaamiseen ajan mittaan; jos 16-ytiminen järjestelmäsi oli usein 25 prosentin käyttöasteella, voisit ehkä tehdä saman työn neljällä ytimellä. Olet huomannut, että tyypillisesti olet tarvinnut vain pienen osan – vaikkapa – kuudestatoista ytimestäsi; olisit voinut tulla toimeen näiden useiden vähemmän ytimien käytettävissä olevalla kapasiteetilla, mutta joskus tiedät, että voisit käyttää enemmän. Hyvää työtä. Olet valmis ostamaan yhden tai useamman Cloudin taloudellisen tarjouksen.
Usko tai älä, olet tehnyt paljon oletuksia tuossa hienossa analyysissä, joista monet ovat riittävän päteviä, joista toisista – no – puhumme niistä pian.
Kapasiteetti on käsitteellisesti lähellä suoritustehon käsitettä. Kyky – mahdollisuus – tuottaa suurempaa suorituskykyä – suurempi transaktioita sekunnissa – tarkoittaa myös suurempaa kapasiteettia. Tapahtumanopeus on suorituskyvyn mitta; kapasiteetti on suurin saavutettavissa oleva tapahtumanopeus. Se ei ole: Kuinka paljon on ämpärisi? Se on: Kuinka suuri ämpärisi on?
Kapasiteetti voi olla yksisäikeisen suorituskyvyn funktio, mutta nämä kaksi käsitettä ovat hyvin erilaisia. Varmasti, mitä nopeammin yksi säie voi tehdä työnsä prosessoriytimessä, sitä nopeammin tämä prosessori on käytettävissä seuraavan työn suorittamiseen. Tämä nopeampi yksiytiminen voi tarkoittaa enemmän kapasiteettia. Mutta työn tyypistä riippuen myös hitaammat prosessorit voivat tuottaa saman kapasiteetin.
MITÄ ON SAATAVILLA?
On olemassa monia erilaisia pilvipalveluntarjoajia, mutta valitaan vain yksi, lähinnä konseptin ymmärtämiseksi, ei siksi, että se on tai ei ole parempi.
Jos käyt Amazon Web Services (AWS) -sivustolla ja katsot hinnoittelua, huomaat, että niiden hinnoittelu perustuu ainakin osittain ecun (EC2 Compute Unit) käsitteeseen. Jollain tasolla tämä on itseviittausarvo, joka edustaa heidän kunkin tarjouksensa suhteellista laskentakapasiteettia. 26 tarkoittaa, että tällaisen tarjouksen kapasiteetti on noin kaksi kertaa suurempi kuin 13. Pelkästään tällä tiedolla kuitenkin huomaat, että sinulla ei ole aavistustakaan, mitä 13 edustaa. Kaivamalla eteenpäin opit, että yksi ECU edustaa yhden ja tietyn suunnittelupisteen prosessorin ytimen laskentakapasiteettia tietyllä sykliajalla; tälle viitejärjestelmälle annetaan arvo 1. ECU edustaa karkeasti prosessorin ytimen käytettävissä olevaa suorituskykykapasiteettia, vaikkakin tietyn vanhemman ytimen. Se on vakaa, muuttumaton kapasiteetin mitta, joka tekee jonkin verran työtä kyseisellä prosessorilla. OK, se voi auttaa, mutta sinulla ei silti välttämättä ole viittausta maailmaasi. Tarkoitan, kuinka monta omaa tapahtumaasi/minuutti olisit voinut tuottaa edes 1 eculla?
Arviot, kuten 13 tai 26 – tai mitä sinulla on – määritetään useiden vertailuarvojen ja suorituskykytestien avulla, jotka suoritetaan kyseisessä laitteistoympäristössä ja tuloksia verrataan vertailujärjestelmään. Amazonin ihmiset tietävät hyvin, että on olemassa monia erilaisia tapoja käyttää näitä järjestelmiä, ja niiden suorituskykyympäristöt ovat esimerkkinä näistä. Huomaa kuitenkin, että näiden joukossa voi olla huomattavaa suhteellista vaihtelua työmäärästä toiseen ja jopa enemmän, kun siirrymme järjestelmästä toiseen. Kuten he sanovat: "Tulokset voivat vaihdella." Nämä ECU-luokitukset johtuvat valittujen työkuormien yhdistelmästä; mikä tahansa työkuormista saattaa tuottaa kaksinkertaisen suorituskyvyn 26:lla verrattuna 13:een. Joten he käyttävät sekoitusta; he voisivat julkaista kaikki tulokset, mutta me kaikki haluamme nopean suhteellisen kapasiteetin, kuten ECU:n. Silti se on hyvä lähestymistapa, jos etsimäsi on yhden numeron esitys suhteellisesta kapasiteetista.
Selittää hieman tarkemmin: Jopa käyttämällä yhtä ydintä, on olemassa monia tapoja, joilla tietty luokitus voidaan saavuttaa; laitteistotekniikan, sykliajan, hienorakeisen rinnakkaisuuden, välimuistin koon ja topologian, väylän kaistanleveyden, muistin nopeuden ja niin edelleen kautta. Voisimme myös karkeasti kaksinkertaistaa kapasiteetin 13:sta 26:een kaksinkertaistamalla ytimien lukumäärän. Jälleen tällaiset erot suunnittelussa voivat tarkoittaa eroja tiettyjen työkuormien suorituskyvyssä.
Se on AWS. Muut järjestelmät yrittävät esittää järjestelmäkapasiteettiaan käyttämällä muita käsitteellisesti samanlaisia luokituksia. (Esimerkkinä omasta IBM Power Systems -taustastani on CPW, lyhenne sanoista Commercial Performance Workload ja joka perustuu löyhästi TPC-C online-tapahtumien käsittelytestiin.) Jotkut tarjoavat huomattavasti tarkemman tarkkuuden ilmentymäsi kapasiteetista. Ja juuri sitä ostat, käyttöjärjestelmän ilmentymän kapasiteettia, tyypillisesti murto-osan koko yksittäisen SMP:n kapasiteetista. Joten pointti on: Se, mitä todella saat ECU:lla, on osoitus kokonaiskapasiteetista, joka on käytettävissä jossain suuremmassa fyysisessä SMP-järjestelmässä. Ostamasi käyttöjärjestelmän ilmentymä jakaa saman laitteiston – ainakin jonkin aikaa – joidenkin muiden esiintymien kanssa; jokainen saa osan tästä kokonaiskapasiteetista. Kuten mainittiin, pilvipalvelun tehtävänä on osittain määrittää, kuinka ne parhaiten pakataan yhteen ottaen huomioon kunkin tällaisen esiintymän kapasiteettivaatimukset.
ECU:sta erottuva AWS:llä on toinen mittari, jota he kutsuvat vCPU:ksi, lyhenne sanoista virtuaalinen CPU. Toisilla on samankaltaisia käsitteitä, kuten VP (virtuaalinen prosessori). Käytän molempia termejä vuorotellen. Tämäkin on abstrakti käsite. Se ei ole jokin tietty ydin jossakin SMP:ssä, jota käyttöjärjestelmäilmentymäsi säilyttää loputtomasti. Jokainen VP on sen sijaan abstrakti kokonaisuus, jolle käyttöjärjestelmä osoittaa työtä (eli työ on tehtävä tai säiettä). Kun käyttöjärjestelmäsi VP:lle havaitaan lähetetyn töitä, tämä VP määrätään myöhemmin ytimeen joksikin aikaa. Ero saattaa tuntua hienovaraiselta tässä vaiheessa, mutta on tärkeää toimia tavoilla, joihin pääsemme pian. VP ei ole ydin, se on prosessorin abstraktio.
Joten, kun sanot, että käyttöjärjestelmäesiintymässäsi on esimerkiksi neljä vCPU:ta, tarkoitat todella, että käyttöjärjestelmäsi tietää neljä entiteettiä, joille se voi lähettää tehtäviä. Se ei tarkoita, että käyttöjärjestelmässäsi sillä hetkellä olisi neljä tiettyä ydintä – ja niiden edustama kapasiteetti – joilla tehtäväsi voivat suorittaa käskyvirtansa. Sen sijaan vCPU edustaa SMP-prosessorin suurinta mahdollista rinnakkaisuutta. VCPU-luokitus neljä tarkoittaa, että käyttöjärjestelmässä voi olla neljä kertaa enemmän suoritettavia tehtäviä samanaikaisesti kuin on mahdollista käyttöjärjestelmässä, jonka vCPU-luku on yksi.
Tietällä tavalla VP-määrä edustaa myös maksimikapasiteettia, koska neljän VP:n käyttöjärjestelmä on rajoitettu samaan määrään samanaikaisesti ja jatkuvasti suoritettavia tehtäviä. et saa enempää suoritustehoa kuin on saatavilla jatkuvassa käytössä neljällä VP:llä, aivan kuten et saa enempää kuin jos käytät jatkuvasti neljällä ytimellä. Jos ECU:sta ei ollut käsitystä ja vain vCPU-määrä edustaa kapasiteettia, vCPU-arvo neljä tarkoittaa, että sinulla on enintään neljän samanaikaisesti suoritettavan tehtävän kapasiteetti, jos suoritat jatkuvasti. ECU:n kapasiteettiarvosta tulee tällöin kapasiteettiraja, joka on pienempi kuin tämä vCPU-pohjainen maksimi.
On syytä huomata, että se, mikä muodostaa VP:n tai vCPU:n, on epäjohdonmukaista eri tarjoajien välillä. Käsittelemme tätä lähiaikoina – ja siihen liittyviä tärkeitä suorituskykyvaikutuksia –, kun keskustelemme myöhemmin monisäikeisyydestä, mutta jotkut VP:t liittyvät kokonaisiin ytimiin ja toiset monisäikeisten ytimien laitteistosäikeisiin.
Tämän osan päätteeksi hahmoteltiin kaksi käsitettä:
Voit vuokrata laskentakapasiteettia, joka vastaa murto-osaa yksittäisen SMP:n kokonaislaskentakapasiteetista.
Voit määrittää SMP:n rinnakkaisuuden tason. kuinka monta tehtävää voidaan suorittaa samanaikaisesti.
Mutta aina kuvittele, että on olemassa muita samankaltaisia käyttöjärjestelmäesiintymiä, jotka voivat jakaa tai eivät jaa samoja prosessoriresursseja.
MIKÄ ON PROSESSORI?
Aiemmin termit – prosessori tai prosessori – ymmärrettiin melko hyvin. Mutta sekä laitteisto- että ohjelmistomuutokset ovat tehneet molemmista melko huonosti määriteltyjä ja usein väärin käytettyjä. Harkitse SMT:tä (Simultaneous Multi-Threading) tai suunnilleen vastaavaa Intelin Hyper-Threadingia. Molemmissa näissä prosessoriytimen paremmin määritelty käsite on otettu käyttöön, jotta se voi suorittaa samanaikaisesti useita käskyvirtoja. Sen sijaan, että tehtävät/säikeet lähetettäisiin yksitellen prosessoriytimille, näiden ytimien voidaan ajatella suorittavan samanaikaisesti ohjeita useiden säikeiden puolesta.
Miksi tämä siis tuodaan esiin virtualisointia koskevassa keskustelussa? Vastaa tähän: Mikä on VP tai vCPU? Onko VP ydin, jossa on kaikki SMT-laitteistosäikeet yhdessä, vai onko VP yksi laitteistosäie, yksi useista ytimen sisällä? Jälkimmäisessä VP edustaa yhden käskyvirran suorittamista; edellisessä VP edustaa useiden tehtävien käskyvirtoja.
Koska suorituskyvyssä ei ole eroa, kysymystä voidaan pitää kiistanalaisena. Mutta eroa on ja se on melko merkittävä.
Enimmäkseen käsitteellisenä esimerkkinä harkitse seuraavaa kuvaa, joka esittää suorituskyvyn lisäyksiä Power8-prosessorilla, jossa on enintään kahdeksan säiettä ydintä kohti. Kokonaissuorituskyvyn näkökulmasta jokaisella ytimellä on huomattavasti enemmän kapasiteettia – enemmän kapasiteettipotentiaalia – 8-tie SMT:n (alias SMT8) ansiosta; Power8-ydin voi tukea jopa 8 säiettä. Tuo lisäkapasiteetti on hyvä asia. Huomaa kuitenkin myös vertailusäikeen – esimerkiksi sinisen – läpimenokyky, sillä se alkaa ensin yksin ytimestä (eli vasemmalla olevasta palkista) ja jakaa sitten saman ytimen yhden, sitten kolmen ja sitten seitsemän muun kanssa. langat. Tämän säikeen yksittäinen läpimenokyky laskee huomattavasti. Tämä on täysin normaalia käytöstä; jokainen säie voi olla hitaampi, mutta SMT:n vuoksi se ainakin suorittaa; samalla säikeellä ei olisi suorituskykyä sinä aikana, kun se odottaa "SMT-säiettä", jos tällaista SMT-ominaisuutta ei olisi olemassa.
power8-säikeistys
Miksi opetusohjelma? Muistatko kysymyksen? Liittyykö vCPU kokonaiseen ytimeen – pystyykö tässä tukemaan jopa 8 säiettä – vai onko vCPU yhdistetty yhteen SMT-säikeeseen – yksi enintään kahdeksaan kussakin ytimessä? Jos jälkimmäinen, fyysinen ydin tukee myös useita vCPU:ita; Muista jälleen, että kun määrität uutta käyttöjärjestelmäesiintymää, määrität myös käyttämiesi VP:iden/vCPU:iden enimmäismäärän. Joten jos määritit kaksi VP:tä, saavutatko kahden ytimen vai kahden SMT-säikeen kapasiteetin?
Sanotaan toistaiseksi, että vCPU on SMT-laitteistosäie, ei täydellinen ydin (useita SMT-säikeitä). Oletetaan myös, että sinulla on käyttöjärjestelmäesiintymä, jossa on kaksi vCPU:ta, ja niille molemmille on määritetty tehtäviä, mikä tarkoittaa, että molemmat haluavat olla määritettynä "prosessorille". On täysin mahdollista, että käyttöjärjestelmäsi vCPU:t voidaan osoittaa eri ytimille, eikä mikään muu käyttöjärjestelmän vCPU sillä hetkellä jaa ytimiä. Loistava. Tehtäväsi alkavat käyttää näiden ytimien kaikkia resursseja ja sen seurauksena suorittaa niin nopeasti kuin mahdollista. Tai esimerkiksi käyttöjärjestelmäsi vCPU:t voidaan määrittää samaan ytimeen. OK, jos he ovat yksin yhdessä, molemmat suorittavat, mutta kumpikin hitaammin kuin edellisessä tapauksessa.
Mutta pilvessä ei oikeastaan ole kyse yksin suorittamisesta SMP:ssä; on muitakin käyttöjärjestelmiä, joiden vCPU:t jakavat hyvin saman järjestelmän. Nostetaan siis järjestelmien käyttöä ja annetaan myös muiden käyttöjärjestelmien olla kiireisiä. Mihin heidän vCPU:t on määritetty? Toki ne voidaan määrittää tilapäisesti eri ytimille, mutta niiden vCPU:t voidaan osoittaa samalle ytimelle, jossa yksi tai useampi käyttöjärjestelmäsi vCPU on tällä hetkellä määritetty. Verrattuna yksin suorittamiseen ytimessä, kun järjestelmän käyttöaste nousee, on suurempi todennäköisyys, että vCPU:t jakavat ytimiä ja toimivat siten suhteellisen hitaammin.
Toisin sanottuna oletetaan, että käyttöjärjestelmässäsi on tällä hetkellä aktiivinen vain yksi vCPU – ja siis vain yksi säie. Saatat odottaa, että tämän säikeen pitäisi toimia kokonaan, kuten yllä olevan vasemmanpuoleisen sarakkeen sininen lanka. Todellakin, olet saattanut toistuvasti kokea tämän vaikutuksen etkä tiennyt sitä; järjestelmää käytettiin kevyesti ja se oli tulos. Joten – tämän käyttöjärjestelmän sovellussäikeen tietämättä – tehostetaan kaikkien muiden käyttöjärjestelmien ja vCPU:iden käyttöä samalla SMP:llä. Säietesi saa edelleen käyttää "prosessoria", mutta nyt se jakaa paljon useammin ytimen useiden muiden aktiivisten vCPU:iden kanssa. Tuloksena on hitaampi suoritus. Ja käyttöjärjestelmien odotetun toiminnallisen eristyksen vuoksi käyttöjärjestelmissäsi ei ole mitään, joka voisi kertoa sinulle, miksi sovelluksen suorituskyky on hidastunut.
Tietenkin ongelma on vähemmän intensiivinen, sillä ydintä kohti on enintään kaksi säiettä, mutta peruskonsepti on voimassa.
Onko vCPU ydin vai SMT-säie? VMwaren ESXi-hypervisorille: "Oletus, että 1 vCPU on yhtä suuri kuin 1 CPU, on oletus yksinkertaistamisen vuoksi, koska vCPU:t on ajoitettu loogisiin prosessoreihin, jotka ovat laitteiston suorituskonteksteja. Nämä tehtävät voivat kestää jonkin aikaa, jos kyseessä on yksiytiminen CPU, prosessorit, joissa on vain 1 säie ydintä kohden, tai ne voivat olla vain säie CPU:ssa, jossa on hypersäikeistys."
VCPU, jossa on VMwaren ESXi-hypervisor, on SMT-säie. IBM:n PowerVM-hypervisorilla virtuaalisen prosessorin (eli VP:n) käsite on erilainen; VP liittyy fyysiseen prosessoriytimeen, mukaan lukien kerralla kaikki ytimen SMT-säikeet. Tässä VP ei välttämättä ole sidottu tiettyyn ytimeen; käyttöjärjestelmän tehtävänvälittäjä määrittää VP:lle yhden tai useamman tehtävän – ikään kuin se olisi fyysinen ydin – ja sitten hypervisor kohdistaa VP:n käytettävissä olevaan ytimeen vapauttaen ytimen tarvittaessa dynaamisesti.
Näetkö eron VMware ESXin ja IBM PowerVM:n välillä? PowerVM:n kanssa on edelleen totta, että ydin voi suorittaa samanaikaisesti yhtä tai useampaa säiettä. Mutta jos useita säikeitä PowerVM:llä, jossain ytimessä suoritettavat säikeet kuuluvat kaikki samaan käyttöjärjestelmään. Jos esimerkiksi käyttöjärjestelmäsi käyttöaste oli tarpeeksi alhainen, jotta siinä olisi vain yksi säie VP:tä kohti, nämä säikeet suoritetaan yksin ja siten nopeammin, kun jokainen VP on myös liitetty ytimeen. VMwaren avulla, vaikka käyttöjärjestelmässäsi olisi täsmälleen yksi suoritussäie – tämä säie on liitetty yksinään vCPU:hun – on mahdollista, että tämä säie jakaa ytimen muiden käyttöjärjestelmien vCPU:iden kanssa. Muissa käyttöjärjestelmissä esiintyvä lisääntynyt käyttö voi hidastaa toisen käyttöjärjestelmän suorituskykyä.
Mutta kaikki persikat ja kerma eivät myöskään ole PowerVM:ssä. Jos VP on aktiivinen edes yhdellä säikeellä, hypervisor määrittää kyseisen VP:n ytimelle. Tehtävä käyttää koko ytimen kapasiteettia; kukaan muu VP ei voi käyttää sitä silloin, vaikka siellä on vain yksi säie. Kuten yllä olevasta SMT-kuvasta näit, yhden säikeen suoritettaessa kapasiteettia on itse asiassa melko vähän, mutta tällä lähestymistavalla sen on jäätävä käyttämättä. Tällöin koko sydämen kapasiteetti on laskettava käytetyksi. VMware, joka käsittelee kutakin SMT-säiettä ikään kuin se olisi vain toinen fyysinen prosessori, määrittää sen sijaan vCPU:t (eli aina yhden säikeen) mille tahansa käytettävissä olevalle SMT-säikeelle missä tahansa ytimessä. Pointti on tässä, että PowerVM-lähestymistavan avulla, koska osa kapasiteetista voi jäädä käyttämättä ytimessä, muiden käyttöjärjestelmien säikeet, jotka voisivat käyttää tätä kapasiteettia, odottavat sen sijaan vuoroaan vapaalle ytimelle. (Mielenkiintoista kyllä, tiedän ainakin yhden PowerVM-käyttöjärjestelmän – ja niin ehkä useammankin – joka yrittää pakata säikeitä VP:ihin tiettyyn pisteeseen asti tämän vaikutuksen vähentämiseksi.)
Paljon yksityiskohtia kyllä, mutta näetkö olennaisen vaikutuksen? Käyttöjärjestelmäsi suorituskyky voi vaihdella suuresti muiden saman järjestelmän jakavien – ja tällä hetkellä jaettavien – käyttöjärjestelmien mukaan.
PREV: MIKSI IBM Haastaa GLOBALFOUNDRIESIN oikeuteen SIRU-OHJELMAN VIRHEISTEN KÄYTTÖÖN