Sveiki! Es vÄlos jums vienkÄrÅ”Ä izteiksmÄ pastÄstÄ«t par zagÅ”anas mehÄniku virtuÄlajÄs maŔīnÄs un par dažiem acÄ«mredzamiem artefaktiem, kurus mums izdevÄs noskaidrot tÄs izpÄtes laikÄ un kuros man bija jÄiedziļinÄs kÄ mÄkoÅa platformas tehniskajam direktoram.
CPU nozagÅ”anas laiks ir laiks, kurÄ virtuÄlÄ maŔīna nesaÅem procesora resursus tÄs izpildei. Å is laiks tiek skaitÄ«ts tikai viesu operÄtÄjsistÄmÄs virtualizÄcijas vidÄs. Iemesli, kÄdÄļ Å”ie visvairÄk pieŔķirtie resursi paliek, tÄpat kÄ dzÄ«vÄ, ir ļoti neskaidri. Bet mÄs nolÄmÄm to izdomÄt un pat veicÄm vairÄkus eksperimentus. Nav tÄ, ka mÄs tagad zinÄm visu par zagÅ”anu, bet tagad mÄs jums pastÄstÄ«sim kaut ko interesantu.
1. Kas ir zagt
TÄtad zagÅ”ana ir metrika, kas norÄda uz procesora laika trÅ«kumu procesiem virtuÄlajÄ maŔīnÄ. KÄ aprakstÄ«ts
VirtuÄlÄs maŔīnas kodols saÅem nozagÅ”anas metriku no hipervizora. TajÄ paÅ”Ä laikÄ hipervizors precÄ«zi nenorÄda, kÄdus citus procesus tas darbojas, tas vienkÄrÅ”i saka: āKamÄr esmu aizÅemts, es nevaru jums dot laikuā. KVM ir pievienots zagÅ”anas aprÄÄ·ina atbalsts
- VirtuÄlÄ maŔīna uzzina par zagÅ”anu no hipervizora. Tas ir, no zaudÄjumu viedokļa procesiem paÅ”Ä virtuÄlajÄ maŔīnÄ tas ir netieÅ”s mÄrÄ«jums, kas var tikt pakļauts dažÄdiem izkropļojumiem.
- Hipervizors nedalÄs ar informÄciju ar virtuÄlo maŔīnu par to, ko tÄ vÄl dara ā galvenais, lai tas tam nevelta laiku. Å Ä« iemesla dÄļ pati virtuÄlÄ maŔīna nevar noteikt izkropļojumus nozagÅ”anas indikatorÄ, ko varÄtu novÄrtÄt pÄc konkurÄjoÅ”o procesu rakstura.
2. Kas ietekmÄ zagÅ”anu
2.1. Nozagt aprÄÄ·inu
BÅ«tÄ«bÄ nozagÅ”ana tiek aprÄÄ·inÄta aptuveni tÄpat kÄ parastais CPU izmantoÅ”anas laiks. Nav daudz informÄcijas par to, kÄ tiek uzskatÄ«ta par pÄrstrÄdi. IespÄjams, tÄpÄc, ka lielÄkÄ daļa cilvÄku uzskata, ka Å”is jautÄjums ir acÄ«mredzams. Bet Å”eit ir arÄ« nepilnÄ«bas. Lai iepazÄ«tos ar Å”o procesu, varat lasÄ«t
- Procesors pÄrkarst, izraisot ciklu izlaiÅ”anu.
- IespÄjot/atspÄjot turbo boost, kas maina procesora takts frekvenci.
- Laika slÄÅa garuma izmaiÅas, kas rodas, izmantojot procesora enerÄ£ijas taupÄ«Å”anas tehnoloÄ£ijas, piemÄram, SpeedStep.
- ProblÄma ar vidÄjÄ lieluma aprÄÄ·inÄÅ”anu: vienas minÅ«tes izmantoÅ”anas novÄrtÄjums par 80%, var slÄpt Ä«slaicÄ«gu 100% pÄrrÄvumu.
- GrieÅ”anas bloÄ·ÄÅ”ana izraisa procesora atgÅ«Å”anu, bet lietotÄja process neredz nekÄdu progresu tÄ izpildÄ. RezultÄtÄ aprÄÄ·inÄtÄ procesora izmantoÅ”ana procesam bÅ«s simts procenti, lai gan process fiziski nepatÄrÄs procesora laiku.
Neesmu atradis rakstu, kurÄ bÅ«tu aprakstÄ«ts lÄ«dzÄ«gs aprÄÄ·ins par zagÅ”anu (ja zini, dalies komentÄros). Bet, spriežot pÄc pirmkoda, aprÄÄ·ina mehÄnisms ir tÄds pats kÄ pÄrstrÄdei. VienkÄrÅ”i kodolÄ tiek pievienots vÄl viens skaitÄ«tÄjs tieÅ”i KVM procesam (virtuÄlÄs maŔīnas process), kas uzskaita KVM procesa ilgumu, gaidot CPU laiku. SkaitÄ«tÄjs Åem informÄciju par procesoru no tÄ specifikÄcijÄm un pÄrbauda, āāvai visas tÄ atzÄ«mes tiek izmantotas virtuÄlÄs maŔīnas procesÄ. Ja tas ir viss, mÄs pieÅemam, ka procesors bija aizÅemts tikai ar virtuÄlÄs maŔīnas procesu. CitÄdi informÄjam, ka procesors darÄ«ja ko citu, parÄdÄ«jÄs zagÅ”ana.
NozagÅ”anas skaitÄ«Å”anas process ir pakļauts tÄm paÅ”Äm problÄmÄm kÄ regulÄra otrreizÄjÄs pÄrstrÄdes skaitÄ«Å”ana. Nevar teikt, ka Å”Ädas problÄmas parÄdÄs bieži, taÄu tÄs izskatÄs atturoÅ”i.
2.2. KVM virtualizÄcijas veidi
VispÄrÄ«gi runÄjot, ir trÄ«s virtualizÄcijas veidi, kurus visus atbalsta KVM. NozagÅ”anas mehÄnisms var bÅ«t atkarÄ«gs no virtualizÄcijas veida.
Apraide. Å ajÄ gadÄ«jumÄ virtuÄlÄs maŔīnas operÄtÄjsistÄmas darbÄ«ba ar fiziskÄm hipervizora ierÄ«cÄm notiek Å”Ädi:
- Viesu operÄtÄjsistÄma nosÅ«ta komandu savai viesa ierÄ«cei.
- ViesierÄ«ces draiveris saÅem komandu, Ä£enerÄ pieprasÄ«jumu ierÄ«ces BIOS un nosÅ«ta to hipervizoram.
- Hipervizora process pÄrvÄrÅ” komandu uz komandu fiziskajai ierÄ«cei, padarot to, cita starpÄ, droÅ”Äku.
- FiziskÄs ierÄ«ces draiveris pieÅem modificÄto komandu un nosÅ«ta to uz paÅ”u fizisko ierÄ«ci.
- Komandu izpildes rezultÄti atgriežas pa to paÅ”u ceļu.
TulkoÅ”anas priekÅ”rocÄ«ba ir tÄda, ka tÄ Ä¼auj emulÄt jebkuru ierÄ«ci un neprasa Ä«paÅ”u operÄtÄjsistÄmas kodola sagatavoÅ”anu. Bet par to ir jÄmaksÄ, pirmkÄrt, ÄtrumÄ.
AparatÅ«ras virtualizÄcija. Å ajÄ gadÄ«jumÄ ierÄ«ce aparatÅ«ras lÄ«menÄ« saprot operÄtÄjsistÄmas komandas. Tas ir ÄtrÄkais un labÄkais veids. Bet diemžÄl to neatbalsta visas fiziskÄs ierÄ«ces, hipervizori un viesu operÄtÄjsistÄmas. PaÅ”laik galvenÄs ierÄ«ces, kas atbalsta aparatÅ«ras virtualizÄciju, ir procesori.
ParavirtualizÄcija. VisizplatÄ«tÄkÄ ierÄ«ces virtualizÄcijas iespÄja KVM un parasti visizplatÄ«tÄkais virtualizÄcijas režīms viesu operÄtÄjsistÄmÄm. TÄs Ä«patnÄ«ba ir tÄda, ka darbs ar dažÄm hipervizora apakÅ”sistÄmÄm (piemÄram, ar tÄ«klu vai diska steku) vai atmiÅas lapu pieŔķirÅ”ana notiek, izmantojot hipervizora API, netulkojot zema lÄ«meÅa komandas. Å Ä«s virtualizÄcijas metodes trÅ«kums ir tÄds, ka viesu operÄtÄjsistÄmas kodols ir jÄmaina, lai tas varÄtu sazinÄties ar hipervizoru, izmantojot Å”o API. Bet tas parasti tiek atrisinÄts, instalÄjot Ä«paÅ”us draiverus viesu operÄtÄjsistÄmÄ. KVM Å”o API sauc
Izmantojot paravirtualizÄciju, salÄ«dzinot ar apraidi, ceļŔ uz fizisko ierÄ«ci tiek ievÄrojami samazinÄts, nosÅ«tot komandas tieÅ”i no virtuÄlÄs maŔīnas uz resursdatora hipervizora procesu. Tas ļauj paÄtrinÄt visu instrukciju izpildi virtuÄlajÄ maŔīnÄ. KVM to veic virtio API, kas darbojas tikai noteiktÄm ierÄ«cÄm, piemÄram, tÄ«kla vai diska adapterim. TÄpÄc virtio draiveri tiek instalÄti virtuÄlajÄs maŔīnÄs.
Å Ä« paÄtrinÄjuma negatÄ«vÄ puse ir tÄda, ka ne visi procesi, kas darbojas virtuÄlajÄ maŔīnÄ, paliek tajÄ. Tas rada dažus specefektus, kas var izraisÄ«t nÄrstoÅ”anu zagÅ”anas gadÄ«jumÄ. Es iesaku sÄkt detalizÄtu Ŕī jautÄjuma izpÄti ar
2.3. "GodÄ«ga" plÄnoÅ”ana
VirtuÄlÄ maŔīna uz hipervizora faktiski ir parasts process, kas pakļaujas plÄnoÅ”anas (resursu sadales starp procesiem) likumiem Linux kodolÄ, tÄpÄc apskatÄ«sim to tuvÄk.
Linux izmanto tÄ saukto CFS, Completely Fair Scheduler, kas ir kļuvis par noklusÄjuma plÄnotÄju kopÅ” kodola 2.6.23. Lai saprastu Å”o algoritmu, varat izlasÄ«t Linux kodola arhitektÅ«ru vai avota kodu. CFS bÅ«tÄ«ba ir sadalÄ«t procesora laiku starp procesiem atkarÄ«bÄ no to izpildes ilguma. Jo vairÄk CPU laika process prasa, jo mazÄk CPU laika tas saÅem. Tas nodroÅ”ina, ka visi procesi tiek izpildÄ«ti "godÄ«gi" - lai viens process nepÄrtraukti nenoslogotu visus procesorus, un arÄ« citi procesi var izpildÄ«ties.
Dažreiz Ŕī paradigma noved pie interesantiem artefaktiem. IlgstoÅ”i Linux lietotÄji, iespÄjams, atceras parastÄ teksta redaktora iesaldÄÅ”anu darbvirsmÄ, palaižot resursietilpÄ«gas lietojumprogrammas, piemÄram, kompilatoru. Tas notika tÄpÄc, ka resursietilpÄ«gi uzdevumi darbvirsmas lietojumprogrammÄs konkurÄja ar resursietilpÄ«giem uzdevumiem, piemÄram, kompilatoru. CFS uzskata, ka tas ir negodÄ«gi, tÄpÄc periodiski aptur teksta redaktoru un ļauj procesoram veikt kompilatora uzdevumus. Tas tika labots, izmantojot mehÄnismu
VÄl viens svarÄ«gs punkts plÄnotÄjÄ ir priekÅ”pirkÅ”ana. Tas ir nepiecieÅ”ams, lai izslÄgtu ÅirgÄÅ”anos no procesora un ļautu citiem strÄdÄt. IzstumÅ”anas procesu sauc par konteksta maiÅu. Å ajÄ gadÄ«jumÄ tiek saglabÄts viss uzdevuma konteksts: steka stÄvoklis, reÄ£istri utt., pÄc kura process tiek nosÅ«tÄ«ts gaidÄ«t, un tÄ vietÄ tiek nosÅ«tÄ«ts cits. Å Ä« operÄtÄjsistÄmai ir dÄrga operÄcija un tiek reti izmantota, taÄu tajÄ nav nekÄ slikta. Bieža konteksta maiÅa var norÄdÄ«t uz problÄmu OS, taÄu parasti tÄ ir nepÄrtraukta un neko Ä«paÅ”i nenorÄda.
Tik garÅ” stÄsts ir vajadzÄ«gs, lai izskaidrotu vienu faktu: jo vairÄk procesora resursu process mÄÄ£ina patÄrÄt godÄ«gÄ Linux plÄnotÄjÄ, jo ÄtrÄk tas tiks apturÄts, lai varÄtu darboties arÄ« citi procesi. Tas ir pareizi vai nÄ, tas ir sarežģīts jautÄjums, ko dažÄdÄs slodzÄs var atrisinÄt atŔķirÄ«gi. OperÄtÄjsistÄmÄ Windows vÄl nesen plÄnotÄjs bija vÄrsts uz darbvirsmas lietojumprogrammu prioritÄro apstrÄdi, kas varÄja izraisÄ«t fona procesu iesaldÄÅ”anu. Sun Solaris bija piecas dažÄdas plÄnotÄju klases. Kad mÄs uzsÄkÄm virtualizÄciju, mÄs pievienojÄm sesto,
2.4. KÄ uzraudzÄ«t zagÅ”anu?
NozagÅ”anas uzraudzÄ«ba virtuÄlajÄ maŔīnÄ, tÄpat kÄ jebkura cita procesora metrika, ir vienkÄrÅ”a: varat izmantot jebkuru procesora metrikas rÄ«ku. Galvenais, lai virtuÄlÄ maŔīna bÅ«tu uz Linux. KÄdu iemeslu dÄļ Windows nesniedz Å”o informÄciju saviem lietotÄjiem. š
AugÅ”ÄjÄs komandas izvade: informÄcija par procesora slodzi, galÄjÄ labajÄ kolonnÄ - zagt
GrÅ«tÄ«bas rodas, mÄÄ£inot iegÅ«t Å”o informÄciju no hipervizora. Varat mÄÄ£inÄt paredzÄt zagÅ”anu resursdatorÄ, piemÄram, izmantojot parametru Load Average (LA) - vidÄjo vÄrtÄ«bu izpildes rindÄ gaidoÅ”o procesu skaitam. Å Ä« parametra aprÄÄ·inÄÅ”anas metode nav vienkÄrÅ”a, taÄu kopumÄ, ja LA, kas normalizÄts ar procesora pavedienu skaitu, ir lielÄks par 1, tas norÄda, ka Linux serveris ir ar kaut ko pÄrslogots.
Ko visi Ŕie procesi gaida? Acīmredzama atbilde ir procesors. Bet atbilde nav pilnīgi pareiza, jo dažreiz procesors ir brīvs, bet LA nokrīt. Atcerieties
VÄl viena LA iezÄ«me ir tÄ, ka tÄ tiek uzskatÄ«ta par operÄtÄjsistÄmas vidÄjo rÄdÄ«tÄju. PiemÄram, 100 procesi sacenÅ”as par vienu failu, un pÄc tam LA=50. Å Ä·iet, ka tik liela vÄrtÄ«ba norÄda, ka operÄtÄjsistÄma ir slikta. Bet citam greizi rakstÄ«tam kodam tas var bÅ«t normÄls stÄvoklis, neskatoties uz to, ka tikai tas ir slikts, un citi operÄtÄjsistÄmas procesi necieÅ”.
Å Ä«s vidÄjÄs noteikÅ”anas dÄļ (un ne mazÄk kÄ minÅ«tÄ) kaut ko noteikt pÄc LA rÄdÄ«tÄja nav tas atalgojoÅ”Äkais uzdevums, jo konkrÄtos gadÄ«jumos rezultÄti ir ļoti neskaidri. Ja mÄÄ£inÄsiet to izdomÄt, jÅ«s atklÄsiet, ka raksti VikipÄdijÄ un citos pieejamajos resursos apraksta tikai visvienkÄrÅ”Äkos gadÄ«jumus, bez dziļa procesa skaidrojuma. Atkal sÅ«tu visiem interesentiem,
3. Specefekti
Tagad apskatÄ«sim galvenos zagÅ”anas gadÄ«jumus, ar kuriem mÄs saskÄrÄmies. Es jums pastÄstÄ«Å”u, kÄ tie izriet no visa iepriekÅ” minÄtÄ un kÄ tie attiecas uz hipervizora indikatoriem.
PÄrstrÄde. VienkÄrÅ”Äkais un visizplatÄ«tÄkais: hipervizors ir izmantots atkÄrtoti. PatieÅ”Äm, ir daudz darbinÄmu virtuÄlo maŔīnu, tajÄs ir liels procesora patÄriÅÅ”, liela konkurence, LA izmantoÅ”ana ir vairÄk nekÄ 1 (normalizÄta ar procesora pavedieniem). Viss visÄs virtuÄlajÄs maŔīnÄs palÄninÄs. Pieaug arÄ« no hipervizora pÄrraidÄ«tÄ zagÅ”ana, nepiecieÅ”ams pÄrdalÄ«t slodzi vai kÄdu izslÄgt. KopumÄ viss ir loÄ£iski un saprotami.
ParavirtualizÄcija salÄ«dzinÄjumÄ ar atseviŔķiem gadÄ«jumiem. HipervizorÄ ir tikai viena virtuÄlÄ maŔīna; tÄ patÄrÄ nelielu tÄs daļu, bet rada lielu I/O slodzi, piemÄram, diskÄ. Un no kaut kurienes tajÄ parÄdÄs neliela zagÅ”ana, lÄ«dz 10% (kÄ liecina vairÄki eksperimenti).
Lieta ir interesanta. Steal Å”eit parÄdÄs tieÅ”i bloÄ·ÄÅ”anas dÄļ paravirtualizÄtu draiveru lÄ«menÄ«. VirtuÄlajÄ maŔīnÄ tiek izveidots pÄrtraukums, ko apstrÄdÄ draiveris un nosÅ«ta hipervizoram. Hipervizora pÄrtraukumu apstrÄdes dÄļ virtuÄlajai maŔīnai tas izskatÄs kÄ nosÅ«tÄ«ts pieprasÄ«jums, tas ir gatavs izpildei un gaida procesoru, bet tam netiek dots procesora laiks. VirtuÄlÄ meitene domÄ, ka Å”is laiks ir nozagts.
Tas notiek brÄ«dÄ«, kad tiek nosÅ«tÄ«ts buferis, tas nonÄk hipervizora kodola telpÄ, un mÄs sÄkam to gaidÄ«t. Lai gan no virtuÄlÄs maŔīnas viedokļa viÅam nekavÄjoties jÄatgriežas. TÄpÄc saskaÅÄ ar zagÅ”anas aprÄÄ·ina algoritmu Å”is laiks tiek uzskatÄ«ts par nozagtu. VisticamÄk, Å”ajÄ situÄcijÄ var bÅ«t arÄ« citi mehÄnismi (piemÄram, dažu citu sys zvanu apstrÄde), taÄu tiem nevajadzÄtu daudz atŔķirties.
PlÄnotÄjs pret augsti noslogotÄm virtuÄlajÄm maŔīnÄm. Ja viena virtuÄlÄ maŔīna cieÅ” no zagÅ”anas vairÄk nekÄ citas, tas notiek plÄnotÄja dÄļ. Jo vairÄk process noslogo procesoru, jo ÄtrÄk plÄnotÄjs to izsitÄ«s, lai arÄ« pÄrÄjie varÄtu strÄdÄt. Ja virtuÄlÄ maŔīna patÄrÄ maz, tÄ gandrÄ«z neredzÄs zagÅ”anu: tÄs process godÄ«gi sÄdÄja un gaidÄ«ja, mums ir jÄdod tai vairÄk laika. Ja virtuÄlÄ maŔīna rada maksimÄlo slodzi uz visiem tÄs kodoliem, tÄ bieži tiek izmesta no procesora, un viÅi cenÅ”as tai nedot daudz laika.
Tas ir vÄl sliktÄk, ja procesi virtuÄlajÄ maŔīnÄ mÄÄ£ina iegÅ«t vairÄk procesora, jo tie nevar tikt galÄ ar datu apstrÄdi. Tad hipervizora operÄtÄjsistÄma godÄ«gas optimizÄcijas dÄļ nodroÅ”inÄs arvien mazÄk procesora laika. Å is process notiek kÄ lavÄ«na, un zagÅ”ana lec debesÄ«s, lai gan citas virtuÄlÄs maŔīnas to gandrÄ«z nepamanÄ«s. Un jo vairÄk kodolu, jo sliktÄk ir ietekmÄtÄ maŔīna. ÄŖsÄk sakot, visvairÄk cieÅ” ļoti noslogotas virtuÄlÄs maŔīnas ar daudziem kodoliem.
Zema LA, bet ir zagt. Ja LA ir aptuveni 0,7 (tas ir, Ŕķiet, ka hipervizors ir nepietiekami noslogots), bet atseviŔķÄs virtuÄlajÄs maŔīnÄs tiek novÄrota zagÅ”ana:
- IepriekÅ” aprakstÄ«tÄ opcija ar paravirtualizÄciju. VirtuÄlÄ maŔīna var saÅemt metriku, kas norÄda uz zagÅ”anu, lai gan hipervizors ir kÄrtÄ«bÄ. SaskaÅÄ ar mÅ«su eksperimentu rezultÄtiem Ŕī nozagÅ”anas iespÄja nepÄrsniedz 10%, un tai nevajadzÄtu bÅ«tiski ietekmÄt lietojumprogrammu veiktspÄju virtuÄlajÄ maŔīnÄ.
- LA parametrs ir aprÄÄ·inÄts nepareizi. PrecÄ«zÄk, katrÄ konkrÄtajÄ brÄ«dÄ« tas tiek aprÄÄ·inÄts pareizi, bet, rÄÄ·inot vidÄji par vienu minÅ«ti, tas izrÄdÄs nenovÄrtÄts. PiemÄram, ja viena virtuÄlÄ maŔīna uz treÅ”daļu hipervizora patÄrÄ visus savus procesorus tieÅ”i pusminÅ«ti, tad LA minÅ«tÄ hipervizorÄ bÅ«s 0,15; Äetras Å”Ädas virtuÄlÄs maŔīnas, kas strÄdÄ vienlaicÄ«gi, dos 0,6. Un to, ka uz katra pusminÅ«ti bija wild steal uz 25% pÄc LA rÄdÄ«tÄja, vairs nevar izvilkt.
- Atkal dÄļ plÄnotÄja, kurÅ” nolÄma, ka kÄds Äd par daudz, un ļÄva tam gaidÄ«t. TikmÄr es pÄrslÄgÅ”u kontekstu, apstrÄdÄÅ”u pÄrtraukumus un parÅ«pÄÅ”os par citÄm svarÄ«gÄm sistÄmas lietÄm. RezultÄtÄ dažas virtuÄlÄs maŔīnas nesaskata nekÄdas problÄmas, savukÄrt citas piedzÄ«vo nopietnu veiktspÄjas pasliktinÄÅ”anos.
4. Citi kropļojumi
Ir vÄl miljons iemeslu, lai izkropļotu godÄ«gu procesora laika atdevi virtuÄlajÄ maŔīnÄ. PiemÄram, hiperpavediens un NUMA rada grÅ«tÄ«bas aprÄÄ·inos. Tie pilnÄ«bÄ sajauc kodola izvÄli procesa izpildei, jo plÄnotÄjs izmanto koeficientus - svarus, kas, pÄrslÄdzot kontekstu, aprÄÄ·inu padara vÄl grÅ«tÄku.
Izkropļojumi rodas tÄdu tehnoloÄ£iju dÄļ kÄ turbo boost vai, gluži otrÄdi, enerÄ£ijas taupÄ«Å”anas režīms, kas, aprÄÄ·inot noslodzi, var mÄkslÄ«gi palielinÄt vai samazinÄt servera frekvenci vai pat laika ŔķÄli. Turbo boost iespÄjoÅ”ana samazina viena procesora pavediena veiktspÄju, jo palielinÄs cita procesora veiktspÄja. Å obrÄ«d uz virtuÄlo maŔīnu netiek pÄrsÅ«tÄ«ta informÄcija par paÅ”reizÄjo procesora frekvenci, un tÄ uzskata, ka kÄds zog tÄs laiku (piemÄram, prasÄ«ja 2 GHz, bet saÅÄma pusi mazÄk).
KopumÄ izkropļojumam var bÅ«t daudz iemeslu. JÅ«s varat atrast kaut ko citu konkrÄtÄ sistÄmÄ. LabÄk ir sÄkt ar grÄmatÄm, uz kurÄm iepriekÅ” sniedzu saites, un statistikas izgÅ«Å”anu no hipervizora, izmantojot tÄdas utilÄ«tas kÄ perf, sysdig, systemtap, no kurÄm
5. SecinÄjumi
- ParavirtualizÄcijas dÄļ var rasties zinÄms zagÅ”anas apjoms, un to var uzskatÄ«t par normÄlu. ViÅi raksta internetÄ, ka Ŕī vÄrtÄ«ba var bÅ«t 5-10%. Tas ir atkarÄ«gs no lietojumprogrammÄm virtuÄlajÄ maŔīnÄ un no slodzes, ko tÄ rada savÄm fiziskajÄm ierÄ«cÄm. Å eit ir svarÄ«gi pievÄrst uzmanÄ«bu tam, kÄ lietojumprogrammas jÅ«tas virtuÄlajÄs maŔīnÄs.
- Hipervizora slodzes un zagÅ”anas attiecÄ«ba virtuÄlajÄ maŔīnÄ ne vienmÄr ir skaidri savstarpÄji saistÄ«ta; abi zagÅ”anas aprÄÄ·ini var bÅ«t kļūdaini noteiktÄs situÄcijÄs ar dažÄdÄm slodzÄm.
- PlÄnotÄjam ir slikta attieksme pret procesiem, kas prasa daudz. ViÅÅ” cenÅ”as dot mazÄk tiem, kas prasa vairÄk. Lielas virtuÄlÄs maŔīnas ir ļaunas.
- Neliela zagÅ”ana var bÅ«t norma pat bez paravirtualizÄcijas (Åemot vÄrÄ slodzi virtuÄlajÄ maŔīnÄ, kaimiÅu slodzes Ä«paŔības, slodzes sadalÄ«jumu pa pavedieniem un citus faktorus).
- Ja vÄlaties izdomÄt zagÅ”anu konkrÄtÄ sistÄmÄ, jums ir jÄizpÄta dažÄdas iespÄjas, jÄapkopo rÄdÄ«tÄji, rÅ«pÄ«gi jÄanalizÄ un jÄdomÄ, kÄ vienmÄrÄ«gi sadalÄ«t slodzi. Ir iespÄjamas novirzes no jebkuriem gadÄ«jumiem, kas ir jÄapstiprina eksperimentÄli vai jÄapskata kodola atkļūdotÄjs.
Avots: www.habr.com