vCPU یا پردازندهٔ مجازی، سهمی از پردازندهٔ فیزیکی است که هایپروایزر به سرور مجازی شما اختصاص میدهد. معمولاً هر vCPU معادل یک رشته (Thread) از یک هستهٔ فیزیکی است، نه یک هستهٔ کامل. در پلنهای اشتراکی، vCPUها بین چند مشتری تقسیم میشوند و ممکن است در زمان شلوغی کندتر شوند؛ در پلنهای اختصاصی، هسته فقط برای شماست. علاوه بر تعداد، نسل و فرکانس پردازنده هم روی سرعت اثر زیادی دارد.
از هستهٔ فیزیکی تا vCPU
پردازندههای سرور امروزی چندین هسته (Core) دارند و هر هسته میتواند با فناوری Hyper-Threading یا SMT، دو رشته (Thread) را همزمان اجرا کند. یعنی پردازندهای با تعداد مشخصی هسته، دو برابر آن رشته در اختیار سیستمعامل قرار میدهد. البته دو رشتهٔ یک هسته، منابع آن هسته را به اشتراک میگذارند و کاراییشان دو برابر یک هسته نیست.
وقتی این سرور فیزیکی به چند سرور مجازی تقسیم میشود، هایپروایزر (مثل KVM) به هر ماشین مجازی تعدادی vCPU میدهد. در بیشتر ارائهدهندگان، هر vCPU معادل یک رشته است. پس سروری با ۲ vCPU معمولاً به اندازهٔ دو رشته از پردازندهٔ فیزیکی، یا تقریباً یک هستهٔ کامل، توان پردازشی دارد؛ و این در بهترین حالت است.
vCPU اشتراکی و اختصاصی
vCPU اشتراکی (Shared)
در پلنهای رایج و اقتصادی، ارائهدهنده تعداد بیشتری vCPU از تعداد رشتههای فیزیکی میفروشد؛ به این کار Overcommit میگویند. منطقش این است که بیشتر سرورها بیشتر وقت بیکارند و همه همزمان به حداکثر پردازنده نیاز ندارند. در نتیجه قیمت پایین میآید.
نقطهٔ ضعف این مدل این است که وقتی همسایهها همزمان پرمصرفاند، سرور شما باید منتظر نوبت بماند. این انتظار در لینوکس با نام Steal Time اندازهگیری میشود. توضیح کامل و روش اندازهگیری در CPU Steal چیست؟ آمده است.
vCPU اختصاصی (Dedicated)
در پلنهای اختصاصی، هر vCPU به یک رشته یا هستهٔ فیزیکی مشخص گره میخورد و به کس دیگری داده نمیشود. کارایی پایدار و قابل پیشبینی است و Steal تقریباً صفر میماند. این پلنها گرانترند اما برای دیتابیسهای پرمصرف، سرور بازی، پردازش ویدیو و هر کاری که پردازنده را مدام درگیر میکند، ارزشمندند.
برخی ارائهدهندگان مدلهای میانه هم دارند؛ مثلاً پلنهایی که اجازهٔ مصرف کامل پردازنده را برای مدت کوتاه (Burst) میدهند اما مصرف پیوستهٔ بالا را محدود میکنند. شرایط پلن را با دقت بخوانید.
فقط تعداد مهم نیست
دو سرور هر دو با ۴ vCPU ممکن است کارایی بسیار متفاوتی داشته باشند. عوامل مهم دیگر:
- نسل پردازنده: پردازندههای نسل جدید در هر چرخهٔ ساعت کار بیشتری انجام میدهند.
- فرکانس: بسیاری از برنامهها، مثل PHP و Node.js در یک درخواست، از یک رشته استفاده میکنند. برای اینها، سرعت تکهستهای از تعداد هسته مهمتر است.
- اشتراکی یا اختصاصی بودن: ۴ vCPU اشتراکی روی میزبان شلوغ ممکن است از ۲ vCPU اختصاصی کندتر باشد.
- حافظهٔ نهان پردازنده و حافظهٔ سیستم: در بارهای سنگین دیتابیس اثر قابل توجهی دارند.
بهترین راه مقایسه، بنچمارک است. ابزارهایی مثل sysbench و Geekbench را در ابزارهای بنچمارک سرور معرفی کردهایم.
- قیمت پایینتر
- مناسب بار متغیر و کم
- ممکن است Steal داشته باشد
- کارایی وابسته به همسایهها
- کارایی پایدار و قابل پیشبینی
- Steal تقریباً صفر
- مناسب دیتابیس و پردازش سنگین
- هزینهٔ بیشتر
چطور تعداد vCPU سرور را ببینیم؟
nproc
lscpu | grep -E "Model name|^CPU\(s\)|Thread|Core|Socket|MHz"
cat /proc/cpuinfo | grep "model name" | head -1
nproc تعداد vCPUهای در دسترس را نشان میدهد و lscpu مدل پردازندهٔ فیزیکی، تعداد هسته و رشته از دید ماشین مجازی و فرکانس را. در ویندوز، Task Manager و تب Performance همین اطلاعات را نشان میدهد.
چند vCPU لازم دارم؟
پاسخ به نوع کار بستگی دارد:
- ربات تلگرام، سایت کوچک، API سبک: ۱ vCPU معمولاً کافی است.
- وردپرس با بازدید متوسط، چند سرویس داکر: ۲ vCPU.
- فروشگاه اینترنتی پربازدید، دیتابیس متوسط، CI/CD: ۴ vCPU.
- دیتابیس سنگین، پردازش موازی، ساخت پروژههای بزرگ: ۸ vCPU یا بیشتر، ترجیحاً اختصاصی.
به یاد داشته باشید که بیشتر کردن vCPU فقط وقتی کمک میکند که برنامه بتواند از چند هسته همزمان استفاده کند. یک اسکریپت تکرشتهای پایتون روی ۸ vCPU سریعتر از ۲ vCPU اجرا نمیشود. وبسرورها، دیتابیسها و PHP-FPM که درخواستهای همزمان را موازی پردازش میکنند، از هستههای بیشتر سود میبرند. برای تخمین کلی منابع، چقدر رم و CPU لازم دارم؟ را بخوانید.
نشانههای کمبود vCPU
- Load Average برای مدت طولانی بیشتر از تعداد vCPUهاست؛
- مصرف CPU در top بهطور مداوم نزدیک به حداکثر است؛
- زمان پاسخ برنامه با افزایش کاربران همزمان بهسرعت بالا میرود.
اگر این نشانهها با st پایین همراه است، کمبود واقعی پردازنده دارید و ارتقا کمک میکند. اگر st بالاست، مشکل از میزبان است. روش پیدا کردن پردازهٔ پرمصرف در مصرف بالای CPU در لینوکس آمده است.
$ nproc2$ lscpu | grep -E 'Model name|^CPU\(s\)|Thread'CPU(s): 2Thread(s) per core: 1Model name: ... Processor$
vCPU در سرورهای ابری کلودیفای
پلنهای سرور مجازی ایران کلودیفای از ۱ هسته تا ۸ هسته را پوشش میدهند و صورتحساب ساعتی است؛ بنابراین میتوانید با پلن کوچک شروع کنید، مصرف را اندازه بگیرید و در صورت نیاز ارتقا دهید. جدول بهروز پلنها:
| پلن | پردازنده | رم | دیسک | ساعتی (تومان) | ماهانه تقریبی (تومان) | |
|---|---|---|---|---|---|---|
| IR-۱ | ۱ هسته | ۱ گیگابایت | ۱۰ گیگابایت | ۱٬۲۰۰ | ۸۷۶٬۰۰۰ | ساخت |
| IR-۲ | ۲ هسته | ۲ گیگابایت | ۱۵ گیگابایت | ۲٬۱۰۰ | ۱٬۵۳۳٬۰۰۰ | ساخت |
| IR-۳ | ۲ هسته | ۴ گیگابایت | ۲۰ گیگابایت | ۳٬۰۰۰ | ۲٬۱۹۰٬۰۰۰ | ساخت |
| IR-۴ | ۴ هسته | ۴ گیگابایت | ۳۰ گیگابایت | ۴٬۲۰۰ | ۳٬۰۶۶٬۰۰۰ | ساخت |
| IR-۵ | ۴ هسته | ۸ گیگابایت | ۵۰ گیگابایت | ۶٬۵۰۰ | ۴٬۷۴۵٬۰۰۰ | ساخت |
| IR-۶ | ۸ هسته | ۱۶ گیگابایت | ۱۰۰ گیگابایت | ۱۲٬۹۰۰ | ۹٬۴۱۷٬۰۰۰ | ساخت |
قیمتها زنده از سامانهٔ کلودیفای در تاریخ ۱۱ آبان ۱۴۰۵ خوانده شدهاند. ترافیک دانلود جداگانه، هر گیگابایت ۱٬۲۵۰ تومان؛ آپلود رایگان.
اصطلاحاتی که در مشخصات پلنها میبینید
هنگام مقایسهٔ پلنها، با عبارتهای مختلفی روبهرو میشوید. Core گاهی به معنای هستهٔ فیزیکی و گاهی همان vCPU به کار میرود؛ از ارائهدهنده بپرسید منظورش کدام است. Fair Share CPU یعنی پردازنده اشتراکی است و ارائهدهنده مصرف پیوستهٔ بسیار بالا را محدود میکند. CPU Optimized یا Compute Optimized معمولاً پلنهایی با پردازندهٔ سریعتر یا هستهٔ اختصاصی برای کارهای پردازشی سنگین است. Burstable هم پلنی است که مصرف کوتاهمدت بالا را اجازه میدهد اما مصرف پیوسته را با سیستم اعتبار محدود میکند.
دانستن این اصطلاحات کمک میکند دو پلن با عدد یکسان vCPU را درست مقایسه کنید و از غافلگیری پس از خرید جلوگیری کنید.
vCPU در ویندوز سرور
در سرورهای ویندوزی، Task Manager در تب Performance تعداد پردازندههای منطقی (Logical processors) را نشان میدهد که همان تعداد vCPU است. ویندوز سرور بهخاطر رابط گرافیکی و سرویسهای پسزمینه، بخشی از پردازنده را حتی در حالت بیکاری مصرف میکند. به همین دلیل برای ویندوز سرور، ۲ vCPU را حداقل منطقی بدانید؛ با ۱ vCPU، بهروزرسانیها یا آنتیویروس داخلی میتوانند سرور را برای مدتی تقریباً غیرقابل استفاده کنند.
مجوز نرمافزارها و تعداد vCPU
برخی نرمافزارهای تجاری، مثل نسخههای خاصی از دیتابیسها یا نرمافزارهای حسابداری تحت شبکه، مجوز خود را بر اساس تعداد هستهها محاسبه میکنند. پیش از خرید سرور با vCPU زیاد، شرایط مجوز نرمافزار را بررسی کنید؛ گاهی سروری با vCPU کمتر اما سریعتر، هم از نظر کارایی و هم از نظر هزینهٔ مجوز، انتخاب بهتری است.
اشتباه رایج: مقایسهٔ فقط عدد vCPU
بسیاری از خریداران دو پلن را فقط با تعداد vCPU مقایسه میکنند و پلنی را انتخاب میکنند که عدد بزرگتری با قیمت کمتر دارد. اما همانطور که دیدید، نوع پردازنده، اشتراکی یا اختصاصی بودن و میزان شلوغی میزبان، تفاوتهای بزرگی ایجاد میکنند. بهترین راه این است که برنامهٔ واقعی خودتان یا یک بنچمارک ساده را روی هر دو اجرا کنید و نتیجه را در چند زمان مختلف مقایسه کنید. در سرورهای ساعتی، این آزمایش فقط هزینهٔ چند ساعت را دارد.
سؤالات متداول
هر vCPU برابر یک هستهٔ واقعی است؟
معمولاً نه. در بیشتر ارائهدهندگان، هر vCPU معادل یک رشته (Thread) از یک هستهٔ فیزیکی است و در پلنهای اشتراکی ممکن است با ماشینهای دیگر هم تقسیم شود.
۲ vCPU اختصاصی بهتر است یا ۴ vCPU اشتراکی؟
بستگی به بار کاری دارد. برای مصرف پیوسته و حساس به تأخیر، vCPU اختصاصی پایدارتر است. برای بارهای متغیر و کم، vCPU اشتراکی بیشتر میتواند بهصرفهتر باشد. با بنچمارک در ساعتهای مختلف مقایسه کنید.
چرا nproc عدد متفاوتی از پلن نشان میدهد؟
اگر nproc کمتر از تعداد پلن است، ممکن است محدودیتی برای پردازه (مثلاً در کانتینر) اعمال شده باشد. lscpu تعداد واقعی vCPU ماشین مجازی را نشان میدهد؛ اگر با پلن همخوان نبود، از پشتیبانی بپرسید.
آیا افزایش vCPU سرعت وردپرس را بیشتر میکند؟
اگر کاربران همزمان زیاد باشند و CPU پر شود، بله. برای سایت کمبازدید، سرعت تکهستهای، کش و رم اثر بیشتری از تعداد vCPU دارد.
از ۱٬۲۰۰ تومان در ساعت · پرداخت ریالی



