در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

Virtual CPU یا vCPU چیست ؟

یک Virtual CPU یا پردازنده مجازی که آن را به عنوان Virtual Processor هم ممکن است ببینیم در واقع یک CPU فیزیکی است که به یک ماشین مجازی یا Virtual Machine اختصاص یافته است. بصورت پیشفرض به هر Virtual Machine یک vCPU اختصاص داده می شود ولی اگر سیستم Host شما دارای چندین CPU فیزیکی باشد یا تعداد Core های CPU شما بالا باشد ، شما می توانید به VM های خودتان بیشتر از یک vCPU را اختصاص بدهید ، به vCPU در اصطلاح Logical Processor هم گفته می شود . اگر از سرویس دهنده های Cloud استفاده کرده باشید و یا ساده تر از آن از سرویس های هاستینگ اختصاصی یا مجازی استفاده کرده باشید ، باید بدانید که هزینه های مربوط به قدرت پردازشی در محیط cloud و یا سرورهای مجازی چگونه محاسبه می شود و صورتحساب شما چگونه صادر می شود. این برای یک مدیر شبکه بسیار مهم است که درک کند با اضافه کردن یک vCPU جدید به سرور الزاما سرعت پردازشی و کارایی سیستم بالا نمی رود. قبلا هم در انجمن تخصصی فناوری اطلاعات ایران در خصوص این موضوع با هم صحبت کرده ایم.

vCPU چیست

با اضافه شدن vCPU های جدید طبیعتا زمانبندی و همچنین هدایت کردن درخواست ها بین slot های فیزیکی CPU و تقسیم وظایف بین vCPU ها و هماهنگ کردن آنها با CPU فیزیکی سیستم بسیار بسیار سخت می شودو همین موضوع باعث می شود کارایی سیستم بعضا نه تنها زیاد نشود بلکه کم هم می شود. قبلا در قسمت سخت افزار ITPRO در خصوص اضافه کردن CPU های فیزیکی به سیستم صحبت کردیم ، گفتیم اگر دو عدد CPU داشته باشید که برای مثال دارای قدرت پردازشی 2000 گیگاهرتز باشند ، سرعت پردازشی شما 4000 گیگاهرتز نمی شود زیرا تقریبا نصب قدرت پردازشی پردازنده دوم به تقسیم بندی و مدیریت پردازش ها بر روی دو CPU اختصاص می یابد و به سیستم کاری ندارد. در VMware پردازنده مجازی یا vCPU ها در واقع قسمتی از Symmetric Multiprocessing یا SMP هستند. SMP این امکان را به thread ها می دهد که بین هسته های فیزیکی یا مجازی پردازنده تقسیم شوند و با اینکار کارایی پردازشی سیستم بسیار زیاد می شود و به نوعی پردازش موازی را برای ما فراهم می کنند. vCPU ها اجازه می دهند که فرآیند Multitasking یا چند وظیفگی بر بتواند بصورت پشت سر هم بر روی هسته های مختلف پردازنده در محیط های Multi-Core پردازش شوند. البته همیشه vCPU به معنی استفاده از CPU در محیط های مجازی سازی نیست . در محیط های پردازش موازی یا Parallel Processing که پارامترهای پردازشی به غیر از پردازنده وجود دارد ، زمانیکه صحبت از Virtual Processor می شود در واقع ما در خصوص یک Simulated Processor یا یک پردازنده شبیه سازی شده صحبت می کنیم.

از چه تعداد vCPU می توان بر روی یک VM استفاده کرد ؟


یک VM اگر بر روی نسخه Standard از ESX یا ESXi را نصب شده باشد ، حداکثر می تواند از 4 عدد vCPU استفاده کند و و این بر اساس لایسنسی است که VMware برای استفاده در ESXi تعیین کرده است در نسخه Enterprise شما می توانید تا 8 عدد vCPU برای هر VM در نظر بگیرید. تعداد vCPU هایی که شما به VM های خود اختصاص می دهید کاملا بستگی به Load کاری دارد که بر روی VM وجود دارد. در ESXi یک vCPU برای انجام پردازش ها به یک هسته واقعی از CPU فیزیکی سیستم Map می شود. این بدین معنا است که اگر یک VM به گونه ای پیکربندی شود که از 1 عدد vCPU استفاده کند که این vCPU به یک CPU 4 هسته ای متصل شده باشد ، هیچوقت نمی تواند بیشتر از یک چهارم قدرت پردازشی CPU اصلی را در اختیار بگیرد. اگر بخواهیم ساده تر بگوییم باید توجه کنید که هر چقدر تعداد vCPU های شما بیشتر شود بسته به نوع عملکرد سیستم شما ممکن است کارایی سیستم شما حتی کاهش هم پیدا کند و اضافه کردن vCPU های جدید فقط بار کاری سرور شما را بالا می برد.

Virtual CPU یا vCPU  چیست ؟

آیا یک vCPU الزاما به معنی یک CPU فیزیکی است ؟


این سئوالی است که ممکن است برای بسیاری از دوستان پیش بیاید. دقت کنید که یک برآورد ساده معمولا وجود دارد که می گوید هر vCPU در واقع به معنی یک هسته از یک Physical CPU است. حال اگر CPU های شما دارای هسته نباشند بنابراین هر vCPU برابر یک CPU فیزیکی قدرت پردازشی خواهد داشت . امروزه اکثر CPU ها بصورت چند هسته ای هستند و بعضا دیگر چیزی به نام CPU بدون هسته وجود ندارد. دقت کنید که این تعریف همیشه هم درست نیست ، با توجه به اینکه vCPU ها از time slot هایی ایجاد می شوند که بر روی همه هسته های فیزیکی موجود بر روی CPU فیزیکی تشکیل می شوند ، در واقع قدرت پردازشی یک vCPU از یک هسته فیزیکی CPU بالاتر است ، به ویژه زمانیکه CPU شما دارای 8 هسته باشد. VMware به گونه ای طراحی شده است که اجازه بدهد هر VM بتواند از قسمت خاصی از Core Clock Time هر CPU با استفاده از الگوریتم های بسیار پیچیده استفاده کند که ما آن را CPU Scheduler می نامیم. در یک شبکه cloud بسیار بزرگ اگر به اندازه لازم منابع پردازشی CPU وجود نداشته باشد و مثلا پردازش CPU های VM ها روی 100 درصد قرار بگیرد ، VM بلافاصله می تواند با استفاده از تکنولوژی های DRS و VMotion بر روی Host دیگری قرار بگیرد که محدودیت منابع CPU نداشته باشد و براحتی به سرویس دهی خود ادامه دهد. فرض کنید در محیط Cloud شما دو عدد Host دارید که یکی از آنه دارای پردازنده فیزیکی 8 هسته ای است و دیگری دارای پردازنده فیزیکی 4 هسته است ، VM شما زمانیکه بر روی Host با پردازنده 4 هسته ای قرار می گیرد قدرت پردازشی اش کاهش پیدا می کند و در چنین مواردی شما می توانید VM را بر روی Host با پردازنده 8 هسته ای VMotion کنید تا از 1 عدد vCPU شما اینبار از 8 هسته بتواند استفاده کند. ITPRO باشید

نویسنده : محمد نصیری

منبع : جزیره راهکارهای مجازی سازی وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد

#تفاوت_dual_core_و_core_2_due #تفاوت_cpu_های_xeon_و_pentium #تفاوت_virtual_cpu_و_physical_cpu #virtual_cpu_چیست #logical_processor_چیست #symmetric_multiprocessing_یا_smp_چیست #تفاوت_corei5_و_core_i7 #vcpu_چیست #virtual_processor_چیست #cpu_cache_چیست
8 نظر
zeinabm

سلام

فکر می کنم بهتر بود مراجعتون رو هم ذکر می کردید

از جمله این مورد

محمد نصیری

خیلی ممنون از لینکی که عنوان کردید ، بخشی از مطلب از این پاراگراف وب سایت Techtarget مطالعه شده طبیعتا ما چیزی رو از خودمون در نمیاریم ، وقتی مطلبی در وب سایت ما منتشر میشه از حداقل دو تا سه مطلب زبان اصلی برداشت میشه ، اگر کسی درخواست مرجع اصلی رو داشت بهش معرفی می کنیم اما طبیعتا ما مرجع فارسی زبانان هستیم ، اگر قرار بود کارشناسی انگلیسی جستجو کنه وارد این وب سایت نمی شد با تشکر ... موفق و پیروز باشید

prober

من یه چیزی رو متوجه نشدم شما یه جا گفتین:

این بدین معنا است که اگر یک VM به گونه ای پیکربندی شود که از 1 عدد vCPU استفاده کند که این vCPU به یک CPU 4 هسته ای متصل شده باشد ، هیچوقت نمی تواند بیشتر از یک چهارم قدرت پردازشی CPU اصلی را در اختیار بگیرد.

و یه جا هم آخرین خط گفتید:

شما زمانیکه بر روی Host با پردازنده 4 هسته ای قرار می گیرد قدرت پردازشی اش کاهش پیدا می کند و در چنین مواردی شما می توانید VM را بر روی Host با پردازنده 8 هسته ای VMotion کنید تا از 1 عدد vCPU شما اینبار از 8 هسته بتواند استفاده کند.

در مثال دوم اگه بر اساس تفسیر اولی تفسیر کنیم یک عدد VCPU در سیستم با پردازنده 8 هسته ای تنها از یک هشتم قدرت اصلی cpu فیزیکی استفاده می کنه درحالی که در سیستم 4 هسته ای از یک چهارم قدرت cpu استفاده میشه پس باید ماشین مجازی با یک vCPU در یک سیستم با پردازنده 8 هسته ای ضعیفتر از یک سیستم با پردازنده 4 هسته ای عمل کنه اما جمله آخر شما عکس این تفسیر رو بیان می کنه.

میشه توضیح بدین من گیج شدم به تناقض رسیدم

محمد نصیری

خوب این برداشت شما کاملا درست هست ، اما دقت کنید ما قرار هست روی سرورهای HP و CPU های سری Xeon عملیات VMotion انجام بدیم ، این سری CPU ها اینقدر قدرتمند هستند که حتی شما اگر مثلا از یک CPU دارای 32 هسته هم استفاده کنید یعنی یک سی و دوم رو استفاده کنید بعضا قدرتشون خیلی خیلی بیشتر از هر 4 هسته CPU ای هست که داخل یک CPU پنتیوم هست ، اینجوری بهتر میشه متوجه شد ، یه مثال ساده ، شما یک درصد گوگل رو بیشتر دوست دارید یا 90 درصد شرکت تخمه آفتابگردان سنجابک ؟ کدومشون قدرت بیشتری داره و ارزش بیشتری داره ؟ با اینکه به نظر میرسه 90 درصد زیاد هست اما در واقعیت اینجوری نیست.

prober

ممنون ولی شما توی مثال آخر این شرایط رو ذکر نکردید در ضمن من فوکوسم روی عبارت «از هر 8 هسته استفاده کند» هست در حالی که بیان اولی میگه یک چهارم یعنی یکی از 4 هسته پس دومی هم باید باشه یکی از 8 هسته. چرا میشه هر 8 هسته؟

من توی این مباحث سررشته ای ندارم فقط به خاطر آماری که باید تکمیل کنم نیاز دارم بدونم vcpu چی هست و چه جوری حساب میشه . شاید به خاطر همین منظور شما رو درک نمی کنم

محمد نصیری

یه مقدار بیشتر به متن دقت کنید ، درسته در قسمت اول گفتیم نمیشه بیشتر استفاده کنه اما بعد اومدیم گفتیم که تکنولوژی مجازی سازی جدید با استفاده از مکانیزمی به نام CPU Scheduler این امکان رو میده به VM که در صورت نیاز بیاد و از منابع هسته های بیشتر استفاده کنه ، ما با روند پیشرفت تکنولوژی این موارد رو عنوان کردیم ، هر چند این موارد بایستی در کنار قابلیت هایی مثل DRS پیاده سازی بشن.

mohammad.983

من در فهم این دو مفهوم در تعریف مقدار سی پی یو برای ماشین مجازی در v,ware موندم.

virtual socket و core per virtual socket. اگه اشتباه نکنم اولی یعنی تعداد سی پی یو و دومی یعنی تعداد هسته.

حالا مثلا من یه سرور اختصاصی دارم با cpu 4c/8t. در تنظیمات ساخت ماشین مجازی برای اینکه total number core رو به 8 برسونم دو تنظیم هست:

1- 4=virtual socket و 4=core per virtual socket

2- 2=virtual socket و 4=core per virtual socket

خب حالا تقاوت این دو در چیه؟ و در عمل چه فرقی با هم داره و راندمان کدوم بهتره؟

محمد نصیری

لطفا سئوالتون رو از طریق سئوال بپرسید مطرح کنید سپاسگزارم

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....