آموزشآموزش سخت افزار

vCPU یا virtual CPU چیست ؟ چقدر در افزایش عملکرد سیستم نقش دارد؟

ارائه دهندگان سرورهای مجازی اغلب مشخصات سرور خود را با داشتن تعداد مشخصی از “vCPU” ، که مخفف عبارت [ virtual CPU ] یا پردازنده مجازی است تبلیغ می کنند. vCPU در مقایسه با یک پردازنده معمولی چقدر عملکردی می توانید از این انتظار داشته باشید؟

تفاوت بین هسته ها و ترد

درک تفاوت بین یک تردهای پردازش و هسته پردازنده مهم است. CPU ها دارای تعداد هسته هایی هستند که اجرای برنامه ها را کنترل می کنند. اما حتی کارهای بسیار فشرده هم همیشه از ۱۰۰ درصد پردازنده استفاده نمی کنند.

برنامه ها اغلب باید منتظر خواندن حافظه از حافظه نهان L3 ، حافظه رم و دیسک ها باشند و در حین انتظار برای رسیدن به اطلاعات ، اغلب در خواب می روند. در این مدت ، هسته های پردازنده غیرفعال است.

راه حل این مشکل “hyperthreading” یا “simultaneous multithreading” نامیده می شود (تکنولوژی Hyper Threading چیست). به جای اجرای یک مجموعه وظایف به طور همزمان ، پردازنده قادر است چندین موضوع را انجام دهد. در حال حاضر ، تقریباً هر پردازنده با قدرت بالا از Intel یا AMD از دو فناوری در هر پردازنده های خود پشتیبانی می کند.

بسته به نوع برنامه ، در صورتی که هر دو موضوع منتظر خواندن حافظه باشند و با یکدیگر متناقض نباشند ، می تکنولوژی hyperthreading می تواند ۱۰۰ درصد سرعت افزایش دهد. در بیشتر موارد ، hyperthreading در حدود ۳۰ درصد سرعت بیشتر از افزایش فشار می دهد. در برخی موارد ، هرچند که دو رشته ۱۰۰٪ قلاب شده و در همان هسته در حال اجرا هستند ، می تواند باعث کندی شود زیرا آنها برای منابع پردازنده می جنگند.

1vCPU از نظر پردازنده فیزیکی چقدر است؟

برآورد کلی این است که هر یک vCPU برابر یک هسته پردازنده فیزیکی است . با این حال ، این کاملاً صحیح نیست ، زیرا vCPU از شکاف های زمانی در تمام هسته های بدنی موجود تشکیل شده است ، بنابراین به طور کلی 1vCPU از یک هسته واحد قدرتمندتر است ، به خصوص اگر پردازنده های فیزیکی دارای ۸ هسته باشند.

چه چیزی باعث ایجاد vCPU می شود؟

vCPU تقریباً با یک ترد پردازنده قابل مقایسه هستند ، اما این دقیقاً مقایسه ای عادلانه نیست.

مثلا شما یک نمونه Core i5 را با ۲ vCPU (پردازنده با ۲ ترد) اجاره کرده اید. برنامه شما در کنار بسیاری دیگر در یک سرور بزرگ اجرا خواهد شد. شما در واقع می توانید کل سرور را با یک نمونه AWS Bare Metal اجاره کردید، که به شما امکان دسترسی مستقیم به پردازنده را می دهد. اگر چیزی کوچکتر از آن اجاره کنید ، دسترسی شما از طریق AWS Nitro مدیریت می شود.

همچنین بخوانید  بایوس (BIOS) چیست ؟ و بایوس چگونه کار می کنید ؟

نیترو یک مدیریت کننده فوق‌العاده است ، که ایجاد و مدیریت ماشین های مجازی را که روی سرور کار می کنند اداره می کند. به همین دلیل است که شما یک “سرور مجازی” را کرایه می دهید و فضای یک مرکز داده را قفسه بندی نمی کنید. بخشی از آن توسط سخت‌افزار اختصاصی تأمین می شود ، بنابراین سرعت اجرای آن در یک محیط مجازی باید حداقل باشد.

Nitro تصمیم می گیرد کدام یک از تردها را به شما اختصاص دهد تا بر اساس مقدار پردازش مورد نیاز ، پردازشگر خود را اختصاص دهد ، دقیقاً مانند برنامه ریز کار در یک محیط رومیزی عادی. با داشتن ۲ vCPU ، بدترین حالت این است که برنامه شما روی یک هسته واحد اجرا می شود و به دو ترد داده می شود.

بنابراین ، در کل ، احتمالاً اگر کمی بهتر هم باشید ، می توانید عملکرد قابل مقایسه با یک ترد پردازنده معمولی را انتظار داشته باشید. این تمایز به هیچ وجه اهمیتی ندارد ، زیرا اکثر نمونه های EC2 با تعداد ۲ vCPU ارائه می شوند. فقط بخاطر داشته باشید که یک نمونه ۴ vCPU یک سرور ۴ هسته ای نیست ، در واقع یک سرور ۲ هسته ای است که ۴ ترد پردازش را اجرا می کند.

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

در نمونه های T3a AWS از پردازنده های AMD تعداد بسیار زیاد AMD EPYC استفاده می شود ، کمی کندتر عمل می کنند اما به دلیل ارزان بودن سخت‌افزار در هر هسته ، هزینه کمتری دارند.

امین نوری

امیدوارم از مطالب سایت استفاده کنید و لذت ببرید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا