پردازنده, سرور

پردازنده مجازی vCPU

پردازنده مجازی vCPU

در دنیای مجازی‌سازی اصطلاح پر کاربرد و مهمی به نام vCPU وجود دارد. اما این اصطلاح به چه معنا است و بیان‌گر چه مفهومی است؟ یک پردازنده مجازی (vCPU) یا به عبارت دقیق‌تر Virtual CPU، یک پردازنده فیزیکی است که به یک ماشین مجازی اختصاص پیدا کرده است. در حالت پیش‌فرض هر ماشین‌ مجازی دارای یک پردازنده مجازی است، اما روی سامانه‌های میزبانی که دارای چند پردازنده فیزیکی هستند یا تعداد هسته‌های پردازنده فیزیکی آن‌ها زیاد است، شما می‌توانید به ماشین مجازی بیش از یک پردازنده مجازی اختصاص دهید. در اصطلاح رایج به پردازنده‌های مجازی Logical Processor گفته می‌شود.

یک مدیر شبکه یا مدیر زیرساخت‌ باید به درستی بداند که زیرساخت ابری تحت سرپرستی او که سرویس‌های مبتنی بر ابر را ارائه می‌‌دهد، چطور پردازنده‌های مجازی (vCPU) را به کار می‌گیرد تا در ادامه بتواند هزینه مربوط به قدرت پردازشی در محیط‌ ابری یا سرورهای مجازی را محاسبه کند. نکته‌ مهم دیگری که یک مدیر شبکه‌ باید از آن اطلاع داشته باشد، آگاهی از این موضوع است که اضافه کردن پردازنده‌های مجازی جدید به‌‌طور خودکار عملکرد را بهبود نمی‌دهد، به دلیل این‌که هر چه بر تعداد پردازنده‌های مجازی (vCPU) افزوده شود، به همان نسبت زمان‌بندی پردازنده‌ها برای استفاده بهینه از برش زمانی پردازنده فیزیکی سخت‌تر می‌شود. زمان انتظاری که برای دسترسی به پردازنده فیزیکی سپری می‌شود به شکل قابل محسوسی عملکرد را کاهش می‌دهد. به‌طور مثال، در VMware، پردازنده‌های مجازی (vCPU)، بخشی از مدل محاسباتی چند رشته‌ای-چندپردازشی (SMP) سرنام symmetric multi-processing هستند. SMP به رشته‌‌ها اجازه می‌دهد تا میان هسته‌های فیزیکی یا منطقی پردازنده تقسیم شوند. این مدل تقسیم رشته‌‌ها باعث می‌شود تا عملکرد پردازشی سیستم افزایش پیدا ‌کند. در حقیقت مدل SMP  یک مکانیزم پردازش موازی در اختیار ما قرار می‌دهد. پرازنده‌های مجازی (vCPU) همچنین به ما این امکان را می‌دهند تا چندوظیفگی را به شکل متوالی در محیط‌های چند هسته‌ای مدیریت و پردازش کنیم.

پردازنده مجازی vCPU
پردازنده مجازی vCPU

چه تعداد پردازنده مجازی (vCPU) را می‌توان روی یک ماشین مجازی به کار گرفت؟

اگر از یک ماشین مجازی روی محصولات شرکتی همچون vmware و از نسخه استاندارد ESX یا ESXi استفاده می‌کنید در حالت عادی قادر هستید از 4 پردازنده مجازی استفاده کنید. البته تعداد پردازنده‌ها به نسخه‌ای که از آن استفاده می‌کنید بستگی دارد. به‌طور مثال اگر از نسخه سازمانی استفاده کنید شما در عمل می‌توانید از 8 پردازنده مجازی برای هر ماشین مجازی استفاده کنید. البته تعداد پردازنده‌های مجازی را باید متناسب با بار کاری که به هر ماشین مجازی اختصاص می‌دهید افزایش دهید. در نسخه ESXi یک پردازنده مجازی برای انجام محاسبات به هسته فیزیکی یک پردازنده واقعی نگاشت می‌شود. به عبارت ساده‌تر اگر یک ماشین مجازی را به شکلی پیکربندی کنید که از یک پردازنده مجازی (vCPU) استفاده کند و این پردازنده مجازی به 4 هسته فیزیکی یک پردازنده متصل شود، در بهترین حالت موفق نخواهید شد بیشتر از یک چهارم توان محاسباتی پردازنده فیزیکی را به خدمت بگیرید. به همین دلیل در ابتدای مطلب به شما گفتیم افزایش بدون دلیل تعداد پردازنده‌های مجازی ممکن است عملکرد سیستم را کاهش داده و تنها بار اضافی را به سرور تحمیل کند.

پردازنده مجازی vCPU

آیا یک پردازنده مجازی (vCPU) برابر با یک پردازنده فیزیکی است؟

برخی از افراد این‌گونه استدلال می‌کنند که یک پردازنده مجازی برابر با با یک هسته از یک پردازنده فیزیکی است. (vCPU = 1 Physical CPU core) که این موضوع نمی‌تواند همیشه درست باشد. یک پردازنده مجازی از برش‌های زمانی برای دسترسی به تمامی هسته‌های فیزیکی استفاده می‌کند. بنابراین در حالت کلی یک پردازنده مجازی قوی‌تر از یک هسته انفرادی است. این مسئله به ویژه در ارتباط با پردازنده‌های مرکزی که هشت هسته یا بیشتر دارند عینیت پیدا می‌کند. VMWare بر پایه الگوریتم‌های پیچیده‌ زمان‌بند پردازنده مرکزی سعی می‌کند به هر ماشین مجازی اجازه دهد مقدار معینی از کلاک هسته را در اختیار داشته باشد. در یک شبکه ابری بزرگ اگر منابع محاسباتی پردازنده مرکزی به اندازه کافی وجود نداشته باشد و میزان مصرف پردازنده‌ها در ماشین مجازی به مرز 100 درصد برسد، ماشین مجازی از طریق به‌کارگیری فناوری‌هایی همچون DRS و VMotion روی میزبان دیگری قرار می‌گیرد که محدودیت دسترسی به پردازنده مرکزی روی آن وجود ندارد تا به این شکل فرآیند سرویس‌دهی بدون مشکل انجام شود.