غلا: څوک د مجازی ماشینونو څخه د پروسیسر وخت غلا کوي

غلا: څوک د مجازی ماشینونو څخه د پروسیسر وخت غلا کوي

سلام! زه غواړم تاسو ته په ساده ژبه کې د مجازی ماشینونو دننه د غلا کولو میکانیکونو او د ځینې غیر څرګند هنري اثارو په اړه ووایم چې موږ د دې څیړنې په جریان کې موندلي و ، کوم چې ما باید د کلاوډ پلیټ فارم تخنیکي رییس په توګه ډوب کړم. Mail.ru کلاوډ حلونه. پلیټ فارم په KVM چلیږي.

د CPU غلا وخت هغه وخت دی چې په جریان کې مجازی ماشین د هغې د اجرا کولو لپاره د پروسیسر سرچینې نه ترلاسه کوي. دا وخت یوازې په مجازی چاپیریال کې د میلمنو عملیاتي سیسټمونو کې شمیرل کیږي. د دې لپاره چې دا ډیری تخصیص شوي سرچینې چیرته ځي، د ژوند په څیر، خورا مبهم دي. مګر موږ پریکړه وکړه چې دا معلومه کړو، او حتی یو شمیر تجربې یې ترسره کړې. دا نه ده چې موږ اوس د غلا په اړه هرڅه پوهیږو، مګر موږ به تاسو ته اوس یو څه په زړه پورې ووایو.

1. غلا څه شی دی

نو، غلا یو میټریک دی چې د مجازی ماشین دننه پروسو لپاره د پروسیسر وخت نشتوالی په ګوته کوي. لکه څنګه چې بیان شوي د KVM کرنل پیچ کېسټیلټ هغه وخت دی په کوم کې چې هایپروایزر په کوربه OS کې نورې پروسې اجرا کوي حتی که څه هم دا د مجازی ماشین پروسې د اجرا کولو لپاره قطار کړی وي. دا دی، غلا د هغه وخت تر مینځ د توپیر په توګه محاسبه کیږي کله چې پروسه اجرا کولو ته چمتو وي او هغه وخت چې پروسه د پروسیسر وخت تخصیص کیږي.

د مجازی ماشین کارنل د هایپروایزر څخه غلا میټریک ترلاسه کوي. په ورته وخت کې ، هایپروایزر دقیقا مشخص نه کوي چې نور کومې پروسې پرمخ وړي ، دا په ساده ډول وايي "په داسې حال کې چې زه بوخت یم ، زه نشم کولی تاسو ته وخت درکړم." په KVM کې، د غلا محاسبې لپاره ملاتړ اضافه شوی پیچونه. دلته دوه مهم ټکي شتون لري:

  • مجازی ماشین د هایپروایزر څخه د غلا په اړه زده کوي. دا ، د زیانونو له نظره ، پخپله په مجازی ماشین کې د پروسو لپاره دا یو غیر مستقیم اندازه ده چې د مختلف تحریفونو تابع کیدی شي.
  • هایپروایسر د مجازی ماشین سره معلومات نه شریکوي چې دا نور څه کوي - اصلي شی دا دی چې دا ورته وخت نه وقف کوي. د دې له امله، مجازی ماشین پخپله نشي کولی د غلا شاخص کې تحریفات کشف کړي، کوم چې د سیالي کولو پروسو د طبیعت لخوا ارزول کیدی شي.

2. هغه څه چې په غلا اغیزه کوي

2.1. حساب غلا کول

په لازمي ډول، غلا تقریبا د عادي CPU کارولو وخت په څیر محاسبه کیږي. د ریسایکل کولو څرنګوالي په اړه ډیر معلومات شتون نلري. شاید ځکه چې ډیری خلک دا پوښتنه روښانه ګڼي. مګر دلته هم نیمګړتیاوې شتون لري. د دې پروسې سره د ځان پیژندلو لپاره، تاسو کولی شئ ولولئ د برینډن ګریګ لخوا مقاله: تاسو به د ډیری باریکیو په اړه زده کړئ کله چې د کارونې محاسبه کوئ او د شرایطو په اړه چې دا محاسبه به د لاندې دلایلو لپاره غلطه وي:

  • پروسیسر ډیر ګرموي او د ساعت دورې پریږدي.
  • د ټربو بوسټ فعال / غیر فعال کړئ، کوم چې د پروسیسر ساعت فریکوینسي بدلوي.
  • د وخت سلائس په اوږدوالي کې بدلون چې پیښیږي کله چې د پروسیسر بریښنا سپمولو ټیکنالوژیو کارول لکه سپیډ سټیپ.
  • د اوسط محاسبه کولو سره ستونزه: د یوې دقیقې کارولو اټکل په 80٪ کې کولی شي د 100٪ لنډ مهاله دفن پټ کړي.
  • یو سپن لاک د دې لامل کیږي چې پروسیسر بیرته ترلاسه شي ، مګر د کارونکي پروسه د هغې په اجرا کې کوم پرمختګ نه ګوري. د پایلې په توګه، د پروسې لخوا محاسبه شوي پروسیسر کارول به سل په سلو کې وي، که څه هم پروسه به په فزیکي توګه د پروسیسر وخت مصرف نکړي.

ما داسې مقاله نه ده موندلې چې د غلا لپاره ورته محاسبه تشریح کړي (که تاسو پوهیږئ، په نظرونو کې یې شریک کړئ). مګر، د سرچینې کوډ لخوا قضاوت کول، د محاسبې میکانیزم د ریسایکل کولو لپاره ورته دی. په ساده ډول، یو بل کاونټر په کرنل کې اضافه شوی، مستقیم د KVM پروسې (مجازی ماشین پروسې) لپاره، کوم چې د CPU وخت په انتظار کې د KVM پروسې موده حسابوي. کاونټر د دې مشخصاتو څخه د پروسیسر په اړه معلومات اخلي او ګوري چې ایا د هغې ټولې ټیکونه د مجازی ماشین پروسې لخوا کارول شوي. که دا ټول وي، نو موږ فکر کوو چې پروسیسر یوازې د مجازی ماشین پروسې سره نیول شوی و. که نه نو، موږ خبر ورکوو چې پروسیسر بل څه کوي، غلا ښکاره شوه.

د غلا د شمیرنې پروسه د ورته ستونزو سره مخ ده لکه د منظم ریسایکل شمیرنې. دا نه ویل کیږي چې دا ډول ستونزې ډیری وختونه څرګندیږي ، مګر دوی مایوسه ښکاري.

2.2. په KVM کې د مجازی کولو ډولونه

په پراخه توګه خبرې کول، درې ډوله مجازی کول شتون لري، چې ټول یې د KVM لخوا ملاتړ کیږي. د غلا کولو میکانیزم ممکن د مجازی کولو ډول پورې اړه ولري.

خپرونه. پدې حالت کې ، د فزیکي هایپروایزر وسیلو سره د مجازی ماشین عملیاتي سیسټم عملیات داسې پیښیږي:

  1. د میلمه عملیاتي سیسټم خپل میلمه آلې ته کمانډ لیږي.
  2. د میلمه وسیله ډرایور کمانډ ترلاسه کوي، د BIOS وسیلې لپاره غوښتنه رامینځته کوي او هایپروایسر ته لیږي.
  3. د هایپروایزر پروسه د فزیکي وسیلې لپاره کمانډ ته کمانډ ژباړي ، دا د نورو شیانو په مینځ کې ، ډیر خوندي کوي.
  4. د فزیکي وسیلې چلوونکی بدل شوی کمانډ مني او پخپله فزیکي وسیله ته لیږي.
  5. د امرونو د اجرا کولو پایلې په ورته لاره کې بیرته ځي.

د ژباړې ګټه دا ده چې دا تاسو ته اجازه درکوي هر وسیله تقلید کړئ او د عملیاتي سیسټم کرنل ځانګړي چمتووالي ته اړتیا نلري. مګر تاسو باید د دې لپاره پیسې ورکړئ، لومړی، په سرعت کې.

د هارډویر مجازی کول. په دې حالت کې، وسیله د هارډویر په کچه د عملیاتي سیسټم څخه کمانډونه پوهیږي. دا ترټولو چټکه او غوره لاره ده. مګر، له بده مرغه، دا د ټولو فزیکي وسایلو، هایپروایزرونو او میلمنو عملیاتي سیسټمونو لخوا نه ملاتړ کیږي. اوس مهال، اصلي وسایل چې د هارډویر مجازی کولو ملاتړ کوي پروسیسرونه دي.

Paravirtualization. په KVM کې د وسیلې مجازی کولو لپاره خورا عام انتخاب او په عمومي ډول د میلمنو عملیاتي سیسټمونو لپاره ترټولو عام مجازی کولو حالت. د دې ځانګړتیا دا ده چې د ځینې هایپروایزر فرعي سیسټمونو سره کار کول (د مثال په توګه ، د شبکې یا ډیسک سټیک سره) یا د حافظې پا pagesو تخصیص د ټیټ کچې کمانډونو ژباړلو پرته د هایپروایزر API په کارولو سره پیښیږي. د دې مجازی کولو میتود نیمګړتیا دا ده چې د میلمه عملیاتي سیسټم کارنل باید بدل شي ترڅو دا د دې API په کارولو سره د هایپروایزر سره اړیکه ونیسي. مګر دا معمولا د میلمستون عملیاتي سیسټم کې د ځانګړي ډرایورونو نصبولو سره حل کیږي. په KVM کې دا API ویل کیږي virtio API.

د پارورچوولائزیشن سره ، د نشراتو په پرتله ، فزیکي وسیلې ته لاره په کوربه کې د هایپروایزر پروسې ته مستقیم د مجازی ماشین څخه د کمانډونو لیږلو سره د پام وړ کمه شوې. دا تاسو ته اجازه درکوي د مجازی ماشین دننه د ټولو لارښوونو اجرا کول ګړندي کړئ. په KVM کې، دا د virtio API لخوا ترسره کیږي، کوم چې یوازې د ځانګړو وسیلو لپاره کار کوي، لکه د شبکې یا ډیسک اډاپټر. له همدې امله د ویرټیو ډرایورونه په مجازی ماشینونو کې نصب شوي.

د دې سرعت منفي اړخ دا دی چې ټولې پروسې چې د مجازی ماشین دننه پرمخ نه ځي د هغې دننه پاتې کیږي. دا ځینې ځانګړي اغیزې رامینځته کوي چې کولی شي په غلا کې د سپینیدو پایله ولري. زه وړاندیز کوم چې د دې مسلې تفصيلي مطالعه پیل کړئ د مجازی I/O لپاره API: virtio.

2.3. "عادلانه" مهال ویش

په هایپروایسر کې یو مجازی ماشین په حقیقت کې یو عادي پروسه ده چې د لینکس کرنل کې د مهالویش قانون (پروسو ترمنځ د سرچینو ویش) اطاعت کوي، نو راځئ چې دې ته نږدې وګورو.

لینکس په نوم CFS کاروي، په بشپړ ډول منصفانه مهالویش کونکی، کوم چې د کرنل 2.6.23 راهیسې ډیفالټ مهالویش جوړ شوی. د دې الګوریتم د پوهیدو لپاره، تاسو کولی شئ د لینکس کرنل آرکیټیکچر یا د سرچینې کوډ ولولئ. د CFS جوهر د پروسو تر مینځ د پروسیسر وخت ویشل د دوی د اجرا کولو مودې پورې اړه لري. څومره چې یوه پروسه د CPU ډیر وخت ته اړتیا لري، د CPU وخت کم دی. دا ډاډ ورکوي چې ټولې پروسې په "عادلانه" ډول اجرا کیږي - نو دا چې یوه پروسه په دوامداره توګه ټول پروسیسرونه نه نیسي، او نورې پروسې هم اجرا کولی شي.

ځینې ​​​​وختونه دا تمثیل د زړه پورې آثارو لامل کیږي. د اوږدې مودې لینکس کارونکي شاید په ډیسټاپ کې د منظم متن ایډیټر کنګل کول په یاد ولري پداسې حال کې چې د سرچینې ژور غوښتنلیکونه لکه کمپیلر چلوي. دا پیښ شوي ځکه چې په ډیسټاپ غوښتنلیکونو کې غیر سرچینې - ګړندۍ دندې د سرچینې - ګړندي کارونو سره سیالي کوي ، لکه کمپیلر. CFS فکر کوي چې دا غیر عادلانه دی، نو دا په وخت سره د متن مدیر ودروي او پروسیسر ته اجازه ورکوي چې د کمپیلر دندې اداره کړي. دا د میکانیزم په کارولو سره سم شوی sched_autogroup، مګر د دندو تر مینځ د پروسیسر وخت ویشلو ډیری نور ځانګړتیاوې پاتې دي. په حقیقت کې، دا یوه کیسه نه ده چې په CFS کې هرڅه څومره خراب دي، مګر د دې حقیقت ته د پام اړولو هڅه چې د پروسیسر وخت "عادلانه" ویش خورا کوچنی کار ندی.

په مهالویش کې بل مهم ټکی پریمپشن دی. دا اړینه ده چې د پروسیسر څخه د سپکولو پروسه لرې کړئ او نورو ته اجازه ورکړئ چې کار وکړي. د اخراج پروسې ته د شرایطو سویچنګ ویل کیږي. په دې حالت کې، د دندې ټول شرایط ساتل کیږي: د سټیک حالت، راجستر، او نور، وروسته له دې چې پروسه انتظار ته لیږل کیږي، او بل یې خپل ځای نیسي. دا د OS لپاره یو ګران عملیات دی او په ندرت سره کارول کیږي، مګر پدې کې هیڅ ډول غلط شتون نلري. په مکرر ډول د شرایطو بدلول ممکن په OS کې ستونزه په ګوته کړي ، مګر معمولا دا دوامداره وي او په ځانګړي توګه هیڅ شی نه په ګوته کوي.

د یو حقیقت تشریح کولو لپاره دومره اوږدې کیسې ته اړتیا ده: څومره چې د پروسس سرچینې ډیرې پروسې هڅه کوي په ریښتیني لینکس مهالویش کې مصرف کړي ، ګړندی به ودریږي ترڅو نورې پروسې هم کار وکړي. ایا دا سمه ده یا نه یوه پیچلې پوښتنه ده چې د مختلف بارونو لاندې په مختلف ډول حل کیدی شي. په وینډوز کې، تر دې وروستیو پورې، مهالویش د ډیسټاپ غوښتنلیکونو لومړیتوب پروسس کولو باندې تمرکز درلود، کوم چې کولی شي د شالید پروسې کنګل کیدو لامل شي. Sun Solaris د مهالویش پنځه مختلف ټولګي درلودل. کله چې موږ مجازی کول پیل کړل، موږ شپږم اضافه کړ، د منصفانه شریکولو مهال ویش، ځکه چې تیرو پنځو د سولاریس زونونو مجازی کولو سره کافي کار نه کاوه. زه وړاندیز کوم چې د دې مسلې مفصله مطالعه د کتابونو سره پیل کړئ د سولاریس داخلي: سولاریس 10 او اوپن سولاریس کرنل آرکیټیکچر او یا د لینکس کرنل درک کول.

2.4. د غلا څارنه څنګه؟

د مجازی ماشین دننه د غلا څارنه، لکه د بل پروسیسر میټریک، ساده ده: تاسو کولی شئ د پروسیسر میټریک وسیله وکاروئ. اصلي شی دا دی چې مجازی ماشین په لینکس کې دی. د ځینو دلیلونو لپاره، وینډوز دا معلومات خپلو کاروونکو ته نه ورکوي. 🙁

غلا: څوک د مجازی ماشینونو څخه د پروسیسر وخت غلا کوي
د پورتنۍ کمانډ محصول: د پروسیسر بار توضیحات ، په ښي اړخ کې - غلا کول

ستونزه هغه وخت رامینځته کیږي کله چې د هایپروایزر څخه دا معلومات ترلاسه کولو هڅه کوي. تاسو کولی شئ په کوربه ماشین کې د غلا اټکل کولو هڅه وکړئ، د بیلګې په توګه، د بار اوسط (LA) پیرامیټر په کارولو سره - د اعدام په کتار کې د انتظار د پروسو شمیر اوسط ارزښت. د دې پیرامیټر محاسبه کولو میتود ساده ندی ، مګر په عموم کې ، که چیرې LA د پروسیسر تارونو شمیر لخوا نورمال شي له 1 څخه ډیر وي ، دا په ګوته کوي چې د لینکس سرور د یو څه سره ډیر شوی دی.

دا ټولې پروسې د څه په تمه دي؟ ښکاره ځواب پروسیسر دی. مګر ځواب په بشپړ ډول سم ندی، ځکه چې ځینې وختونه پروسیسر وړیا وي، مګر LA پیمانه ځي. په یاد ولرئ NFS څنګه راټیټیږي او LA څنګه وده کوي. ورته د ډیسک او نورو ان پټ/آؤټ پوټ وسیلو سره پیښ کیدی شي. مګر په حقیقت کې، پروسې کولی شي د هر تالاش پای ته انتظار وکړي، یا فزیکي، د I/O وسیلې سره تړاو لري، یا منطقي، لکه د میوټیکس. پدې کې د هارډویر په کچه تالاشۍ هم شامله ده (د ډیسک څخه ورته ځواب)، یا منطق (د تش په نامه تالاشۍ ابتدايي، کوم چې د یو شمیر ادارو، متیکس تطبیق او سپن، سیمفورز، د حالت تغیرات، rw لاکونه، ipc لاکونه شامل دي. ...).

د LA بله ځانګړتیا دا ده چې دا د عملیاتي سیسټم اوسط ګڼل کیږي. د مثال په توګه، 100 پروسې د یوې فایل لپاره سیالي کوي، او بیا LA = 50. دومره لوی ارزښت به داسې ښکاري چې عملیاتي سیسټم خراب دی. مګر د نورو کرغېړن لیکل شوي کوډونو لپاره ، دا ممکن یو نورمال حالت وي ، سره له دې چې دا یوازې خراب دی ، او په عملیاتي سیسټم کې نورې پروسې زیان نلري.

د دې اوسط له امله (او له یوې دقیقې څخه لږ نه)، د LA شاخص لخوا د هر څه ټاکل خورا ګټور کار نه دی، په ځانګړو قضیو کې د خورا ناڅرګندو پایلو سره. که تاسو د دې د معلومولو هڅه وکړئ، تاسو به ومومئ چې په ويکيپېډيا او نورو موجودو سرچينو کې مقالې يوازې ساده قضيې بيانوي، پرته له دې چې د پروسې ژور وضاحت وکړي. زه هرڅوک لیږم چې لیواله وي، بیا، دلته برینډن ګریګ ته  - لاندې لینکونه تعقیب کړئ. څوک چې په انګلیسي خبرې کولو کې ډیر سست دی - د LA په اړه د هغه د مشهور مقالې ژباړه.

3. ځانګړي اغیزې

اوس راځئ چې د غلا اصلي قضیې وګورو چې موږ ورسره مخ شوي یو. زه به تاسو ته ووایم چې دوی څنګه د پورته ټولو څخه تعقیبوي او څنګه دوی د هایپروایزر شاخصونو سره تړاو لري.

ریسایکل کول. ترټولو ساده او خورا عام: هایپروایسر بیا کارول شوی. په حقیقت کې ، ډیری چلونکي مجازی ماشینونه شتون لري ، د دوی دننه د پروسیسر لوړ مصرف ، خورا سیالي ، د LA کارول له 1 څخه ډیر دي (د پروسیسر تارونو لخوا نورمال شوي). د ټولو مجازی ماشینونو دننه هرڅه ورو کیږي. د هایپروایزر څخه لیږدول شوي غلا هم وده کوي، دا اړینه ده چې بار بیا توزیع کړئ یا یو څوک بند کړئ. په عموم کې، هرڅه منطقي او د پوهیدو وړ دي.

Paravirtualization په مقابل کې واحد مثالونه. په هایپروایسر کې یوازې یو مجازی ماشین شتون لري؛ دا د هغې لږه برخه مصرفوي، مګر لوی I/O بار تولیدوي، د بیلګې په توګه په ډیسک کې. او له کوم ځای څخه یو کوچنی غلا په دې کې ښکاري، تر 10٪ پورې (لکه څنګه چې د څو تجربو لخوا ښودل شوي).

قضیه په زړه پورې ده. غلا دلته په دقیق ډول د پارورچوئل ډرایورانو په کچه د بلاک کولو له امله ښکاري. یو مداخله د مجازی ماشین دننه رامینځته کیږي ، د ډرایور لخوا پروسس کیږي او هایپروایزر ته لیږل کیږي. په هایپروایسر کې د مداخلې اداره کولو له امله ، د مجازی ماشین لپاره دا د لیږل شوي غوښتنې په څیر ښکاري ، دا د اجرا لپاره چمتو دی او پروسیسر ته انتظار باسي ، مګر دا د پروسیسر وخت نه دی ورکړل شوی. مجازي نجلۍ فکر کوي چې دا ځل غلا شوې ده.

دا هغه وخت پیښیږي کله چې بفر لیږل کیږي، دا د هایپروایزر د کرنل ځای ته ځي، او موږ یې انتظار پیل کوو. که څه هم، د مجازی ماشین له نظره، هغه باید ژر تر ژره بیرته راشي. له همدې امله، د غلا محاسبه الګوریتم مطابق، دا وخت غلا ګڼل کیږي. ډیری احتمال، پدې حالت کې ممکن نور میکانیزمونه شتون ولري (د بیلګې په توګه، د ځینې نورو سیس کالونو پروسس کول)، مګر دوی باید ډیر توپیر ونه لري.

مهالویش کونکي د لوړ بار شوي مجازی ماشینونو په مقابل کې. کله چې یو مجازی ماشین د نورو په پرتله ډیر غلا کوي، دا د مهالویش له امله دی. هرڅومره چې یوه پروسه پروسیسر بار کوي ، هومره ژر چې مهالویش به یې لرې کړي ترڅو نور هم کار وکړي. که چیرې مجازی ماشین لږ مصرف کړي، نو دا به په سختۍ سره غلا وګوري: دا پروسه په صادقانه توګه ناست او انتظار کوي، موږ اړتیا لرو چې ډیر وخت ورکړو. که چیرې یو مجازی ماشین په خپلو ټولو کورونو کې اعظمي بار تولید کړي ، نو دا ډیری وختونه د پروسیسر څخه ایستل کیږي او دوی هڅه کوي ډیر وخت ورته نه ورکوي.

دا خورا بد دی کله چې د مجازی ماشین دننه پروسې هڅه کوي نور پروسیسر ترلاسه کړي ځکه چې دوی نشي کولی د ډیټا پروسس کولو سره مقابله وکړي. بیا په هایپروایسر کې عملیاتي سیسټم ، د صادقانه اصلاح له امله به لږ او لږ پروسیسر وخت چمتو کړي. دا پروسه د واورې توپان په څیر پیښیږي، او اسمان ته کودونه غلا کوي، که څه هم نور مجازی ماشینونه ممکن په سختۍ سره پام وکړي. او هرڅومره چې کورونه ډیر وي ، اغیزمن ماشین خراب وي. په لنډه توګه، د ډیری کورونو سره خورا ډیر بار شوي مجازی ماشینونه خورا زیان لري.

ټیټ LA، مګر غلا شتون لري. که چیرې LA نږدې 0,7 وي (یعنې داسې ښکاري چې هایپروایسر ښکته شوی وي) ، مګر غلا په انفرادي مجازی ماشینونو کې لیدل کیږي:

  • د پارورچولیزیشن سره اختیار دمخه پورته بیان شوی. مجازی ماشین کولی شي میټریکونه ترلاسه کړي چې غلا څرګندوي، که څه هم هایپروایسر ښه دی. زموږ د تجربو د پایلو له مخې، دا غلا اختیار له 10٪ څخه زیات نه وي او باید د مجازی ماشین دننه د غوښتنلیکونو په فعالیت باندې د پام وړ اغیزه ونلري.
  • د LA پیرامیټر په غلط ډول محاسبه شوی. په دقیقه توګه، په هره ځانګړې شیبه کې دا په سمه توګه محاسبه کیږي، مګر کله چې د یوې دقیقې څخه په اوسط ډول محاسبه شي نو دا به کمه اټکل شي. د مثال په توګه، که چیرې د هایپروایسر په دریمه برخه کې یو مجازی ماشین د نیمې دقیقې لپاره خپل ټول پروسیسرونه مصرف کړي، نو په هایپروایسر کې په یوه دقیقه کې LA به 0,15 وي؛ څلور داسې مجازی ماشینونه چې په ورته وخت کې کار کوي 0,6 ورکوي. او دا حقیقت چې د دوی په هر یو کې د نیمې دقیقې لپاره د LA شاخص سره سم په 25٪ کې وحشي غلا وه نور نشي ایستل کیدی.
  • یوځل بیا ، د مهالویش کونکي له امله چې پریکړه یې وکړه چې یو څوک ډیر وخوري او اجازه راکړئ چې څوک انتظار وکړي. په ورته وخت کې ، زه به شرایط بدل کړم ، مداخلې اداره کړم او د سیسټم نورو مهمو شیانو ته پاملرنه وکړم. د پایلې په توګه، ځینې مجازی ماشینونه کومه ستونزه نه ګوري، پداسې حال کې چې نور د فعالیت جدي تخریب تجربه کوي.

4. نور تحریفونه

په مجازی ماشین کې د پروسیسر وخت عادلانه راستنیدو تحلیل لپاره یو ملیون نور دلیلونه شتون لري. د مثال په توګه، هایپرتریډینګ او NUMA په محاسبه کې ستونزې معرفي کوي. دوی د پروسې اجرا کولو لپاره د کرنل انتخاب په بشپړ ډول مغشوشوي ، ځکه چې مهالویش کونکی کفایت - وزنونه کاروي ، کوم چې د شرایطو بدلولو پرمهال محاسبه خورا ستونزمن کوي.

د ټیکنالوژیو له امله تحریفونه شتون لري لکه د ټربو بوسټ یا ، په برعکس ، د انرژي سپمولو حالت ، کوم چې د کارولو محاسبه کول په مصنوعي ډول کولی شي فریکونسۍ یا حتی په سرور کې د وخت سلائس زیات یا کم کړي. د ټربو بوسټ فعالول د یو پروسیسر تار فعالیت کموي د بل فعالیت د زیاتوالي له امله. په دې وخت کې، د اوسني پروسیسر فریکونسۍ په اړه معلومات مجازی ماشین ته نه لیږدول کیږي، او دا باور لري چې یو څوک خپل وخت غلا کوي (د مثال په توګه، دا د 2 GHz غوښتنه کړې، مګر نیم یې ترلاسه کړی).

په عموم کې، د تحریف ډیری دلیلونه کیدی شي. تاسو ممکن په یو ځانګړي سیسټم کې بل څه ومومئ. دا غوره ده چې د هغه کتابونو سره پیل کړئ چې ما پورته لینکونه ورکړي دي، او د هایپروایزر څخه احصایې ترلاسه کول د اسانتیاو لکه perf، sysdig، systemtap، کوم چې لسګونه.

5. نتيجه

  1. د غلا یو څه اندازه ممکن د پارورچولائزیشن له امله رامینځته شي، او دا نورمال ګڼل کیدی شي. دوی په انټرنیټ کې لیکي چې دا ارزښت 5-10٪ کیدی شي. د مجازی ماشین دننه غوښتنلیکونو پورې اړه لري او په هغه بار چې دا په فزیکي وسیلو کې اچوي. دلته دا مهمه ده چې پام وکړئ چې څنګه غوښتنلیکونه په مجازی ماشینونو کې احساس کوي.
  2. په هایپروایسر کې د بار تناسب او د مجازی ماشین دننه غلا تل په روښانه ډول سره تړاو نلري؛ د غلا دواړه اټکلونه په ځانګړي حالت کې د مختلف بارونو لاندې غلط کیدی شي.
  3. مهالویش کونکی د پروسو په وړاندې ناوړه چلند لري چې ډیری پوښتنې کوي. هغه هڅه کوي هغه چا ته لږ ورکړي چې د ډیر څه غوښتنه کوي. لوی مجازی ماشینونه بد دي.
  4. یو څه غلا کیدی شي حتی د پارورچولیزیشن پرته نورمال وي (د مجازی ماشین دننه بار په پام کې نیولو سره ، د ګاونډیو بار کولو ځانګړتیاوې ، د تارونو په اوږدو کې د بار توزیع او نور فاکتورونه).
  5. که تاسو غواړئ په یو ځانګړي سیسټم کې غلا معلومه کړئ، نو تاسو باید مختلف انتخابونه وپلټئ، میټریکونه راټول کړئ، په احتیاط سره یې تحلیل کړئ او په مساوي ډول د بار ویشلو په اړه فکر وکړئ. د هرې قضیې څخه انحراف ممکن دي، کوم چې باید په تجربه سره تایید شي یا د کرنل ډیبګر کې وڅیړل شي.

سرچینه: www.habr.com

Add a comment