Kuiba: ni nani anayeiba wakati wa CPU kutoka kwa mashine pepe

Kuiba: ni nani anayeiba wakati wa CPU kutoka kwa mashine pepe

Habari! Ninataka kukuambia kwa maneno rahisi kuhusu mechanics ya kuiba ndani ya mashine pepe na kuhusu baadhi ya mabaki yasiyo ya dhahiri ambayo tuliweza kujua wakati wa utafiti wake, ambayo ilibidi nizame kama mkurugenzi wa kiufundi wa jukwaa la wingu. Mail.ru Cloud Solutions. Jukwaa linaendeshwa kwa KVM.

Muda wa kuiba wa CPU ni wakati ambapo mashine pepe haipokei rasilimali za kichakataji kwa utekelezaji wake. Wakati huu unahesabiwa tu katika mifumo ya uendeshaji ya wageni katika mazingira ya uboreshaji. Sababu za mahali ambapo rasilimali hizi zilizotengwa zaidi huenda, kama katika maisha, hazieleweki sana. Lakini tuliamua kuigundua, na hata tulifanya majaribio kadhaa. Sio kwamba sasa tunajua kila kitu kuhusu kuiba, lakini tutakuambia jambo la kuvutia sasa.

1. Kuiba ni nini

Kwa hivyo, kuiba ni kipimo kinachoonyesha ukosefu wa muda wa kichakataji kwa michakato ndani ya mashine pepe. Kama ilivyoelezwa kwenye kiraka cha kernel cha KVMStealth ni wakati ambapo hypervisor inatekeleza michakato mingine kwenye OS mwenyeji ingawa imeweka foleni mchakato wa mashine pepe kwa ajili ya utekelezaji. Hiyo ni, kuiba kunahesabiwa kama tofauti kati ya wakati ambapo mchakato uko tayari kutekelezwa na wakati ambao mchakato umetengwa wakati wa kichakataji.

Kiini cha mashine pepe hupokea kipimo cha wizi kutoka kwa hypervisor. Wakati huo huo, hypervisor haielezei ni michakato gani mingine inayoendesha, inasema tu "wakati nina shughuli nyingi, siwezi kukupa wakati." Kwenye KVM, usaidizi wa kukokotoa wizi umeongezwa mabaka. Kuna mambo mawili muhimu hapa:

  • Mashine pepe hujifunza kuhusu kuiba kutoka kwa hypervisor. Hiyo ni, kutoka kwa mtazamo wa hasara, kwa michakato kwenye mashine ya kawaida yenyewe hii ni kipimo cha moja kwa moja ambacho kinaweza kuwa chini ya upotovu mbalimbali.
  • Hypervisor haishiriki habari na mashine ya kawaida juu ya kile kingine kinachofanya - jambo kuu ni kwamba haitoi wakati wake. Kwa sababu ya hili, mashine ya kawaida yenyewe haiwezi kugundua upotovu katika kiashiria cha kuiba, ambacho kinaweza kutathminiwa na asili ya michakato ya ushindani.

2. Nini huathiri kuiba

2.1. Kuiba hesabu

Kimsingi, kuiba kunakokotolewa takriban sawa na muda wa kawaida wa matumizi ya CPU. Hakuna habari nyingi kuhusu jinsi urejeleaji unavyozingatiwa. Labda kwa sababu watu wengi wanaona swali hili wazi. Lakini pia kuna mitego hapa. Ili kujitambulisha na mchakato huu, unaweza kusoma makala na Brendan Gregg: utajifunza juu ya nuances nyingi wakati wa kuhesabu utumiaji na juu ya hali wakati hesabu hii itakuwa na makosa kwa sababu zifuatazo:

  • Kichakataji kinazidi joto, na kusababisha mizunguko kuruka.
  • Washa/lemaza kiboreshaji cha turbo, ambacho hubadilisha mzunguko wa saa ya kichakataji.
  • Mabadiliko katika urefu wa kipande cha wakati kinachotokea wakati wa kutumia teknolojia za kuokoa nguvu za kichakataji kama vile SpeedStep.
  • Tatizo la kuhesabu wastani: kukadiria utumiaji wa dakika moja kwa 80% kunaweza kuficha mlipuko wa muda mfupi wa 100%.
  • Kufuli inayozunguka husababisha kichakataji kurejeshwa, lakini mchakato wa mtumiaji hauoni maendeleo yoyote katika utekelezaji wake. Kama matokeo, utumiaji wa kichakataji uliohesabiwa kwa mchakato utakuwa asilimia mia moja, ingawa mchakato hautatumia wakati wa kichakataji.

Sijapata nakala inayoelezea hesabu sawa ya wizi (ikiwa unajua, shiriki kwenye maoni). Lakini, kwa kuzingatia msimbo wa chanzo, utaratibu wa kuhesabu ni sawa na wa kuchakata tena. Kwa urahisi, kihesabu kingine kinaongezwa kwenye kernel, moja kwa moja kwa mchakato wa KVM (mchakato wa mashine halisi), ambao huhesabu muda wa mchakato wa KVM unaosubiri wakati wa CPU. Kaunta huchukua maelezo kuhusu kichakataji kutoka kwa vipimo vyake na hukagua kama tiki zake zote zinatumiwa na mchakato wa mashine pepe. Ikiwa ndivyo tu, basi tunadhani kwamba processor ilikuwa imechukuliwa tu na mchakato wa mashine ya kawaida. Vinginevyo, tunajulisha kwamba processor ilikuwa ikifanya kitu kingine, kuiba kulionekana.

Mchakato wa kuhesabu wizi unakabiliwa na matatizo sawa na kuhesabu upya mara kwa mara. Sio kusema kwamba shida kama hizo huonekana mara nyingi, lakini zinaonekana kukatisha tamaa.

2.2. Aina za uboreshaji kwenye KVM

Kwa ujumla, kuna aina tatu za uboreshaji, ambazo zote zinaungwa mkono na KVM. Utaratibu wa kutokea kwa wizi unaweza kutegemea aina ya uboreshaji.

Matangazo. Katika kesi hii, uendeshaji wa mfumo wa uendeshaji wa mashine na vifaa vya hypervisor ya kimwili hutokea kama hii:

  1. Mfumo wa uendeshaji wa mgeni hutuma amri kwa kifaa chake cha mgeni.
  2. Dereva wa kifaa cha mgeni hupokea amri, hutoa ombi la BIOS ya kifaa na kuituma kwa hypervisor.
  3. Mchakato wa hypervisor hutafsiri amri ya amri kwa kifaa cha kimwili, na kuifanya, kati ya mambo mengine, salama zaidi.
  4. Kiendeshi cha kifaa halisi hukubali amri iliyorekebishwa na kuituma kwa kifaa halisi chenyewe.
  5. Matokeo ya kutekeleza amri hurudi nyuma kwa njia ile ile.

Faida ya tafsiri ni kwamba inakuwezesha kuiga kifaa chochote na hauhitaji maandalizi maalum ya kernel ya mfumo wa uendeshaji. Lakini unapaswa kulipa kwa hili, kwanza kabisa, kwa kasi.

Uboreshaji wa vifaa. Katika kesi hii, kifaa katika ngazi ya vifaa huelewa amri kutoka kwa mfumo wa uendeshaji. Hii ndiyo njia ya haraka na bora zaidi. Lakini, kwa bahati mbaya, haijaungwa mkono na vifaa vyote vya kimwili, hypervisors na mifumo ya uendeshaji ya wageni. Hivi sasa, vifaa kuu vinavyounga mkono uboreshaji wa vifaa ni wasindikaji.

Paravirtualization. Chaguo la kawaida la uboreshaji wa kifaa kwenye KVM na kwa ujumla hali ya kawaida ya uboreshaji kwa mifumo ya uendeshaji ya wageni. Upekee wake ni kwamba kazi na baadhi ya mifumo ndogo ya hypervisor (kwa mfano, na mtandao au hifadhi ya disk) au ugawaji wa kurasa za kumbukumbu hutokea kwa kutumia API ya hypervisor, bila kutafsiri amri za kiwango cha chini. Ubaya wa njia hii ya uboreshaji ni kwamba kernel ya mfumo wa uendeshaji wa mgeni lazima irekebishwe ili iweze kuwasiliana na hypervisor kwa kutumia API hii. Lakini hii kawaida hutatuliwa kwa kufunga madereva maalum kwenye mfumo wa uendeshaji wa mgeni. Katika KVM API hii inaitwa Virtio API.

Kwa uwezeshaji, ikilinganishwa na utangazaji, njia ya kifaa halisi hupunguzwa kwa kiasi kikubwa kwa kutuma amri moja kwa moja kutoka kwa mashine pepe hadi mchakato wa hypervisor kwenye seva pangishi. Hii hukuruhusu kuharakisha utekelezaji wa maagizo yote ndani ya mashine ya kawaida. Katika KVM, hii inafanywa na API ya virtio, ambayo inafanya kazi tu kwa vifaa fulani, kama vile mtandao au adapta ya diski. Hii ndiyo sababu viendeshi vya virtio vimewekwa ndani ya mashine za kawaida.

Upande wa chini wa kuongeza kasi hii ni kwamba sio michakato yote inayoendesha ndani ya mashine inayobaki ndani yake. Hii inaunda athari maalum ambazo zinaweza kusababisha kuzaa kwa kuiba. Ninapendekeza kuanza utafiti wa kina wa suala hili na API ya I/O pepe: virtio.

2.3. Upangaji wa "Haki".

Mashine ya kawaida kwenye hypervisor ni, kwa kweli, mchakato wa kawaida unaotii sheria za kuratibu (usambazaji wa rasilimali kati ya michakato) kwenye kernel ya Linux, kwa hiyo hebu tuiangalie kwa karibu.

Linux hutumia kinachojulikana kama CFS, Kiratibu Haki Kabisa, ambacho kimekuwa kipanga ratiba chaguo-msingi tangu kernel 2.6.23. Ili kuelewa algorithm hii, unaweza kusoma Usanifu wa Kernel ya Linux au msimbo wa chanzo. Kiini cha CFS ni kusambaza muda wa kichakataji kati ya michakato kulingana na muda wa utekelezaji wao. Kadiri mchakato unavyohitaji muda mwingi wa CPU, ndivyo muda wa CPU unavyopokea kidogo. Hii inahakikisha kwamba michakato yote inatekelezwa "haki" - ili mchakato mmoja usichukue kila wakati wasindikaji wote, na michakato mingine pia inaweza kutekeleza.

Wakati mwingine dhana hii inaongoza kwa mabaki ya kuvutia. Watumiaji wa Linux wa muda mrefu huenda wanakumbuka kufungia kwa kihariri maandishi cha kawaida kwenye eneo-kazi wakati wa kutumia programu zinazotumia rasilimali nyingi kama vile kikusanyaji. Hii ilitokea kwa sababu kazi zisizo za rasilimali nyingi katika programu za kompyuta za mezani zilishindana na kazi zinazohitaji rasilimali nyingi, kama vile mkusanyaji. CFS inafikiri hii sio haki, kwa hivyo inasimamisha kihariri maandishi mara kwa mara na kuruhusu kichakataji kushughulikia kazi za mkusanyaji. Hii ilirekebishwa kwa kutumia utaratibu kikundi_otomatiki kilichopangwa, lakini vipengele vingine vingi vya usambazaji wa muda wa processor kati ya kazi vilibakia. Kweli, hii sio hadithi kuhusu jinsi kila kitu kilivyo mbaya katika CFS, lakini jaribio la kuzingatia ukweli kwamba usambazaji "wa haki" wa wakati wa processor sio kazi ndogo zaidi.

Jambo lingine muhimu katika mpangilio ni ukombozi. Hii ni muhimu ili kuondoa mchakato wa snickering kutoka kwa processor na kuruhusu wengine kufanya kazi. Mchakato wa ejection unaitwa ubadilishaji wa muktadha. Katika kesi hii, muktadha mzima wa kazi umehifadhiwa: hali ya stack, madaftari, nk, baada ya hapo mchakato unatumwa kusubiri, na mwingine huchukua nafasi yake. Huu ni operesheni ya gharama kubwa kwa OS na haitumiwi sana, lakini hakuna kitu kibaya nayo. Kubadilisha muktadha mara kwa mara kunaweza kuonyesha shida katika OS, lakini kawaida ni ya kuendelea na haionyeshi chochote haswa.

Hadithi ndefu kama hiyo inahitajika ili kuelezea ukweli mmoja: kadri mchakato unavyojaribu kutumia rasilimali nyingi za kichakataji katika kipanga ratiba mwaminifu cha Linux, ndivyo itasimamishwa haraka ili michakato mingine pia ifanye kazi. Ikiwa hii ni sahihi au la ni swali ngumu ambalo linaweza kutatuliwa tofauti chini ya mizigo tofauti. Katika Windows, hadi hivi karibuni, mpangaji alizingatia usindikaji wa kipaumbele wa programu za kompyuta, ambayo inaweza kusababisha michakato ya nyuma kufungia. Sun Solaris alikuwa na madarasa matano tofauti ya wapanga ratiba. Tulipozindua uvumbuzi, tuliongeza ya sita, Mpangilio mzuri wa hisa, kwa sababu tano zilizopita hazikufanya kazi ipasavyo na uboreshaji wa Kanda za Solaris. Ninapendekeza kuanza uchunguzi wa kina wa suala hili na vitabu kama Solaris Internals: Solaris 10 na OpenSolaris Kernel Architecture au Kuelewa Kernel ya Linux.

2.4. Jinsi ya kufuatilia wizi?

Kufuatilia wizi ndani ya mashine pepe, kama kipimo kingine chochote cha kichakataji, ni rahisi: unaweza kutumia zana yoyote ya kichakataji. Jambo kuu ni kwamba mashine ya kawaida iko kwenye Linux. Kwa sababu fulani Windows haitoi habari hii kwa watumiaji wake. πŸ™

Kuiba: ni nani anayeiba wakati wa CPU kutoka kwa mashine pepe
Pato la amri ya juu: maelezo ya mzigo wa processor, kwenye safu ya kulia - kuiba

Ugumu hutokea wakati wa kujaribu kupata habari hii kutoka kwa hypervisor. Unaweza kujaribu kutabiri kuiba kwenye mashine ya mwenyeji, kwa mfano, kwa kutumia parameter ya Wastani wa Mzigo (LA) - thamani ya wastani ya idadi ya michakato inayosubiri kwenye foleni ya utekelezaji. Njia ya kuhesabu parameta hii sio rahisi, lakini kwa ujumla, ikiwa LA imesasishwa na idadi ya nyuzi za processor ni zaidi ya 1, hii inaonyesha kuwa seva ya Linux imejaa kitu.

Taratibu hizi zote zinangoja nini? Jibu dhahiri ni processor. Lakini jibu si sahihi kabisa, kwa sababu wakati mwingine processor ni bure, lakini LA huenda mbali na kiwango. Kumbuka jinsi NFS inavyoanguka na jinsi LA inakua. Vile vile vinaweza kutokea kwa diski na vifaa vingine vya pembejeo / pato. Lakini kwa kweli, michakato inaweza kusubiri mwisho wa kufuli yoyote, ama ya kimwili, inayohusishwa na kifaa cha I/O, au kimantiki, kama vile bubu. Hii pia ni pamoja na kufunga kwa kiwango cha maunzi (jibu sawa kutoka kwa diski), au mantiki (kinachojulikana kama primitives ya kufunga, ambayo ni pamoja na kundi la vyombo, mutex adaptive na spin, semaphores, vigezo vya hali, kufuli za rw, kufuli za ipc. ...).

Kipengele kingine cha LA ni kwamba inachukuliwa kuwa wastani wa mfumo wa uendeshaji. Kwa mfano, michakato 100 inashindana kwa faili moja, na kisha LA=50. Thamani kubwa kama hiyo itaonekana kuonyesha kuwa mfumo wa uendeshaji ni mbaya. Lakini kwa msimbo mwingine ulioandikwa kwa upotovu, hii inaweza kuwa hali ya kawaida, licha ya ukweli kwamba tu ni mbaya, na taratibu nyingine katika mfumo wa uendeshaji haziteseka.

Kwa sababu ya wastani huu (na kwa si chini ya dakika), kuamua chochote kwa kiashiria LA sio kazi ya kuthawabisha zaidi, na matokeo yasiyo ya uhakika sana katika kesi maalum. Ukijaribu kubaini, utapata kwamba makala kwenye Wikipedia na rasilimali nyingine zinazopatikana zinaelezea kesi rahisi tu, bila maelezo ya kina ya mchakato. Ninatuma kila mtu ambaye ana nia, tena, Hapa ni kwa Brendan Gregg  - fuata viungo hapa chini. Nani mvivu sana kuzungumza Kiingereza - tafsiri ya makala yake maarufu kuhusu LA.

3. Athari maalum

Sasa hebu tuangalie kesi kuu za wizi ambazo tulikutana nazo. Nitakuambia jinsi wanavyofuata kutoka kwa yote hapo juu na jinsi wanavyohusiana na viashiria kwenye hypervisor.

Usafishaji. Rahisi na ya kawaida: hypervisor imetumika tena. Hakika, kuna mashine nyingi zinazoendesha mashine, matumizi ya juu ya processor ndani yao, ushindani mkubwa, utumiaji wa LA ni zaidi ya 1 (iliyorekebishwa na nyuzi za processor). Kila kitu ndani ya mashine zote pepe hupungua. Kuiba iliyopitishwa kutoka kwa hypervisor pia inakua, ni muhimu kusambaza tena mzigo au kuzima mtu. Kwa ujumla, kila kitu ni mantiki na inaeleweka.

Paravirtualization dhidi ya Matukio ya Mtu Mmoja. Kuna mashine moja tu ya kawaida kwenye hypervisor; hutumia sehemu yake ndogo, lakini hutoa mzigo mkubwa wa I/O, kwa mfano kwenye diski. Na kutoka mahali fulani wizi mdogo huonekana ndani yake, hadi 10% (kama inavyoonyeshwa na majaribio kadhaa).

Kesi hiyo inavutia. Kuiba kunaonekana hapa kwa usahihi kwa sababu ya kuzuia kwa kiwango cha viendeshaji vya paravirtualized. Ukatizaji huundwa ndani ya mashine ya kawaida, iliyochakatwa na dereva na kutumwa kwa hypervisor. Kwa sababu ya utunzaji wa usumbufu kwenye hypervisor, kwa mashine ya kawaida inaonekana kama ombi lililotumwa, iko tayari kutekelezwa na inangojea processor, lakini haipewi wakati wa processor. Msichana wa mtandaoni anafikiri kwamba wakati huu umeibiwa.

Hii hufanyika wakati buffer inatumwa, inaingia kwenye nafasi ya kernel ya hypervisor, na tunaanza kuingojea. Ingawa, kutoka kwa mtazamo wa mashine ya kawaida, anapaswa kurudi mara moja. Kwa hiyo, kwa mujibu wa algorithm ya hesabu ya kuiba, wakati huu unachukuliwa kuwa umeibiwa. Uwezekano mkubwa zaidi, katika hali hii kunaweza kuwa na mifumo mingine (kwa mfano, kusindika simu zingine za sys), lakini hazipaswi kuwa tofauti sana.

Kiratibu dhidi ya mashine pepe zilizopakiwa sana. Wakati mashine moja pepe inakabiliwa na kuiba zaidi kuliko zingine, hii ni kwa sababu ya kipanga ratiba. Kadiri mchakato unavyopakia kichakataji, ndivyo kipanga ratiba kitakavyokiondoa haraka ili vingine pia vifanye kazi. Ikiwa mashine ya kawaida hutumia kidogo, haitaweza kuona kuiba: mchakato wake kwa uaminifu ulikaa na kusubiri, tunahitaji kuwapa muda zaidi. Ikiwa mashine ya kawaida hutoa mzigo wa juu kwenye cores zake zote, mara nyingi hutolewa nje ya processor na wanajaribu kutoipa muda mwingi.

Ni mbaya zaidi wakati michakato ndani ya mashine pepe inapojaribu kupata kichakataji zaidi kwa sababu haiwezi kukabiliana na usindikaji wa data. Kisha mfumo wa uendeshaji kwenye hypervisor, kutokana na uboreshaji wa uaminifu, utatoa muda mdogo na mdogo wa processor. Utaratibu huu hutokea kama maporomoko ya theluji, na kuiba kuruka hadi angani, ingawa mashine zingine pepe huenda zisitambue. Na cores zaidi, mbaya zaidi mashine walioathirika. Kwa kifupi, mashine pepe zilizopakiwa sana zilizo na core nyingi huteseka zaidi.

LA chini, lakini kuna wizi. Ikiwa LA ni takriban 0,7 (hiyo ni, hypervisor inaonekana kupakiwa), lakini kuiba kunazingatiwa ndani ya mashine za kibinafsi:

  • Chaguo na paravirtualization tayari ilivyoelezwa hapo juu. Mashine pepe inaweza kupokea vipimo vinavyoonyesha kuibiwa, ingawa hypervisor ni sawa. Kulingana na matokeo ya majaribio yetu, chaguo hili la kuiba halizidi 10% na halipaswi kuwa na athari kubwa katika utendakazi wa programu ndani ya mashine pepe.
  • Kigezo cha LA kinahesabiwa vibaya. Kwa usahihi zaidi, kwa kila wakati maalum huhesabiwa kwa usahihi, lakini wakati wa wastani wa dakika moja inageuka kuwa inakadiriwa. Kwa mfano, ikiwa mashine moja ya kawaida kwa theluthi moja ya hypervisor hutumia wasindikaji wake wote kwa nusu dakika, basi LA kwa dakika kwenye hypervisor itakuwa 0,15; mashine nne kama hizo zinazofanya kazi wakati huo huo zitatoa 0,6. Na ukweli kwamba kwa nusu dakika juu ya kila mmoja wao kulikuwa na wizi wa mwitu kwa 25% kulingana na kiashiria cha LA hauwezi tena kuvutwa.
  • Tena, kwa sababu ya mpangaji ambaye aliamua kwamba mtu alikuwa akila sana na kuruhusu mtu huyo kusubiri. Kwa sasa, nitabadilisha muktadha, nitashughulikia kukatizwa na kushughulikia mambo mengine muhimu ya mfumo. Matokeo yake, baadhi ya mashine za kawaida hazioni matatizo yoyote, wakati wengine hupata uharibifu mkubwa wa utendaji.

4. Upotoshaji mwingine

Kuna sababu milioni zaidi za kupotosha urejeshaji wa haki wa muda wa kichakataji kwenye mashine pepe. Kwa mfano, hyperthreading na NUMA huanzisha ugumu katika mahesabu. Wanachanganya kabisa uchaguzi wa kernel kwa ajili ya kutekeleza mchakato, kwa sababu mpangilio hutumia coefficients - uzani, ambayo hufanya hesabu kuwa ngumu zaidi wakati wa kubadili muktadha.

Kuna upotoshaji kutokana na teknolojia kama vile kuongeza kasi ya turbo au, kinyume chake, hali ya kuokoa nishati, ambayo, wakati wa kuhesabu matumizi, inaweza kuongeza au kupunguza kasi ya mzunguko au hata kipande cha saa kwenye seva. Kuwasha turbo boost kunapunguza utendakazi wa thread moja ya kichakataji kutokana na ongezeko la utendakazi wa nyingine. Kwa wakati huu, habari juu ya mzunguko wa processor ya sasa haijapitishwa kwa mashine ya kawaida, na inaamini kuwa mtu anaiba wakati wake (kwa mfano, aliomba 2 GHz, lakini akapokea nusu hiyo).

Kwa ujumla, kunaweza kuwa na sababu nyingi za kupotosha. Unaweza kupata kitu kingine kwenye mfumo fulani. Ni bora kuanza na vitabu ambavyo nilipeana viungo hapo juu, na kupata takwimu kutoka kwa hypervisor kwa kutumia huduma kama vile perf, sysdig, systemtap, ambayo kadhaa.

5. Hitimisho

  1. Kiasi fulani cha wizi kinaweza kutokea kwa sababu ya ubinafsishaji, na inaweza kuchukuliwa kuwa ya kawaida. Wanaandika kwenye mtandao kwamba thamani hii inaweza kuwa 5-10%. Inategemea programu-tumizi ndani ya mashine ya kawaida na juu ya mzigo unaoweka kwenye vifaa vyake vya kimwili. Hapa ni muhimu kuzingatia jinsi programu zinavyohisi ndani ya mashine pepe.
  2. Uwiano wa mzigo kwenye hypervisor na kuiba ndani ya mashine pepe hauhusiani wazi kila wakati; makadirio yote mawili ya wizi yanaweza kuwa na makosa katika hali maalum chini ya mizigo tofauti.
  3. Mpangaji ana mtazamo mbaya kuelekea michakato inayouliza mengi. Anajaribu kutoa kidogo kwa wale wanaoomba zaidi. Mashine kubwa za mtandaoni ni mbaya.
  4. Kuiba kidogo kunaweza kuwa kawaida hata bila paravirtualization (kwa kuzingatia mzigo ndani ya mashine ya kawaida, sifa za mzigo wa majirani, usambazaji wa mzigo kwenye nyuzi na mambo mengine).
  5. Ikiwa unataka kujua kuiba katika mfumo maalum, lazima uchunguze chaguzi mbalimbali, kukusanya metrics, kuchambua kwa uangalifu na kufikiria jinsi ya kusambaza mzigo sawasawa. Mikengeuko kutoka kwa hali yoyote inawezekana, ambayo lazima idhibitishwe kwa majaribio au kutazamwa kwenye kitatuzi cha kernel.

Chanzo: mapenzi.com

Kuongeza maoni