Tahae: ko wai ka tahae i te wa CPU mai i nga miihini mariko

Tahae: ko wai ka tahae i te wa CPU mai i nga miihini mariko

Kia ora! E hiahia ana ahau ki te korero i roto i nga tikanga ngawari mo te puta mai o te tahae i roto i nga miihini mariko me etahi taonga kore-marama i kitea e matou i roto i tana rangahau, i rukuhia e au hei kaiwhakahaere hangarau mo te papa kapua. Mail.ru Cloud Solutions. Ka rere te papa i runga i te KVM.

Ko te wa tahae CPU ko te wa e kore ai te miihini mariko e whiwhi rauemi tukatuka mo tana mahi. Ko tenei wa ka whakaarohia i roto i nga punaha whakahaere manuhiri i roto i nga taiao mariko. Ko nga take e haere ai enei rauemi kua tohatohahia, penei i roto i te ao, he tino maamaa. Engari i whakatau maatau ki te whakaaro, ara ki te whakarite i etahi momo whakamatautau. Ehara i te mea kua mohio matou inaianei ki nga mea katoa mo te tahae, engari ka korerotia e matou he mea whakamere inaianei.

1. He aha te tahae

Na, ko te tahae he ine e tohu ana i te kore o te wa tukatuka mo nga mahi i roto i te miihini mariko. Ka rite ki te korero i roto i te papaki kernel KVM, ko te tahae te nui o te wa e mahia ana e te hypervisor etahi atu tukanga i runga i te OS kaihautu ahakoa kua tutirahia te mahinga miihini mariko mo te mahi. Arā, tātaihia te tahae hei rerekētanga i waenga i te wā kua reri te hātepe ki te whakahaere me te wā ka tohatohahia te wā CPU.

Ka whiwhi te pata miihini mariko i te ine tahae mai i te hypervisor. I te wa ano, kaore te hypervisor e whakaatu he aha etahi atu tukanga e mahia ana e ia, engari "i te wa e pukumahi ana ahau, kaore e taea e au te hoatu wa ki a koe." I runga i te KVM, ka taapirihia te tautoko mo te tatauranga tahae papaki. E rua nga kaupapa matua i konei:

  • Ka ako te miihini mariko mo te tahae mai i te hypervisor. Arā, mai i te tirohanga o te ngaronga, mo nga tukanga i runga i te miihini mariko ake, he inenga autaki tenei, ka pa ki nga momo rerekee.
  • Kaore te hypervisor e tuku korero ki te miihini mariko mo etahi atu mahi - ko te mea nui ko te kore e whakapau i te waa ki a ia. Na tenei, kaore e taea e te miihini mariko tonu te kite i nga rereketanga o te tohu tahae, ka taea te aromatawai ma te ahua o nga mahi whakataetae.

2. He aha te pa ki te tahae

2.1. Te tātai tahae

Inaa, he rite tonu te whakaaro o te tahae ki te waa whakamahi CPU. He iti noa nga korero mo te whakaaro mo te hangarua. Akene na te mea ka whakaaro te nuinga o tenei patai he maamaa. Engari i konei ano, he mahanga. Mo te tirohanga whanui mo tenei mahi, panui tuhinga na Brendan Gregg: Ka ako koe mo te maha o nga ahuatanga i te wa e tatau ana i te whakamahinga me nga ahuatanga ka pohehe tenei tatauranga mo nga take e whai ake nei:

  • Te wera nui o te pūtukatuka, ka pekehia nga huringa.
  • Whakahohe/whakakorehia te whakanui turbo, ka huri i te auau karaka tukatuka.
  • He huringa i roto i te roa o te tapahanga wa ka puta i te wa e whakamahi ana i nga hangarau whakaora hiko tukatuka penei i a SpeedStep.
  • Te tatauranga o te raruraru toharite: ka taea e te whakatau tata mo te kotahi meneti te 80% te huna i te pakarutanga mo te wa poto o te 100%.
  • Ma te raka miro ka whakahoki ano te tukatuka, engari karekau he ahunga whakamua i roto i te mahinga a te kaiwhakamahi. Ko te mutunga mai, ko te XNUMX% te whakamahi o te kaitukatuka ma te tukanga, ahakoa karekau te tukanga e pau i te wa tukatuka.

Kaore au i kite i tetahi tuhinga e whakaatu ana i te tatauranga rite mo te tahae (mehemea ka mohio koe, tohaina ki nga korero). Engari, ki te whakatau i nga puna, he rite te tikanga tatau ki te hangarua. Ko te mea ka taapirihia tetahi atu porotiti ki roto i te kernel, tika mo te tukanga KVM (tukatuka miihini mariko), e tatau ana i te roanga o te tukanga KVM i roto i te wa e tatari ana ki te wa tukatuka. Ka tangohia e te kaitaunaki nga korero mo te tukatuka mai i tana whakaritenga ka kite mena ka whakamahia ana tohu katoa e te miihini mariko. Mena ko nga mea katoa, ka whakaarohia ko te tukatuka i uru noa ki te mahi o te miihini mariko. Ki te kore, ka whakamohio atu matou kei te mahi kee te kaitukatuka, ka puta te tahae.

Ko te tukanga tatau tahae he rite tonu nga raruraru ki te tatau tahae noa. Ehara i te kii he maha nga raru ka puta, engari he ahua ngoikore.

2.2. Nga momo mariko i runga i te KVM

I te nuinga o te korero, e toru nga momo mariko, a ko enei katoa e tautokohia ana e KVM. Ko te tikanga o te puta o te tahae ka whakawhirinaki pea ki te momo marikotanga.

Whakapāho. I tenei keehi, ko te mahi o te punaha whakahaere o te miihini mariko me nga taputapu tinana o te hypervisor e penei ana:

  1. Ka tukuna e te punaha whakahaere manuhiri he tono ki tana taputapu manuhiri.
  2. Ka whiwhi te kaitaraiwa taputapu manuhiri te whakahau, ka whakaputa he tono mo te BIOS o te taputapu, ka tukuna atu ki te hypervisor.
  3. Ko te tukanga hypervisor he whakamaori i tetahi whakahau ki roto i te whakahau mo te taputapu tinana, kia noho haumaru ake, i roto i era atu mea.
  4. Ko te taraiwa o te taputapu tinana ka whakaae ki te whakahau kua whakarereketia ka tukuna atu ki te taputapu tinana ake.
  5. Ko nga hua o te whakahaere whakahau ka hoki ki te ara ano.

Ko te painga o te whakamaoritanga ko te mea ka taea e koe te peehi i tetahi taputapu me te kore e hiahiatia he whakaritenga motuhake o te kernel punaha whakahaere. Engari me utu koe mo tenei, tuatahi, me te tere.

Mariko taputapu. I tenei keehi, ka mohio te taputapu i te taumata taputapu ki nga whakahau mai i te punaha whakahaere. Koinei te huarahi tere me te huarahi pai. Engari, kaore i te tautokohia e nga taputapu tinana katoa, nga hypervisors me nga punaha whakahaere manuhiri. I tenei wa, ko nga taputapu matua e tautoko ana i te mariko taputapu ko nga kaitukatuka.

Paravirtualization. Ko te kōwhiringa tino noa mo te mariko taputapu i runga i te KVM me te nuinga o te aratau mariko tino noa mo nga punaha whakahaere manuhiri. Ko te mea motuhake ko te mahi me etahi punaha-a-roto (hei tauira, me te whatunga, te kopae kōpae ranei) ka tohatohahia nga wharangi mahara ma te whakamahi i te API hypervisor, kaore he whakamaoritanga o nga whakahau taumata-iti. Ko te kino o tenei tikanga mariko me whakarereke te kernel punaha whakahaere manuhiri kia taea ai te korero ki te hypervisor ma te whakamahi i tenei API. Engari ka whakatauhia tenei ma te whakauru i nga taraiwa motuhake ki te punaha whakahaere manuhiri. I roto i te KVM ka kiia tenei API virtio API.

Ma te paravirtualization, ka whakatauritea ki te whakamaoritanga, ka tino heke te ara ki te taputapu tinana ma te tuku i nga whakahau mai i te miihini mariko ki te tukanga hypervisor i runga i te kaihautu. Ma tenei ka taea e koe te tere ake te mahi i nga tohutohu katoa i roto i te miihini mariko. I roto i te KVM, ko te API virtio te kawenga mo tenei, ka mahi anake mo etahi taputapu, penei i te whatunga, te urutau kōpae ranei. No reira ka whakauruhia nga taraiwa virtio ki roto i nga miihini mariko.

Ko te taha whakamuri o tenei whakaterenga ko te kore katoa o nga tukanga e rere ana i roto i te miihini mariko ka noho ki roto. Ka waihangahia etahi paanga motuhake ka puta pea te tahae. Ka tūtohu ahau ki te timata i tetahi rangahau taipitopito mo tenei take He API mo te I/O mariko: virtio.

2.3. "Whakaritea" te whakarite

Ko te miihini mariko kei runga i te hypervisor, he tikanga, he mahinga auau e whai ana ki nga ture o te whakarite (te tohatoha rauemi i waenga i nga mahi) i roto i te kernel Linux, no reira me ata titiro atu.

Ka whakamahi a Linux i te CFS e kiia nei, he Kaihōtaka Tino Ataahua, kua noho hei kaihōtaka taunoa mai i te kernel 2.6.23. Kia mohio ai koe ki tenei algorithm, ka taea e koe te panui i te Linux Kernel Architecture te puna ranei. Ko te ngako o te CFS kei roto i te tohatoha o te wa tukatuka i waenga i nga tukanga i runga i te roanga o to raatau mahi. Ko te nui ake o te wa PTM e hiahiatia ana e tetahi tukanga, ka iti ake te wa PTM. Ma tenei ka whakamanahia te "tika" o nga mahi katoa - kia kore ai tetahi tukanga e noho i nga kaitoro katoa i nga wa katoa, me etahi atu tukanga ka taea hoki te mahi.

I etahi wa ka arahi tenei tauira ki nga taonga whakamere. Ka maumahara tonu nga kaiwhakamahi Linux mo te wa roa ki te whakatio o te ētita kuputuhi auau i runga i te papamahi i te wa e whakarewahia ana nga tono whakakaha rawa penei i te kaitoi. I puta tenei na te mea i whakataetae nga mahi kore rawa-nui o nga tono papamahi me nga mahi e whakapau kaha ana i nga rauemi, penei i te kaikohikohi. Ki te whakaaro a CFS he kore tika tenei, na reira ka aukati i ia wa te ētita tuhinga me te tuku i te tukatuka ki te whakahaere i nga mahi whakahiato. I whakatikahia tenei ma te miihini sched_autogroup, engari he maha atu nga ahuatanga o te tohatoha o te wa tukatuka i waenga i nga mahi i noho tonu. Inaa, ehara tenei korero mo te kino o nga mea katoa i roto i te CFS, engari ko te ngana ki te kukume i te aro ki te meka ko te tohatoha "tika" o te wa tukatuka ehara i te mahi tino iti.

Ko tetahi atu mea nui i roto i te raarangi ko te tohutoro. He mea tika tenei ki te pana i te mahi whakahihi mai i te tukatuka me te tuku i etahi atu ki te mahi. Ko te tukanga o te whakahekenga e kiia ana ko te whakawhiti horopaki, he huringa horopaki tukatuka. I te wa ano, ka tiakina te horopaki katoa o te mahi: te ahua o te puranga, nga rehita, me etahi atu, ka tukuna te tukanga ki te tatari, ka noho tetahi atu. He mahi utu nui tenei mo te OS, he iti noa te whakamahi, engari ko te mea kaore he he. Ko te whakarereketanga o te horopaki ka tohu pea he raru kei roto i te OS, engari i te nuinga o te waa ka haere tonu karekau he tohu.

He roa nga korero e hiahiatia ana hei whakamaarama i tetahi meka: ko te nui ake o nga rauemi tukatuka e ngana ana te mahi ki te kai i roto i te kaitakataka Linux pono, ka tere ake te aukati kia taea ai e etahi atu mahi te mahi. Ahakoa he tika tenei, he kore ranei he patai uaua, he rereke te whakatau i raro i nga taumahatanga rereke. I roto i te Matapihi, tae noa ki naianei, i aro te kaihōtaka ki te tukatuka kaupapa matua o nga tono papamahi, tera pea ka whakairihia nga tukanga papamuri. E rima nga karaehe rereke a Sun Solaris mo nga kaiwhakarite. I te wa i whakarewahia ai te mariko, ka taapirihia te tuaono, kaiwhakariterite tikana te mea ko nga mea e rima o mua kaore i pai te mahi me te marikotanga o nga Rohe Solaris. Ka tūtohu ahau ki te timata i te rangahau taipitopito o tenei take me nga pukapuka penei Solaris roto: Solaris 10 me OpenSolaris Kernel Architecture ranei Te maarama ki te Kernel Linux.

2.4. Me pehea te aro turuki i te tahae?

Ko te aro turuki i te tahae i roto i te miihini mariko, pera i etahi atu inenga tukatuka, he maamaa: ka taea e koe te whakamahi i tetahi taputapu inenga tukatuka. Ko te mea nui kia noho te miihini mariko ki runga Linux. Mo etahi take, kaore a Windows e tuku korero penei ki ana kaiwhakamahi. 🙁

Tahae: ko wai ka tahae i te wa CPU mai i nga miihini mariko
Ko te putanga o te whakahau runga: te whakamaarama i te kawenga i runga i te kaitukatuka, kei te taha matau rawa - tahae

Ka puta te uaua i te wa e ngana ana ki te tiki i enei korero mai i te hypervisor. Ka taea e koe te ngana ki te matapae tahae i runga i te miihini kaihautu, hei tauira, ma te tawhā Uta Wawaenga (LA) - te uara toharite o te maha o nga tukanga e tatari ana i te rarangi mahi. Ko te tikanga mo te tatau i tenei tawhā ehara i te mea ngawari, engari i te nuinga o te waa, mena ka whakatauhia e te LA na te maha o nga miro tukatuka he nui ake i te 1, ka tohu tenei kei te taumaha te tūmau Linux ki tetahi mea.

He aha enei mahi katoa e tatari ana? Ko te whakautu marama ko nga kaitukatuka. Engari ko te whakautu kaore i te tino tika, na te mea i etahi wa kaore he utu o te tukatuka, ka rere ke atu a LA. Kia mahara pehea te hinga o te NFS me te pehea o te tipu o LA i te wa ano. He rite tonu ki te kōpae, me etahi atu taputapu whakauru / whakaputa. Engari i roto i te meka, ka taea e nga tukanga te tatari mo te mutunga o tetahi raka, he tinana, e hono ana ki te taputapu I / O, me te arorau, penei i te mutex. Kei roto hoki nga raka i te taumata taputapu (he rite tonu te whakautu mai i te kōpae), te arorau ranei (ko nga mea e kiia nei ko te maukati o mua, kei roto he roopu hinonga, mutex adaptive me te miro, semaphores, huru taurangi, rw raka, ipc raka . ..).

Ko tetahi atu ahuatanga o LA ko te whakaaro he uara toharite mo te punaha whakahaere. Hei tauira, 100 nga tukanga e whakataetae ana mo te konae kotahi, katahi ko LA=50. Ko te nui o taua uara, ka rite ki te tohu he kino te punaha whakahaere. Engari mo etahi atu waehere kua tuhia, he ahua noa tenei, ahakoa te mea he kino anake, me etahi atu tukanga i roto i te punaha whakahaere kaore e mamae.

Na tenei tauwaenga (a kaua e iti iho i te meneti), ko te whakatau i tetahi mea mo te LA ehara i te mea tino pai te mahi, me nga hua ohorere i roto i nga keehi motuhake. Mena ka ngana koe ki te whakaaro, ka kitea e koe ko nga tuhinga i runga i Wikipedia me etahi atu rauemi e waatea ana e whakaatu ana i nga keehi ngawari noa, kaore he whakamaarama hohonu mo te mahi. Ka tukuna ano e ahau te hunga e hiahia ana, konei ki a Brendann Gregg  - whai i nga hononga. Ko wai te mangere i te reo Ingarihi - te whakamaoritanga o tana tuhinga rongonui mo LA.

3. Nga paanga motuhake

Inaianei ka korero tatou mo nga keehi tahae matua kua tutaki ki a tatou. Ka korerotia e ahau ki a koe me pehea te whai i nga mea katoa o runga ake nei me te pehea e hono ai ki nga tohu kei runga i te hypervisor.

Hangarua. Ko te mea ngawari me te tino noa: kua hangaruatia te hypervisor. Ae, he maha nga miihini mariko e rere ana, he nui te kai tukatuka i roto, he whakataetae nui, he nui ake te whakamahi a LA i te 1 (kua whakaritea e nga miro tukatuka). I roto i nga virtualok katoa ka puhoi nga mea katoa. Ka tipu ano te tahae i tukuna mai i te hypervisor, he mea tika ki te tohatoha i te kawenga, ki te whakakore ranei i tetahi. I te nuinga o te waa, he arorau me te maarama nga mea katoa.

Paravirtualization me nga tauira mokemoke. Kotahi noa te miihini mariko kei runga i te hypervisor, ka pau tetahi waahanga iti, engari ka hoatu he kawenga I / O nui, hei tauira, i runga i te kōpae. A, mai i tetahi waahi ka puta he tahae iti ki roto, tae atu ki te 10% (he maha nga whakamatautau e whakaatu ana).

He mea whakamere te keehi. Ka puta te tahae i konei na te mea noa o nga kati i te taumata o nga taraiwa paravirtualized. Ka hangaia he haukoti i roto i te miihini mariko, ka tukatukahia e te taraiwa, ka haere ki te hypervisor. Na te whakakore i te tukatuka i runga i te hypervisor, he rite tenei ki te tono tono ki te miihini mariko, kua rite mo te mahi me te tatari mo te tukatuka, engari kaore i hoatu he wa tukatuka. E whakaaro ana te miihini mariko kua tahaetia tenei wa.

Ka puta tenei i te wa e tukuna ai te kaitarai, ka haere ki te waahi kakano o te hypervisor, a ka timata taatau ki te tatari. Ahakoa, mai i te tirohanga o te miihini mariko, me hoki tonu ia. Na reira, e ai ki te algorithm tātai tahae, ka kiia tenei wa he tahae. Ko te mea pea, tera pea etahi atu tikanga i tenei ahuatanga (hei tauira, te tukatuka i etahi atu waea sys), engari kaua e rereke.

Kaihōtaka ki nga miihini mariko kua utaina nui. Ki te mamae tetahi miihini mariko i te tahae nui atu i etahi atu, ka tika tenei ma te kaiwhakataki. Ko te nui ake o te mahi ka utaina te tukatuka, ka tere ake te whana e te kaihōtaka kia taea ai e te toenga te mahi. Mena he iti te pau o te miihini mariko, kare e kite i te tahae: ka noho pono tana mahi me te tatari, me nui ake te wa. Mena ka whakaputahia e te miihini mariko te kawenga morahi i runga i ona matua katoa, ka maha ake te whana ki waho o te tukatuka ka ngana kia kaua e roa te wa.

Ko te mea kino ake, ka ngana nga mahi o roto o te miihini mariko ki te nui ake te tukatuka, na te mea kaore e taea e raatau te whakahaere i nga raraunga. Na te punaha whakahaere i runga i te hypervisor, na te arotautanga pono, ka iti ake te wa tukatuka. Ka puta tenei mahi ano he horo, ka peke tahae ki te rangi, ahakoa karekau pea etahi atu miihini mariko e kite. A, ko te nui ake o nga matua, ko te kino o te miihini i hinga i raro i te tohatoha. Hei poto, ko nga miihini mariko tino utaina me te maha o nga kopa ka tino mamae.

LA iti, engari he tahae. Mena kei te 0,7 te LA (ara, kei te iti te utaina o te hypervisor), engari ka kitea te tahae i roto i nga miihini mariko takitahi:

  • Ko te kōwhiringa kua whakaahuatia i runga ake nei me te paravirtualization. Ka taea e te miihini mariko te whiwhi inenga e tohu ana i te tahae, ahakoa kei te pai te mahi a te hypervisor. E ai ki nga hua o a maatau whakamatautau, ko tenei waahanga tahae kaore e neke ake i te 10% me te kore e whai paanga nui ki nga mahi tono i roto i te miihini mariko.
  • Kei te he te tawhā LA. He tika ake, i ia wa motuhake ka kiia he tika, engari ka whakatauritehia i runga i te meneti kotahi, ka kitea he iti te whakaaro. Hei tauira, ki te pau tetahi miihini mariko mo ia hautoru o te hypervisor i ona tukatuka katoa mo te hawhe meneti, ko te LA ia meneti i runga i te hypervisor ka 0,15; E wha nga miihini mariko e mahi ana i te wa kotahi ka hoatu 0,6. A ko te meka mo te hawhe meneti i runga i ia o ratou he tahae mohoao i te 25% mo te LA, kaore e taea te tango.
  • Ano, na te kaitakataka i whakatau he nui te kai o te tangata, me tatari tetahi. I tenei wa, ka huri ahau i te horopaki, ka hapai i nga aukati me te tiaki i etahi atu mea nui o te punaha. Ko te mutunga, ko etahi miihini mariko kaore e kite i nga raru, ko etahi ka pa ki te kino o te mahi.

4. Ētahi atu pahekeheke

He miriona atu nga take mo te whakakorikori i te hokinga pono o te wa tukatuka i runga i te miihini mariko. Hei tauira, ko te miroiitua me te NUMA ka taapiri i te uaua ki nga tatauranga. Ka tino poauau ratou i te kowhiringa o te kakano mo te mahi o te mahi, na te mea ka whakamahia e te kaihoroi nga whakarea - nga taumaha, na, ka huri i te horopaki, ka uaua ake te tatauranga.

He rerekee na nga hangarau penei i te turbo boost, he rereke ranei, te aratau penapena hiko, ka taea e te tatau te whakamahi, ka taea te whakanui ake, te whakaheke ranei i te auau, te rahinga ranei o te waa i runga i te tūmau. Ma te whakakaha turbo ka whakaitihia te mahi o tetahi miro tukatuka na te pikinga o te mahi a tetahi atu. I tenei wa, ko nga korero e pa ana ki te auau tukatuka o naianei kaore i tukuna ki te miihini mariko, me te whakapono kei te tahae tetahi i tona wa (hei tauira, i tonohia e ia te 2 GHz, engari i riro te haurua).

I te nuinga o te waa, he maha nga take mo nga whanoke. I runga i tetahi punaha, ka kitea e koe tetahi atu mea. He pai ake te tiimata me nga pukapuka i hoatu e au nga hononga i runga ake nei, me te panui i nga tatauranga mai i te hypervisor me nga taputapu penei i te perf, sysdig, systemtap, o era. tekau.

5. Whakamutunga

  1. He nui te tahae ka puta mai na te paravirtualization, ka kiia he mea noa. I runga i te Ipurangi ka tuhia e ratou ko tenei uara ka taea te 5-10%. Kei runga i nga tono kei roto i te miihini mariko me te aha te kawenga ka tukuna ki ona taputapu tinana. I konei he mea nui kia aro ki te ahua o nga tono i roto i nga miihini mariko.
  2. Ko te ōwehenga o te kawenga i runga i te hypervisor me te tahae i roto i te miihini mariko kaore i te tino hono i nga wa katoa, ka pohehe nga whakatau e rua mo te tahae i roto i nga ahuatanga motuhake i nga kawenga rereke.
  3. He kino te ahua o te kaiwhakarite ki nga tukanga e tono nui ana. Ka ngana ia ki te tuku iti ki te hunga e tono atu ana. He kino nga miihini mariko nui.
  4. Ko te tahae iti ka waiho hei tikanga noa ahakoa kaore he paravirtualization (ma te whakaaro ki te utaina o roto o te miihini mariko, nga ahuatanga kawenga o nga hoa tata, te tohatoha kawenga i waenga i nga miro, me etahi atu mea).
  5. Mena kei te pirangi koe ki te whakaaro tahae i runga i tetahi punaha, me tirotiro koe i nga whiringa rereke, kohikohi inenga, ata tirotirohia, me te whakaaro me pehea te tohatoha i te kawenga. Ka taea te rereke mai i nga keehi katoa, me whakapumau ma te whakamatautau, ka tirohia ranei i roto i te patupatu kernel.

Source: will.com

Tāpiri i te kōrero