vCPU چیست؟

vCPU مخفف virtual Central Processing Unit (واحد پردازش مرکزی مجازی) است و واحد پردازش مرکزی مورد استفاده در ماشین‌های مجازی و محیط‌های ابری را نشان می‌دهد. هر vCPU در سیستم عامل VM نشان دهنده یک هسته فیزیکی CPU است.


کسب و کارها به طور فزاینده‌ای از VM‌ها برای صرفه جویی در فضای رک و زمان و کاهش هزینه‌های مدیریت استفاده می‌کنند. VM‌ها به کاربران اجازه می‌دهند چندین سیستم عامل را روی یک ماشین فیزیکی واحد اجرا کنند، در حالی که vCPU ها عملکرد لازم را تضمین می‌کنند.
در این مطلب، بررسی می‌کنیم که vCPU چیست، چگونه با یک CPU مقایسه می‌شود و چطور می‌توان نیازمندیهای vCPU را محاسبه کرد.
 

vCPU چیست؟

vCPU یک CPU مجازی است که توسط Hypervisor به ماشین مجازی یا نرم افزار مجازی سازی اختصاص داده شده است و نشان دهنده اجرای نرم افزاری از یک CPU فیزیکی است که به عنوان یک CPU واقعی وجود ندارد، اما سیستم عامل آن را به عنوان یک پردازنده واقعی می‌بیند.
هر VM در یک محیط ابری حداقل یک vCPU دریافت می‌کند. این امر با استفاده از یک CPU فیزیکی به عنوان یک CPU مجازی روی یک سرور و میزبانی چندین VM بر روی آن امکان پذیر است.
یکی از ویژگی‌های کلیدی یک vCPU این است که به چندین VM اجازه می‌دهد تا منابع فیزیکی دستگاه میزبان را که شامل CPU، حافظه، ذخیره سازی و غیره می‌شود، به اشتراک بگذارند.

vCPU چگونه کار می‌کند؟

یک vCPU با اشغال چندین شکاف زمانی(time slots) در تمام هسته‌های فیزیکی موجود CPU در یک ماشین میزبان کار می‌کند. بدان معناست که یک vCPU تخصیص 1:1 از منابع هسته فیزیکی CPU را نشان نمی‌دهد. علاوه بر این، به دلیل توزیع بین چندین هسته، یک vCPU از یک هسته CPU فیزیکی استفاده بهتری دارد.
هایپروایزر تعیین می‌کند که یک vCPU چه شکاف‌های زمانی را اشغال می‌کند و در حال حاضر به کدام هسته CPU اختصاص داده شده است. چنین توزیع منابعی اجازه می‌دهد تا چندین VM بر روی تعداد محدودی از هسته‌های فیزیکی میزبانی شود. این ویژگی امکان اجرای چندین VM را بر روی دستگاهی که مثلا فقط دو هسته فیزیکی CPU دارد، می‌دهد.

چند vCPU در یک CPU وجود دارد؟

CPU‌های مدرن بر روی ریزپردازنده‌های مدار مجتمع ساخته شده‌اند که حاوی یک یا چند هسته هستند. تراشه‌هایی که بیش از یک هسته دارند، پردازنده‌های چند هسته‌ای نامیده می‌شوند که  هر هسته دارای چندین هسته منطقی(logical cores) است که همگی برای ایجاد vCPU استفاده می‌شوند.
یک هسته فیزیکی معمولا می‌تواند دو رشته (thread) را اجرا کند، به این معنی که دارای دو هسته منطقی است. این عمل  Hyper-Threading نامیده می‌شود که قدرت محاسباتی بیشتری را فراهم نموده و به ماشین‌های مجازی همزمان بیشتری اجازه می‌دهد.
با در نظر گرفتن همه موارد فوق، تعداد vCPU در یک ماشین میزبان تا حد زیادی به موارد زیر بستگی دارد:

  • تعداد CPUهای فیزیکی در ماشین میزبان - معمولا یک CPU برای هر دستگاه وجود دارد، اما مراکز داده مدرن می‌توانند سرورهای تک پردازنده‌ای و دوگانه داشته باشند.
  • تعداد هسته‌های CPU - هسته CPU پردازنده‌ای است که در تراشه CPU تعبیه شده است و هر هسته به طور مستقل می‌تواند وظایف را به طور همزمان انجام و پردازش کند. CPU‌های مدرن تا 64 هسته دارند که 128 رشته را اجرا می‌کنند.
  • تعداد رشته‌های CPU -  thread مجموعه‌ای از دستورالعمل‌ها است که به یک هسته CPU اجازه می‌دهد تا به چندین هسته مجازی (منطقی) تقسیم شود تا کارایی افزایش یابد. یک هسته CPU معمولا دو رشته دارد. AMD از multithreading و Intel از hyper-threading استفاده می‌کند.
سرور مجازی یک ماشین مجازی کامل است که امکان انتخاب vCPU از 2 تا 12 در آن برای شما فراهم است.
خرید سرور مجازی در پنج موقعیت جغرافیایی ایران، ترکیه، هلند، آلمان و آمریکا با قابلیت تحویل آنی در پارسدو فراهم است.

به چه تعداد vCPU نیاز دارم و چگونه آن را محاسبه کنم؟

حداکثر تعداد vCPU در یک سیستم به نوع CPU و تولیدکننده هایپروایزر بستگی دارد. تعداد vCPU با در نظر گرفتن تعداد رشته‌های پردازش در هر هسته و ضرب آن در تعداد هسته‌ها و سوکت‌های اشغال شده CPU محاسبه می‌شود. بنابراین، فرمول محاسبه تعداد vCPU به صورت زیر است:

(Threads x Cores) x Physical CPU Number = Number of vCPUs

به عنوان مثال، اگر یک CPU دارای 8 هسته و 16 رشته باشد، حداکثر تعداد: vCPU 


(8 Cores x 16 Threads) x 1 CPU = 128 vCPUs

تعداد کل vCPUهای موجود برای مثال بالا 128 عدد است.

 

برای یافتن تعداد هسته‌ها و رشته‌ها در سیستم‌های ویندوز و لینوکس، مراحل زیر را دنبال کنید:

کاربران ویندوز:
  1. Task Manager را با فشار دادن Ctrl+Shift+Esc باز کنید.
  2. روی تب Performance کلیک کنید و قسمت CPU را انتخاب کنید.
  3. در سمت راست پایین، تعداد هسته‌ها، پردازنده‌های منطقی (Threads) و سوکت‌ها (تعداد CPU) را پیدا کنید.

مشاهده اطلاعات CPU در ویندوز

حداکثر تعداد vCPU برای این دستگاه:


(2 Cores x 4 Threads) x 1 CPU =8 vCPUs

کاربران لینوکس:
  1. یک پنجره ترمینال را باز کنید.
  2. دستور زیر را اجرا کنید:

Lscpu

اطلاعات CPU در لینوکس

خروجی فرمان جزئیات CPU، از جمله تعداد CPU های فیزیکی، هسته ها و رشته ها در هر هسته را بیان می کند.

حداکثر تعداد vCPU برای این دستگاه:

(4 Cores x 1 Threads) x 1 CPU = 4 vCPUs

 

محاسبه شماره vCPU برای یک حجم کاری خاص

برای محاسبه تعداد vCPU های مورد نیاز برای یک حجم کاری خاص، ابتدا تعداد هسته‌های فیزیکی CPU موجود در دستگاه میزبان را تعیین کنید. سپس، حجم کاری مورد انتظار را برای هر VM که می‌خواهید میزبانی کنید، در نظر بگیرید.
هنگام در نظر گرفتن حجم کار، به استفاده از CPU توجه کنید؛ اینکه آیا استفاده از CPU در تمام مدت 100٪ خواهد بود یا استفاده ناگهانی وجود خواهد داشت؟ با تعیین الزامات، می‌توانید تصمیم بگیرید که چه تعداد vCPU را به کدام VM اختصاص دهید.
به عنوان مثال، حجم کاری کوچک با زمان CPU کم، امکان داشتن ماشین‌های مجازی بیشتر را فراهم می‌کند زیرا به منابع زیادی نیاز ندارند. با این حال، حجم‌های کاری بزرگ، مانند سرورهای پایگاه داده، استفاده از منابع بیشتری دارند، به این معنی که ماشین‌های مجازی کمتری در یک دستگاه وجود خواهند داشت. حداقل نیاز برای هر VM با حجم کاری کم باید یک vCPU باشد، در حالی که با افزایش حجم کار می‌توان موارد اضافی را اضافه کرد.

نتیجه

این مطلب مفهوم CPU مجازی، نحوه کار و مکان استفاده از آن را توضیح داد. شما همچنین یاد گرفتید که چگونه حداکثر تعداد vCPU را برای یک ماشین یا یک حجم کاری خاص محاسبه کنید.
نرم افزار مجازی سازی امروزه به طور فزاینده ای برای سرورها استفاده می شود زیرا به طور قابل توجهی در منابع، زمان و هزینه صرفه جویی می کند.