Уурдоо: виртуалдык машиналардан CPU убактысын ким уурдайт

Уурдоо: виртуалдык машиналардан CPU убактысын ким уурдайт

Салам! Мен сизге виртуалдык машиналардын ичиндеги уурдоонун механикасы жана булуттук платформанын техникалык директору катары изилдөө учурунда тапкан кээ бир ачык-айкын эмес артефакттар жөнүндө жөнөкөй сөз менен айткым келет. Mail.ru Cloud Solutions. Платформа KVMде иштейт.

CPU уурдоо убактысы – бул виртуалдык машина анын аткарылышы үчүн процессордун ресурстарын албай турган убакыт. Бул убакыт виртуалдаштыруу чөйрөлөрүндөгү конок операциялык тутумдарында гана эсептелет. Бул эң көп бөлүнгөн ресурстардын кайда кеткендигинин себептери, жашоодогудай эле, өтө бүдөмүк. Бирок биз муну чечүүнү чечтик, ал тургай бир катар эксперименттерди жүргүздүк. Бул азыр биз уурулук жөнүндө баарын билебиз деп айтууга болбойт, бирок азыр сизге кызыктуу бир нерсени айтып беребиз.

1. Уурдоо деген эмне

Ошентип, уурдоо - бул виртуалдык машинанын ичиндеги процесстерге процессор убактысынын жетишсиздигин көрсөткөн метрика. Сүрөттөлгөндөй KVM ядро ​​патчындаЖашыруун - бул виртуалдык машина процессин аткаруу үчүн кезекке турса да, гипервизор хост ОСто башка процесстерди аткарып жаткан убакыт. Башкача айтканда, уурдоо процессти аткарууга даяр болгон убакыт менен процесске процессор убактысы бөлүнгөн убакыттын ортосундагы айырма катары эсептелет.

Виртуалдык машинанын ядросу уурдоо метрикасын гипервизордон алат. Ошол эле учурда гипервизор дагы кандай процесстерди аткарып жатканын так айтпайт, жөн гана "мен бош эмесмин, мен сага убакыт бере албайм" дейт. KVMде уурдоо эсебин колдоо кошулду тактар. Бул жерде эки негизги пункт бар:

  • Виртуалдык машина уурдоону гипервизордон үйрөнөт. Башкача айтканда, жоготуулардын көз карашынан алганда, виртуалдык машинадагы процесстер үчүн бул ар кандай бурмалоолорго дуушар болушу мүмкүн болгон кыйыр өлчөө.
  • Гипервизор виртуалдык машина менен дагы эмне кылып жаткандыгы тууралуу маалымат бөлүшпөйт – эң негизгиси, ал ага убакыт бөлбөйт. Ушундан улам, виртуалдык машина өзү атаандаш процесстердин мүнөзү боюнча бааланышы мүмкүн болгон уурдоо көрсөткүчүндөгү бурмалоолорду аныктай албайт.

2. Уурулукка эмне таасир этет

2.1. Уурдоо эсеби

Негизи, уурдоо процессордун нормалдуу колдонуу убактысы менен бирдей эсептелет. Кайра иштетүү кандайча каралып жатканы тууралуу көп маалымат жок. Балким, көпчүлүк адамдар бул суроону ачык деп эсептешет. Бирок бул жерде да тузактар ​​бар. Бул процесс менен таанышуу үчүн, сиз окуй аласыз Брендан Греггдин макаласы: колдонууну эсептөөдө көптөгөн нюанстар жөнүндө жана бул эсептөө төмөнкү себептерден улам жаңылыштык болгон жагдайлар жөнүндө биле аласыз:

  • Процессор өтө ысып, циклдерди өткөрүп жиберет.
  • Процессордун саат ылдамдыгын өзгөрткөн турбо күчөтүүнү иштетүү/өчүрүү.
  • SpeedStep сыяктуу процессордун кубатын үнөмдөөчү технологияларды колдонууда пайда болгон убакыттын узундугунун өзгөрүшү.
  • Орточо эсепти эсептөө көйгөйү: бир мүнөттүк колдонууну 80% менен баалоо 100% кыска мөөнөттүү жарылууну жашыра алат.
  • Айлануу кулпу процессорду калыбына келтирүүгө алып келет, бирок колдонуучу процесси анын аткарылышында эч кандай прогрессти көрбөйт. Натыйжада процессордун процессордун эсептелген пайдалануусу жүз пайызды түзөт, бирок процесс процессордун убактысын физикалык жактан талап кылбайт.

Мен уурдоо үчүн окшош эсептөөнү сүрөттөгөн макаланы тапкан жокмун (эгер билсеңиз, аны комментарийлерде бөлүшүңүз). Бирок, баштапкы коду боюнча, эсептөө механизми кайра иштетүү үчүн бирдей. Жөнөкөй сөз менен айтканда, ядрого түздөн-түз KVM процесси (виртуалдык машина процесси) үчүн башка эсептегич кошулат, ал CPU убактысын күткөн KVM процессинин узактыгын эсептейт. Эсептегич процессор жөнүндө маалыматты анын спецификациясынан алат жана анын бардык белгилери виртуалдык машина процесси тарабынан колдонулганын текшерет. Эгерде бардыгы ушундай болсо, анда биз процессор виртуалдык машина процесси менен гана алек болгон деп ойлойбуз. Болбосо, процессор башка нерсе кылып жатканын кабарлайбыз, уурулук пайда болду.

Уурдоолорду эсептөө процесси кадимки кайра иштетүүнү эсептөөдөгүдөй эле көйгөйлөргө дуушар болот. Мындай көйгөйлөр көп пайда болот деп айтууга болбойт, бирок алар көңүл чөгөт.

2.2. KVM боюнча виртуалдаштыруунун түрлөрү

Жалпысынан алганда, виртуалдаштыруунун үч түрү бар, алардын бардыгын KVM колдойт. Уурдоолордун пайда болуу механизми виртуалдаштыруунун түрүнө жараша болушу мүмкүн.

котормо. Бул учурда, виртуалдык машинанын операциялык тутумунун физикалык гипервизордук түзүлүштөр менен иштеши төмөнкүдөй болот:

  1. Коноктун операциялык системасы конок түзмөгүнө буйрук жөнөтөт.
  2. Конок аппаратынын драйвери буйрукту кабыл алып, BIOS түзмөгүнө суроо-талапты жаратат жана аны гипервизорго жөнөтөт.
  3. Гипервизор процесси команданы физикалык түзүлүш үчүн буйрукка которуп, аны башка нерселер менен бирге коопсузураак кылат.
  4. Физикалык түзмөк драйвери өзгөртүлгөн буйрукту кабыл алып, аны физикалык түзүлүшкө жөнөтөт.
  5. Буйруктарды аткаруунун натыйжалары ошол эле жол менен кайтып келет.

Котормонун артыкчылыгы – ал каалаган түзүлүштү эмуляциялоого мүмкүндүк берет жана операциялык системанын өзөгүн атайын даярдоону талап кылбайт. Бирок бул үчүн биринчи кезекте ылдамдык менен төлөш керек.

Аппараттык виртуалдаштыруу. Бул учурда аппараттык деңгээлдеги аппарат операциялык системанын буйруктарын түшүнөт. Бул эң тез жана эң жакшы жол. Бирок, тилекке каршы, ал бардык физикалык түзүлүштөр, гипервизорлор жана конок операциялык системалары тарабынан колдоого алынбайт. Учурда аппараттык виртуалдаштырууну колдогон негизги түзүлүштөр процессорлор болуп саналат.

Паравиртуалдаштыруу. KVMде түзмөктү виртуалдаштыруунун эң кеңири таралган варианты жана конок операциялык системалары үчүн көбүнчө виртуалдаштыруу режими. Анын өзгөчөлүгү гипервизордун кээ бир подсистемалары менен иштөө (мисалы, тармак же диск стек менен) же эстутум барактарын бөлүштүрүү гипервизор API аркылуу, төмөнкү деңгээлдеги буйруктарды которуусуз ишке ашат. Бул виртуалдаштыруу ыкмасынын кемчилиги конок операциялык тутумунун ядросу ушул API аркылуу гипервизор менен байланыша алгыдай кылып өзгөртүлүшү керек. Бирок бул, адатта, конок операциялык тутумуна атайын драйверлерди орнотуу менен чечилет. KVMде бул API деп аталат virtio API.

Паравиртуалдаштыруу менен, трансляцияга салыштырмалуу, виртуалдык машинадан хосттогу гипервизор процессине командаларды жөнөтүү аркылуу физикалык түзүлүшкө жол бир топ кыскарат. Бул виртуалдык машинанын ичиндеги бардык көрсөтмөлөрдүн аткарылышын тездетүүгө мүмкүндүк берет. KVMде бул тармак же диск адаптери сыяктуу белгилүү бир түзмөктөрдө гана иштеген virtio API тарабынан жасалат. Мына ошондуктан virtio драйверлери виртуалдык машиналарга орнотулган.

Бул акселерациянын терс жагы виртуалдык машинанын ичинде иштеген бардык процесстер анын ичинде кала бербейт. Бул кээ бир өзгөчө эффекттерди жаратат, алар уурдоодо уюлдук чачууга алып келиши мүмкүн. Мен бул маселени деталдуу изилдөөнү баштоону сунуштайм Виртуалдык киргизүү/чыгаруу үчүн API: virtio.

2.3. "Адилет" расписание

Гипервизордогу виртуалдык машина, чындыгында, Linux ядросунда график түзүү (процесстер арасында ресурстарды бөлүштүрүү) мыйзамдарына баш ийген катардагы процесс, андыктан аны кененирээк карап чыгалы.

Linux 2.6.23 ядросунан бери демейки пландоочу болуп калган CFS, Completely Fair Scheduler деп аталганды колдонот. Бул алгоритмди түшүнүү үчүн Linux ядросунун архитектурасын же баштапкы кодду окуй аласыз. CFSтин маңызы процессордун убактысын процесстердин ортосунда алардын аткарылышынын узактыгына жараша бөлүштүрүүдө. Процесс канчалык көп CPU убактысын талап кылса, CPU убактысы ошончолук азыраак болот. Бул бардык процесстердин “адилеттүү” аткарылышын камсыздайт – бир процесс бардык процессорлорду тынымсыз ээлебей, башка процесстер да аткарылышы мүмкүн.

Кээде бул парадигма кызыктуу артефакттарды алып келет. Узак убакыттан бери Linux колдонуучулары компилятор сыяктуу ресурсту көп талап кылган тиркемелерди иштетип жатканда иш тактасында кадимки текст редакторунун тоңуп калганын эстеп калышы мүмкүн. Бул рабочий колдонмолордун ресурсту көп талап кылбаган тапшырмалары компилятор сыяктуу ресурстарды активдүү керектөөчү тапшырмалар менен атаандашкандыктан болду. CFS муну адилетсиз деп эсептейт, ошондуктан ал текст редакторун мезгил-мезгили менен токтотуп, процессорго компилятордун тапшырмаларын аткарууга мүмкүндүк берет. Бул механизмдин жардамы менен оңдолду sched_autogroup, бирок милдеттердин ортосунда процессор убактысын бөлүштүрүүнүн башка көптөгөн өзгөчөлүктөрү калган. Чындыгында, бул CFSде бардыгы канчалык жаман экендиги жөнүндө окуя эмес, бирок процессордун убактысын "адилет" бөлүштүрүү эң маанилүү иш эмес экендигине көңүл буруу аракети.

Пландоочу дагы бир маанилүү жагдай алдын ала болуп саналат. Бул процессордон шылдыңдоо процессин чыгарып, башкалардын иштешине мүмкүнчүлүк берүү үчүн керек. Эжекция процесси контекстти алмаштыруу деп аталат. Мында тапшырманын бүт контексти сакталат: стектин абалы, регистрлер ж.б., андан кийин процесс күтүүгө жөнөтүлүп, анын ордун башкасы ээлейт. Бул OS үчүн кымбат операция жана сейрек колдонулат, бирок анда эч кандай ката жок. Контекстти тез-тез алмаштыруу OSдеги көйгөйдү көрсөтүшү мүмкүн, бирок, адатта, ал үзгүлтүксүз жана өзгөчө эч нерсени билдирбейт.

Мындай узун окуя бир фактыны түшүндүрүү үчүн керек: чынчыл Linux пландаштыргычында процессордун ресурстары канчалык көп сарпталса, башка процесстер да иштеши үчүн ал ошончолук бат токтойт. Бул туурабы же жокпу - бул ар кандай жүктөмдөрдүн астында ар кандай чечиле турган татаал маселе. Windows-та, жакынкы убакка чейин пландоочу фондук процесстердин тоңушуна алып келиши мүмкүн болгон иш үстөлүндөгү тиркемелерди артыкчылыктуу иштетүүгө багытталган. Sun Solaris пландоочулардын беш түрдүү класстары болгон. Виртуалдаштырууну ишке киргизгенде, биз алтынчысын коштук, Адилет бөлүшүү пландоочусу, анткени мурунку беш Solaris Zones виртуалдаштыруу менен жетиштүү иштеген эмес. сыяктуу китептер менен бул маселени деталдуу изилдөөнү баштоону сунуштайм Solaris Internals: Solaris 10 жана OpenSolaris ядросунун архитектурасы же Linux ядросун түшүнүү.

2.4. Уурдоону кантип көзөмөлдөө керек?

Виртуалдык машинанын ичиндеги уурдоого мониторинг жүргүзүү, башка процессорлордун көрсөткүчтөрү сыяктуу эле, жөнөкөй: сиз процессордун метрикасынын каалаган куралын колдоно аласыз. Эң негизгиси, виртуалдык машина Linuxда. Эмнегедир Windows бул маалыматты өз колдонуучуларына бербейт. 🙁

Уурдоо: виртуалдык машиналардан CPU убактысын ким уурдайт
Жогорку команданын чыгышы: процессордун жүктөмүнүн чоо-жайы, эң оң жактагы тилкеде - уурдоо

Бул маалыматты гипервизордон алууга аракет кылып жатканда кыйынчылык пайда болот. Сиз, мисалы, Load Average (LA) параметрин - аткаруу кезегинде күтүп жаткан процесстердин санынын орточо маанисин колдонуп, хост машинасында уурдоону болжолдоого аракет кылсаңыз болот. Бул параметрди эсептөө ыкмасы жөнөкөй эмес, бирок жалпысынан, эгерде процессордук жиптердин саны боюнча нормалдаштырылган LA 1ден көп болсо, бул Linux серверине бир нерсе ашыкча жүктөлгөндүгүн билдирет.

Бул процесстердин баары эмнени күтүп жатат? Ачык жооп - процессор. Бирок жооп таптакыр туура эмес, анткени кээде процессор бекер, бирок LA масштабдан чыгып кетет. Эсиңизде болсун NFS кантип кулап, LA кантип өсөт. Ошол эле диск жана башка киргизүү/чыгаруу түзүлүштөрү менен болушу мүмкүн. Бирок чындыгында процесстер киргизүү/чыгаруу түзмөгү менен байланышкан физикалык же логикалык, мисалы, мутекс сыяктуу каалаган кулпунун бүтүшүн күтө алат. Бул ошондой эле аппараттык деңгээлде кулпулоону (дисктен бирдей жооп) же логиканы (объекттердин бир тобун камтыган кулпулоо примитивдери деп аталат, мутекс адаптациялоочу жана айлануу, семафорлор, шарт өзгөрмөлөрү, rw кулпулары, ipc кулпулары) камтыйт. ...).

LA дагы бир өзгөчөлүгү, ал иштөө тутумунун орточо көрсөткүчү катары каралат. Мисалы, бир файл үчүн 100 процесс атаандашып жатат, анан LA=50. Мындай чоң маани операциялык системанын начар экенин көрсөтүп турат. Ал эми башка кыйшык жазылган код үчүн, бул бир гана жаман болгонуна карабастан, нормалдуу абал болушу мүмкүн жана операциялык тутумдагы башка процесстер жабыркабайт.

Бул орточо (жана бир мүнөттөн кем эмес) болгондуктан, LA индикатору боюнча кандайдыр бир нерсени аныктоо өзгөчө учурларда өтө белгисиз натыйжалар менен эң пайдалуу иш эмес. Эгер сиз аны түшүнгөнгө аракет кылсаңыз, Википедиядагы жана башка жеткиликтүү ресурстардагы макалалар процессти терең түшүндүрбөстөн эң жөнөкөй учурларды гана сүрөттөй турганын көрөсүз. Кызыккандардын баарына кайра жиберем бул жерде Брендан Грегге  - төмөндөгү шилтемелерге өтүңүз. Англисче сүйлөгөнгө ким жалкоо - анын LA жөнүндө популярдуу макаласынын котормосу.

3. Атайын эффекттер

Эми биз жолуккан уурулуктун негизги учурларын карап көрөлү. Мен сизге алардын жогоруда айтылгандардын бардыгынан кандайча ээрчий турганын жана гипервизордогу көрсөткүчтөр менен кандай байланышы бар экенин айтып берем.

Кайра иштетүү. Эң жөнөкөй жана кеңири таралган: гипервизор кайра колдонулду. Чынында эле, иштеп жаткан виртуалдык машиналар көп, алардын ичинде жогорку процессор керектөө, атаандаштык көп, LA колдонуу 1ден ашык (процессордун жиптери менен нормалдаштырылган). Бардык виртуалдык машиналарда бардыгы жайлайт. Гипервизордон берилген уурдоо да өсүп жатат, жүктү кайра бөлүштүрүү же кимдир бирөөнү өчүрүү керек. Жалпысынан алганда, баары логикалуу жана түшүнүктүү.

Паравиртуалдаштыруу жана жалгыз инстанциялар. Гипервизордо бир гана виртуалдык машина бар; ал анын бир аз бөлүгүн керектейт, бирок, мисалы, дискте чоң киргизүү/чыгаруу жүгүн чыгарат. Ал эми бир жерден кичинекей уурулук пайда болот, 10% га чейин (бир нече эксперименттер көрсөткөндөй).

Иш кызык экен. Уурдоо бул жерде так паравиртуализацияланган айдоочулардын деңгээлинде бөгөт коюудан улам пайда болот. Виртуалдык машинанын ичинде үзгүлтүк түзүлүп, драйвер тарабынан иштетилет жана гипервизорго жөнөтүлөт. Гипервизордо үзгүлтүккө учурагандыктан, виртуалдык машина үчүн ал жөнөтүлгөн сурам сыяктуу көрүнөт, ал аткарууга даяр жана процессорду күтүп турат, бирок ага процессор убактысы берилбейт. Виртуалдык кыз бул убакытты уурдап кетти деп ойлойт.

Бул буфер жөнөтүлгөн учурда болот, ал гипервизордун ядро ​​мейкиндигине кирет жана биз аны күтө баштайбыз. Виртуалдык машинанын көз карашынан алганда, ал дароо кайтып келиши керек. Ошондуктан, уурдоо эсептөө алгоритми боюнча, бул убакыт уурдалган болуп эсептелет. Кыязы, бул жагдайда башка механизмдер болушу мүмкүн (мисалы, башка системалык чалууларды иштетүү), бирок алар көп айырмаланбашы керек.

Жогорку жүктөлгөн виртуалдык машиналарга каршы график түзүүчү. Бир виртуалдык машина уурдоодон башкаларга караганда көбүрөөк жабыркаса, бул пландоочуга байланыштуу. Процессор процессорду канчалык көп жүктөсө, башкалары да иштеши үчүн пландаштыргыч аны ошончолук эрте чыгарып салат. Эгерде виртуалдык машина аз керектесе, анда ал уурдаганды дээрлик көрө албайт: анын процесси чынчылдык менен отуруп, күттү, биз ага көбүрөөк убакыт беришибиз керек. Эгерде виртуалдык машина бардык өзөктөрүнө максималдуу жүктү өндүрсө, анда ал көп учурда процессордон чыгарылат жана алар ага көп убакыт бербөөгө аракет кылышат.

Виртуалдык машинанын ичиндеги процесстер көбүрөөк процессор алууга аракет кылганда, андан да жаманы, анткени алар маалыматтарды иштетүү менен күрөшө алышпайт. Ошондо гипервизордогу операциялык система чынчыл оптималдаштыруунун аркасында процессордун убактысын азыраак жана азыраак камсыз кылат. Бул процесс көчкү сыяктуу болот жана башка виртуалдык машиналар аны байкабай калышы мүмкүн. Жана өзөктөр канчалык көп болсо, жабыр тарткан машина ошончолук начар болот. Кыскача айтканда, көп өзөктөрү бар өтө жүктөлгөн виртуалдык машиналар эң көп жабыр тартышат.

Төмөн LA, бирок уурулук бар. Эгерде LA болжол менен 0,7 болсо (башкача айтканда, гипервизор аз жүктөлгөн окшойт), бирок уурдоо жеке виртуалдык машиналарда байкалат:

  • Жогоруда айтылган паравиртуализация менен опция. Виртуалдык машина уурдоону көрсөткөн көрсөткүчтөрдү ала алат, бирок гипервизор жакшы. Биздин эксперименттердин жыйынтыгы боюнча, бул уурдоо опциясы 10% дан ашпайт жана виртуалдык машинанын ичиндеги тиркемелердин иштешине олуттуу таасирин тийгизбеши керек.
  • LA параметри туура эмес эсептелген. Тагыраак айтканда, ар бир конкреттүү учурда туура эсептелет, бирок бир мүнөттүн ичинде орточо эсепке алынганда ал бааланбай калат. Мисалы, эгерде гипервизордун үчтөн бир виртуалдык машинасы бардык процессорлорун туура жарым мүнөттө жесе, анда гипервизордо мүнөтүнө LA 0,15 болот; бир убакта иштеген төрт виртуалдык машина 0,6 берет. Ал эми алардын ар биринде жарым мүнөттөн LA көрсөткүчү боюнча 25% жапайы уурулук болгонун мындан ары алып салуу мүмкүн эмес.
  • Дагы, кимдир бирөө өтө көп жеп жатат деп чечкен жана кимдир бирөө күтө турсун деп чечкен пландоочу үчүн. Ал ортодо мен контекстти алмаштырам, үзгүлтүктөрдү жөнгө салам жана башка маанилүү системалык нерселерге кам көрөм. Натыйжада, кээ бир виртуалдык машиналар эч кандай көйгөйлөрдү көрүшпөйт, ал эми башкалары иштин олуттуу начарлашына дуушар болушат.

4. Башка бурмалоолор

Виртуалдык машинада процессор убактысынын адилеттүү кайтарылышын бурмалоо үчүн дагы миллиондогон себептер бар. Мисалы, hyperthreading жана NUMA эсептөөлөргө кыйынчылыктарды киргизет. Алар процессти аткаруу үчүн ядрону тандоону толугу менен чаташтырышат, анткени пландоочу коэффициенттерди – салмактарды колдонот, бул контекстти которууда эсептөөнү ого бетер кыйындатат.

Турбо күчтөндүрүү же тескерисинче энергияны үнөмдөө режими сыяктуу технологиялардан улам бурмалоолор бар, алар колдонууну эсептөөдө сервердеги жыштыкты же атүгүл убакытты жасалма түрдө көбөйтүп же азайтышы мүмкүн. Турбо күчөтүүнү иштетүү бир процессордун жипинин иштешин башка процессордун өндүрүмдүүлүгүнүн жогорулашына байланыштуу төмөндөтөт. Учурда процессордун учурдагы жыштыгы жөнүндө маалымат виртуалдык машинага берилбейт жана ал кимдир бирөө анын убактысын уурдап жатат деп эсептейт (мисалы, ал 2 ГГц сураган, бирок анын жарымын алган).

Жалпысынан алганда, бурмалоо үчүн көптөгөн себептер болушу мүмкүн. Белгилүү бир системада башка нерсени таба аласыз. Мен жогоруда шилтеме берген китептерден баштап, гипервизордон perf, sysdig, systemtap сыяктуу утилиталардын жардамы менен статистиканы алуу жакшыраак. ондогон.

5. Корутундулар

  1. Паравиртуализациядан улам кээ бир уурулук болушу мүмкүн жана аны нормалдуу деп эсептесе болот. Алар интернетте бул көрсөткүч 5-10% болушу мүмкүн деп жазып жатышат. Виртуалдык машинанын ичиндеги тиркемелерге жана анын физикалык түзүлүштөрүнө жүктөөгө жараша болот. Бул жерде приложениялардын виртуалдык машиналарда кандай сезимде экенине көңүл буруу маанилүү.
  2. Виртуалдык машинанын ичиндеги гипервизорго жүктөмдүн жана уурдоонун катышы дайыма эле так өз ара байланышта боло бербейт; уурдоонун эки баасы тең ар кандай жүктөмдөрдүн астында конкреттүү кырдаалдарда ката болушу мүмкүн.
  3. Пландоочу көп сураган процесстерге жаман мамиле кылат. Көбүрөөк сурагандарга аз бергенге аракет кылат. Чоң виртуалдык машиналар жаман.
  4. Бир аз уурдоо паравиртуалдаштыруусуз да норма болушу мүмкүн (виртуалдык машинанын ичиндеги жүктөмдү, кошуналардын жүктөмүнүн өзгөчөлүктөрүн, жиптер боюнча жүктүн бөлүштүрүлүшүн жана башка факторлорду эске алуу менен).
  5. Эгер сиз белгилүү бир системада уурулукту билгиңиз келсе, анда ар кандай варианттарды изилдеп, метрикаларды чогултуп, аларды кылдат талдап, жүктү кантип бирдей бөлүштүрүүнү ойлонушуңуз керек. Ар кандай учурлардан четтөөлөр болушу мүмкүн, алар эксперименталдык түрдө тастыкталышы керек же ядродогу мүчүлүштүктөрдү оңдоочуда каралышы керек.

Source: www.habr.com

Комментарий кошуу