Vòlè: ki moun ki vòlè tan CPU nan machin vityèl

Vòlè: ki moun ki vòlè tan CPU nan machin vityèl

Bonjou! Mwen vle di ou an tèm senp sou mekanik yo nan vòlè andedan machin vityèl ak sou kèk zafè ki pa evidan ke nou jere yo chèche konnen pandan rechèch li yo, ki mwen te oblije plonje nan kòm yon direktè teknik nan yon platfòm nwaj. Mail.ru Cloud Solutions. Platfòm lan kouri sou KVM.

CPU vòlè tan se tan pandan machin vityèl la pa resevwa resous processeur pou ekzekisyon li. Tan sa a se sèlman konte nan sistèm operasyon envite nan anviwònman Virtualization. Rezon ki fè yo pou kote resous sa yo ki pi atribye ale, tankou nan lavi, yo trè vag. Men, nou deside kalkile li soti, e menm te pote soti yon kantite eksperyans. Se pa ke nou kounye a konnen tout bagay sou vòlè, men nou pral di ou yon bagay ki enteresan kounye a.

1. Ki sa ki vòlè

Se konsa, vòlè se yon metrik ki endike yon mank de tan processeur pou pwosesis andedan yon machin vityèl. Jan sa dekri nan patch nwayo KVM laDiskresyon se tan pandan hypervisor la ap egzekite lòt pwosesis sou eksplwatasyon an lame menm si li te file pwosesis machin vityèl la pou ekzekisyon. Sa vle di, vòlè kalkile kòm diferans ki genyen ant tan an lè pwosesis la pare pou egzekite ak tan an lè pwosesis la resevwa tan processeur.

Kernel machin vityèl la resevwa metrik vòlè nan hypervisor la. An menm tan an, hypervisor la pa presize egzakteman ki lòt pwosesis li ap kouri, li tou senpleman di "pandan mwen okipe, mwen pa ka ba ou tan." Sou KVM, yo te ajoute sipò pou kalkil vòlè plak. Gen de pwen kle isit la:

  • Machin vityèl la aprann sou vòlè nan hypervisor la. Sa vle di, nan pwen de vi pèt, pou pwosesis sou machin vityèl tèt li, sa a se yon mezi endirèk ki ka sijè a divès kalite deformation.
  • Hypervisor la pa pataje enfòmasyon ak machin vityèl la sou ki lòt bagay li ap fè - bagay prensipal la se ke li pa konsakre tan pou li. Poutèt sa, machin vityèl nan tèt li pa ka detekte deformation nan endikatè a vòlè, ki ta ka evalye pa nati a nan pwosesis konpetisyon.

2. Ki sa ki afekte vòlè

2.1. Vòlè kalkil

Esansyèlman, vòlè kalkile apeprè menm jan ak tan nòmal itilizasyon CPU. Pa gen anpil enfòmasyon sou fason yo konsidere resiklaj. Pwobableman paske pifò moun konsidere kesyon sa a evidan. Men, gen tou enkonvenyans isit la. Pou familyarize w ak pwosesis sa a, ou ka li atik pa Brendan Gregg: ou pral aprann sou anpil nuans lè w ap kalkile itilizasyon ak sou sitiyasyon kote kalkil sa a pral erè pou rezon sa yo:

  • Pwosesè a chofe, sa ki lakòz sik sote.
  • Pèmèt / enfim turbo ogmantasyon, ki chanje frekans revèy processeur a.
  • Yon chanjman nan longè tranch tan ki fèt lè w ap itilize teknoloji pou ekonomize pouvwa processeur tankou SpeedStep.
  • Pwoblèm nan ak kalkile mwayèn nan: estime itilizasyon yon minit nan 80% ka kache yon pete kout tèm nan 100%.
  • Yon seri vire lakòz processeur a dwe reklame, men pwosesis itilizatè a pa wè okenn pwogrè nan ekzekisyon li. Kòm yon rezilta, itilizasyon pwosesis la kalkile pa pwosesis la pral san pousan, byenke pwosesis la pa pral fizikman konsome tan processeur.

Mwen pa jwenn yon atik ki dekri yon kalkil ki sanble pou vòlè (si ou konnen, pataje li nan kòmantè yo). Men, jije pa kòd sous la, mekanis kalkil la se menm jan ak resiklaj. Senpleman, yo ajoute yon lòt kontwa nan nwayo a, dirèkteman pou pwosesis la KVM (pwosesis machin vityèl), ki konte dire a nan pwosesis la KVM ap tann pou tan CPU. Kontwa a pran enfòmasyon sou processeur a nan spesifikasyon li yo epi tcheke si tout tik li yo itilize pa pwosesis machin vityèl la. Si sa a tout, Lè sa a, nou sipoze ke processeur a te sèlman okipe ak pwosesis la machin vityèl. Sinon, nou enfòme ke processeur a te fè yon lòt bagay, vòlè parèt.

Pwosesis konte vòl la sijè a menm pwoblèm ak konte resiklaj regilye. Nou pa di ke pwoblèm sa yo parèt souvan, men yo sanble dekouraje.

2.2. Kalite Virtualization sou KVM

An jeneral, gen twa kalite Virtualization, yo tout sipòte pa KVM. Mekanis nan vòlè ensidan an ka depann de ki kalite Virtualization.

Emisyon. Nan ka sa a, operasyon an nan sistèm operasyon machin vityèl la ak aparèy hypervisor fizik rive yon bagay tankou sa a:

  1. Sistèm operasyon envite voye yon kòmand nan aparèy envite li yo.
  2. Chofè aparèy envite resevwa kòmandman an, jenere yon demann pou BIOS aparèy la epi voye li bay hypervisor la.
  3. Pwosesis hypervisor la tradui kòmandman an kòmand pou aparèy fizik la, fè li, pami lòt bagay, pi an sekirite.
  4. Chofè aparèy fizik la aksepte kòmandman modifye a epi voye li nan aparèy fizik la li menm.
  5. Rezilta yo nan egzekite kòmandman yo tounen sou menm chemen an.

Avantaj nan tradiksyon se ke li pèmèt ou imite nenpòt aparèy epi li pa mande pou preparasyon espesyal nan nwayo a sistèm opere. Men, ou dwe peye pou sa a, anvan tout bagay, nan vitès.

Virtualization pyès ki nan konpitè. Nan ka sa a, aparèy la nan nivo pyès ki nan konpitè konprann kòmandman nan sistèm operasyon an. Sa a se fason ki pi rapid ak pi bon. Men, malerezman, li pa sipòte pa tout aparèy fizik, hypervisors ak sistèm operasyon envite. Kounye a, aparèy prensipal yo ki sipòte Virtualization pyès ki nan konpitè yo se processeurs.

Paravirtualization. Opsyon ki pi komen pou Virtualization aparèy sou KVM epi jeneralman mòd Virtualization ki pi komen pou sistèm operasyon envite yo. Espesyalite li se ke travay ak kèk subsistèm hypervisor (pa egzanp, ak rezo a oswa pile ki gen kapasite) oswa alokasyon nan paj memwa rive lè l sèvi avèk API a hypervisor, san yo pa tradui kòmandman ki ba nivo. Dezavantaj nan metòd Virtualization sa a se ke nwayo a sistèm operasyon envite dwe modifye pou li ka kominike ak hypervisor la lè l sèvi avèk API sa a. Men, sa a anjeneral rezoud pa enstale chofè espesyal sou sistèm nan operasyon envite. Nan KVM yo rele API sa a virtio API.

Avèk paravirtualization, konpare ak difize, chemen an nan aparèy fizik la siyifikativman redwi lè yo voye kòmandman dirèkteman nan machin vityèl la nan pwosesis la hypervisor sou lame a. Sa a pèmèt ou akselere ekzekisyon tout enstriksyon andedan machin vityèl la. Nan KVM, sa a se fè pa virtio API a, ki travay sèlman pou sèten aparèy, tankou yon rezo oswa adaptè disk. Se poutèt sa chofè virtio yo enstale andedan machin vityèl.

Dezavantaj nan akselerasyon sa a se ke se pa tout pwosesis ki kouri andedan machin nan vityèl rete andedan li. Sa a kreye kèk efè espesyal ki ka lakòz anjandre sou vòlè. Mwen rekòmande kòmanse yon etid detaye sou pwoblèm sa a ak Yon API pou I/O vityèl: virtio.

2.3. "Fwa" orè

Yon machin vityèl sou yon hypervisor se, an reyalite, yon pwosesis òdinè ki obeyi lwa yo nan orè (distribisyon resous ant pwosesis) nan nwayo Linux la, kidonk kite a pran yon gade pi pre sou li.

Linux sèvi ak sa yo rele CFS la, Completely Fair Scheduler, ki te vin pwogramasyon an default depi kernel 2.6.23. Pou konprann algorithm sa a, ou ka li Linux Kernel Architecture oswa kòd sous la. Sans nan CFS se distribye tan processeur ant pwosesis depann sou dire a nan ekzekisyon yo. Plis tan CPU yon pwosesis mande, mwens tan CPU li resevwa. Sa a asire ke tout pwosesis yo egzekite "san patipri" - se konsa ke yon pwosesis pa toujou ap okipe tout processeurs, ak lòt pwosesis ka egzekite tou.

Pafwa paradigm sa a mennen nan zafè enteresan. Itilizatè Linux ki gen lontan yo pwobableman sonje konjelasyon an nan yon editè tèks regilye sou yon Desktop pandan y ap kouri aplikasyon pou resous entansif tankou yon du. Sa te rive paske travay ki pa gen anpil resous nan aplikasyon pou Desktop yo te fè konpetisyon ak travay ki gen anpil resous, tankou du a. CFS panse sa a se enjis, kidonk li detanzantan sispann editè tèks la epi kite processeur a okipe travay konpilatè a. Sa a te korije lè l sèvi avèk yon mekanis sched_autogroup, men anpil lòt karakteristik nan distribisyon an nan tan processeur ant travay rete. Aktyèlman, sa a se pa yon istwa sou ki jan move tout bagay se nan CFS, men yon tantativ atire atansyon sou lefèt ke distribisyon "jis" nan tan processeur se pa travay ki pi trivial.

Yon lòt pwen enpòtan nan pwogramè a se preemption. Sa a se nesesè yo choute pwosesis la snickering nan processeur a epi kite lòt moun travay. Pwosesis ekspilsyon an rele chanjman kontèks. Nan ka sa a, tout kontèks la nan travay la konsève: eta a nan chemine a, enskri, elatriye, apre yo fin ki pwosesis la voye yo rete tann, ak yon lòt pran plas li. Sa a se yon operasyon chè pou eksplwatasyon an epi li se raman itilize, men pa gen anyen natirèlman mal ak li. Chanje kontèks souvan ka endike yon pwoblèm nan eksplwatasyon an, men anjeneral li se kontinyèl epi li pa endike anyen an patikilye.

Yon istwa long konsa nesesè pou eksplike yon reyalite: plis resous processeur yon pwosesis ap eseye konsome nan yon planifikatè Linux onèt, pi vit li pral sispann pou lòt pwosesis ka travay tou. Kit sa a kòrèk oswa ou pa se yon kesyon konplèks ki ka rezoud yon fason diferan anba chaj diferan. Nan Windows, jiska dènyèman, pwogramasyon an te konsantre sou pwosesis priyorite nan aplikasyon pou Desktop, ki ta ka lakòz pwosesis background yo friz. Sun Solaris te gen senk klas diferan nan orè. Lè nou te lanse Virtualization, nou te ajoute yon sizyèm, Orè pataje jis, paske senk anvan yo pa t 'travay byen ak Virtualization Solaris Zones. Mwen rekòmande pou kòmanse yon etid detaye sou pwoblèm sa a ak liv tankou Solaris Internals: Solaris 10 ak OpenSolaris Kernel Architecture oswa Konprann Kernel Linux la.

2.4. Ki jan yo kontwole vòlè?

Siveyans vòlè andedan yon machin vityèl, tankou nenpòt lòt metrik processeur, se senp: ou ka itilize nenpòt zouti metrik processeur. Bagay pwensipal lan se ke machin vityèl la se sou Linux. Pou kèk rezon, Windows pa bay itilizatè li yo enfòmasyon sa yo. 🙁

Vòlè: ki moun ki vòlè tan CPU nan machin vityèl
Sòti nan lòd la tèt: detay sou chaj la processeur, nan kolòn ki pi dwat la - vòlè

Difikilte a rive lè w ap eseye jwenn enfòmasyon sa a nan hypervisor la. Ou ka eseye predi vòlè sou machin lame a, pou egzanp, lè l sèvi avèk paramèt Chaj Mwayèn (LA) - valè an mwayèn nan kantite pwosesis k ap tann nan keu ekzekisyon an. Metòd la pou kalkile paramèt sa a se pa senp, men an jeneral, si LA nòmalize pa kantite fil processeur se plis pase 1, sa a endike ke sèvè Linux la twò chaje ak yon bagay.

Kisa tout pwosesis sa yo ap tann? Repons lan evidan se processeur a. Men, repons lan pa totalman kòrèk, paske pafwa processeur a gratis, men LA ale nan echèl. Sonje ki jan NFS tonbe ak ki jan LA ap grandi. Menm bagay la tou ka rive ak yon disk ak lòt aparèy opinyon / pwodiksyon. Men, an reyalite, pwosesis yo ka tann pou fen nenpòt fèmen, swa fizik, ki asosye ak yon aparèy I/O, oswa lojik, tankou yon mutex. Sa a gen ladan tou bloke nan nivo pyès ki nan konpitè (menm repons lan soti nan disk la), oswa lojik (sa yo rele primitif yo bloke, ki gen ladann yon pakèt moun sou antite, mutex adaptasyon ak vire, semafò, varyab kondisyon, rw kadna, kadna ipc. ...).

Yon lòt karakteristik nan LA se ke li konsidere kòm yon mwayèn sistèm opere. Pou egzanp, 100 pwosesis ap konpetisyon pou yon dosye, ak Lè sa a, LA = 50. Tankou yon gwo valè ta sanble endike ke sistèm operasyon an se move. Men, pou lòt kòd kwochi ekri, sa a ka yon eta nòmal, malgre lefèt ke sèlman li se move, ak lòt pwosesis nan sistèm nan fonksyone pa soufri.

Poutèt sa a mwayèn (ak nan pa mwens pase yon minit), detèmine anyen pa endikatè LA se pa travay ki pi rekonpanse, ak rezilta trè ensèten nan ka espesifik. Si w eseye kalkile li, w ap jwenn ke atik sou Wikipedya ak lòt resous ki disponib yo dekri sèlman ka ki pi senp yo, san yo pa yon eksplikasyon pwofon sou pwosesis la. Mwen voye tout moun ki enterese, ankò, isit la pou Brendan Gregg  - swiv lyen ki anba yo. Ki moun ki twò parese pou pale angle - tradiksyon atik popilè li sou LA.

3. Efè espesyal

Koulye a, kite a gade nan ka prensipal yo nan vòl ke nou te rankontre. Mwen pral di w ki jan yo swiv nan tout sa ki anwo yo ak ki jan yo gen rapò ak endikatè yo sou hypervisor la.

Resiklaj. Pi senp la ak pi komen: hypervisor la te reyitilize. Vreman vre, gen yon anpil nan kouri machin vityèl, gwo konsomasyon processeur andedan yo, yon anpil nan konpetisyon, itilizasyon LA se plis pase 1 (normalize pa fil processeur). Tout bagay andedan tout machin vityèl ralanti. Vòlè transmèt soti nan hypervisor la ap grandi tou, li nesesè redistribiye chaj la oswa fèmen yon moun. An jeneral, tout bagay se lojik ak konprann.

Paravirtualization vs Single Enstans. Gen sèlman yon machin vityèl sou hypervisor la; li konsome yon ti pati nan li, men li pwodui yon gwo chaj I / O, pou egzanp sou disk. Ak soti nan yon kote yon ti vòlè parèt nan li, jiska 10% (jan yo montre pa plizyè eksperyans).

Ka a enteresan. Vòlè parèt isit la jisteman paske yo te bloke nan nivo chofè paravirtualized. Yon entèwonp kreye andedan machin vityèl la, chofè a trete epi li voye l nan hypervisor la. Akòz manyen entèwonp la sou hypervisor la, pou machin vityèl la sanble yon demann voye, li pare pou egzekisyon epi li ap tann processeur a, men li pa bay tan processeur. Ti fi a vityèl panse ke tan sa a te vòlè.

Sa rive nan moman an voye tanpon an, li ale nan espas nwayo a nan hypervisor la, epi nou kòmanse ap tann pou li. Malgre ke, nan pwen de vi nan machin nan vityèl, li ta dwe retounen imedyatman. Se poutèt sa, dapre algorithm nan kalkil vòlè, fwa sa a konsidere kòm vòlè. Gen plis chans, nan sitiyasyon sa a ka gen lòt mekanis (pa egzanp, trete kèk lòt apèl sistèm), men yo pa ta dwe anpil diferan.

Planifikatè kont machin vityèl ki chaje anpil. Lè yon machin vityèl soufri nan vòlè plis pase lòt moun, sa a se akòz orè a. Plis yon pwosesis chaje processeur a, pi bonè pwogramè a pral mete l deyò pou lòt moun yo ka travay tou. Si machin nan vityèl konsome ti kras, li pral diman wè vòlè: pwosesis li yo onètman chita epi tann, nou bezwen bay li plis tan. Si yon machin vityèl pwodui chaj maksimòm sou tout nwayo li yo, li souvan mete l deyò nan processeur a epi yo eseye pa bay li anpil tan.

Li pi mal toujou lè pwosesis andedan machin vityèl la eseye jwenn plis processeur paske yo pa ka fè fas ak pwosesis done. Lè sa a, sistèm nan fonksyone sou hypervisor la, akòz optimize onèt, pral bay mwens ak mwens tan processeur. Pwosesis sa a rive tankou yon lavalas, ak vòlè so nan syèl la, byenke lòt machin vityèl ka diman remake li. Ak plis nwayo yo, pi mal machin ki afekte a. Nan ti bout tan, machin vityèl trè chaje ak anpil nwayo soufri pi plis.

Low LA, men gen vòlè. Si LA se apeprè 0,7 (ki vle di, ipèvizè a sanble pa chaje), men yo obsève vòlè andedan machin vityèl endividyèl yo:

  • Opsyon an ak paravirtualization deja dekri pi wo a. Machin vityèl la ka resevwa mezi ki endike vòlè, byenke ipèvizè a byen. Dapre rezilta yo nan eksperyans nou yo, opsyon vòlè sa a pa depase 10% epi li pa ta dwe gen yon enpak siyifikatif sou pèfòmans aplikasyon yo andedan machin vityèl la.
  • Paramèt LA yo kalkile mal. Plis jisteman, nan chak moman espesifik li kalkile kòrèkteman, men lè mwayèn sou yon minit li vire soti yo dwe souzèstime. Pou egzanp, si yon machin vityèl pou chak tyè nan hypervisor la konsome tout processeurs li yo pou egzakteman mwatye yon minit, Lè sa a, LA pou chak minit sou hypervisor la pral 0,15; kat sa yo machin vityèl k ap travay ansanm pral bay 0,6. Ak lefèt ke pou mwatye yon minit sou chak nan yo te gen yon vòlè sovaj nan 25% dapre endikatè a LA pa ka rale deyò.
  • Yon fwa ankò, paske nan pwogramè a ki te deside ke yon moun te manje twòp epi kite ke yon moun rete tann. Antretan, mwen pral chanje kontèks la, jere entèwonp ak pran swen lòt bagay sistèm enpòtan. Kòm yon rezilta, kèk machin vityèl pa wè okenn pwoblèm, pandan ke lòt moun fè eksperyans degradasyon pèfòmans grav.

4. Lòt deformation

Gen yon milyon plis rezon pou defòme retounen jis nan tan processeur sou yon machin vityèl. Pou egzanp, hyperthreading ak NUMA prezante difikilte nan kalkil. Yo konplètman konfonn chwa nan nwayo pou egzekite pwosesis la, paske orè a sèvi ak koyefisyan - pwa, ki fè kalkil la menm pi difisil lè chanje kontèks la.

Gen deformasyon akòz teknoloji tankou turbo boost oswa, kontrèman, mòd ekonomize enèji, ki, lè w ap kalkile itilizasyon, ka atifisyèlman ogmante oswa diminye frekans lan oswa menm tranch tan an sou sèvè a. Pèmèt turbo boost diminye pèfòmans yon fil processeur akòz yon ogmantasyon nan pèfòmans yon lòt. Nan moman sa a, enfòmasyon sou frekans processeur aktyèl la pa transmèt nan machin vityèl la, epi li kwè ke yon moun ap vòlè tan li (pa egzanp, li te mande 2 GHz, men li te resevwa mwatye sa).

An jeneral, ka gen anpil rezon pou deformation. Ou ka jwenn yon lòt bagay sou yon sistèm patikilye. Li pi bon pou kòmanse ak liv kote mwen te bay lyen anlè yo, epi rekipere estatistik nan hypervisor la lè l sèvi avèk sèvis piblik tankou perf, sysdig, systemtap, ki plizyè douzèn.

5. Konklizyon

  1. Gen kèk kantite vòlè ka rive akòz paravirtualization, epi li ka konsidere kòm nòmal. Yo ekri sou entènèt la ke valè sa a ka 5-10%. Sa depann de aplikasyon yo andedan machin vityèl la ak chaj li mete sou aparèy fizik li yo. Isit la li enpòtan pou peye atansyon sou ki jan aplikasyon yo santi yo andedan machin vityèl.
  2. Rapò chaj la sou ipèvizè a ak vòlè andedan machin vityèl la pa toujou klèman relye; tou de estimasyon vòlè yo ka erè nan sitiyasyon espesifik anba chaj diferan.
  3. Planifikatè a gen yon move atitid anvè pwosesis ki mande anpil. Li eseye bay mwens moun ki mande plis. Gwo machin vityèl yo se sa ki mal.
  4. Yon ti kras vòlè ka nòmal la menm san yo pa paravirtualization (pran an kont chaj la andedan machin nan vityèl, karakteristik sa yo nan chaj la nan vwazen, distribisyon chaj atravè fil ak lòt faktè).
  5. Si ou vle konnen vòlè nan yon sistèm espesifik, ou dwe eksplore opsyon divès kalite, kolekte mezi, ak anpil atansyon analize yo epi reflechi sou ki jan yo respire distribye chay la. Devyasyon nan nenpòt ka yo posib, ki dwe konfime eksperimantal oswa gade nan debogaj nwayo a.

Sous: www.habr.com

Add nouvo kòmantè