خانه / آموزش های پیشرفته / محاسبه منابع مورد نیاز سرور: چقدر رم و CPU کافی است؟

محاسبه منابع مورد نیاز سرور: چقدر رم و CPU کافی است؟

Negar Gerami
مدت زمان مطالعه : 16 دقیقه
0 کامنت
۱۴۰۵/۰۵/۰۴

یکی از مهم ترین تصمیم هایی که در راه اندازی وب سایت، اپلیکیشن یا سرویس های آنلاین گرفته می شود نحوه انتخاب منابع مورد نیاز سرور است. محاسبه مقدار منابع مورد نیاز سرور به نوع پروژه، تعداد کاربران، تکنولوژی های استفاده شده و حجم پردازش ها بستگی دارد. برای مثال یک سایت ساده به طور معمول به 2 تا 4 گیگابایت RAM همراه با 1 تا 2 هسته CPU نیاز دارد. اما ممکن است فروشگاه های اینترنتی، اپلیکیشن های اختصاصی و سرویس های پر ترافیک به 8 گیگابایت RAM و حتی چندین CPU نیاز داشته باشند. در این مقاله بررسی خواهیم کرد که چگونه با توجه به نوع پروژه، تعداد کاربران و معماری نرم افزارها بتوانید مقدار RAM و CPU مورد نیاز سرور خود را محاسبه کنید.

برای سایت من چقدر منابع RAM و CPU لازم است؟

مقدار منابع مورد نیاز RAM و CPU برای سرور

نوع پروژهمقدار RAM پیشنهادیمقدار CPU پیشنهادیمناسب برای
سایت شرکتی ساده2 تا 4 گیگابایت1 تا 2 Coreسایت معرفی، وبلاگ
WordPress معمولی4 تا 8 گیگابایت2 تا 4 Coreسایت محتوا، خبری
WooCommerce8 تا 16 گیگابایت4 تا 8 Coreفروشگاه اینترنتی
Laravel8 تا 16 گیگابایت2 تا 8 Coreاپلیکیشن اختصاصی
SaaS و API8 تا 32 گیگابایت4 تا 16 Coreسرویس آنلاین
Game Server8 تا 32 گیگابایت4 تا 12 Coreسرور بازی

البته این اعداد برای شروع کار در نظر گرفته شده اند و تعداد کاربران، میزان Cache، نوع دیتابیس و معماری نرم افزار ممکن است منابع واقعی لازم را تغییر دهد!

دلیل اهمیت RAM در تعیین منابع سرور

  • از Cache و Session نگهداری می کند
  • چندین پردازش را به صورت همزمان اجرا می کند
  • فشار بر روی CPU و دیسک را کاهش می دهد
  • از داده هایی که همواره باید در دسترس باشند نگه داری می کند

دلیل اهمیت CPU در تعیین منابع سرور

  • HTTP Request و یا همان درخواست های وب را پردازش می کند
  • اسکریپت های PHP ،Node.js و Python را اجرا می کند
  • API ها را مدیریت می کند
  • کوئری های دیتابیس را انجام می دهد.
  • اجرای کدهای برنامه نویسی
  • پردازش درخواست های کاربران به وسیله CPU انجام می شود

عوامل موثر در محاسبه منابع مورد نیاز سرور

1- نوع پروژه

نوع پروژه اولین و مهم ترین عامل در انتخاب منابع سرور است! زیرا هر یک از سیستم ها رفتار متفاوتی در مصرف منابع دارد. برای مثال وب سایت های ساده و وبلاگی منابع سبک نیاز دارند. از طرفی فروشگاه های اینترنتی منابع متوسط و یا سنگین می طلبند. همچنین اگر از سیستم های SaaS و یا API محور استفاده می کنید داشتن منابع سنگین از واجبات است. در نهایت سرورهای بازی به منابعی بسیار سنگین و حساس نیاز خواهند داشت.

2- تعداد کاربران همزمان

در یک سناریو واقعی تصور کنید که تعداد کاربران شما 10 نفر است، در این حالت یک VPS کوچک برای شما کافی خواهد بود. اما اگر حدس می زنید 50 تا 200 کاربر همزمان وارد سرور شما خواهند شد به منابع متوسطی نیاز دارید. همچنین اگر بالای 1000 کاربر داشته باشید ممکن است به Load Balancer و یا چند سرور نیاز داشته باشید.

3- نوع تکنولوژی های استفاده شده

یکی دیگر از موارد تاثیرگذار در زمینه منابع، نوع زبان برنامه نویسی و فریم ورک هایی است که وجود دارد. به طور معمول اگر از WordPress همراه با افزونه های زیادی استفاده می کنید مصرف RAM شما بالا خواهد بود. اگر از Node.js استفاده می کنید باید منابع پردازشی را در نظر بگیرید. همچنین اگر لاراول را انتخاب کرده اید منابع اش بهتر است ترکیبی از RAM و CPU باشد. سیستم های Real-Time نیز مصرف منابع بالا و مداوم می طلبد دارد.

4- نوع دیتابیس پروژه

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

فرمول محاسبه منابع مورد نیاز سرور

1- محاسبه RAM مورد نیاز سرور

برای اینکه RAM را درست حدس بزنیم باید پایه مصرف سرور را در نظر بگیریم. Operating system ،Web server ،Database و سرویس های فعال همواره بخشی از حافظه را پر خواهند کرد. پس با توجه به فرمول تقریبی زیر باید میزان مصرف برنامه و کاربران همزمان به آن اضافه گردد:

مصرف پایه سرور + مصرف نرم افزار + مصرف کاربران همزمان + فضای مورد نیاز Cache ≈ مورد نیاز RAM

برای مثال تصور کنید که یک فروشگاه اینترنتی ووکامرس دارید که مصرف بخش های مختلف آن به صورت زیر است:

  • مصرف سرویس های پایه در سرور: حدود 2 گیگابایت
  • مصرف وردپرس و افزونه: حدود 2 گیگابایت
  • مصرف کاربران به صورت همزمان و پردازش سفارش ها: حدود 4 گیگابایت

2GB + 2GB + 4GB = حدوداً 8 گیگابایت RAM

پس حدوداً به 8 گیگابایت رم نیاز داریم.

2- محاسبه CPU مورد نیاز سرور

برخلاف RAM، مقدار CPU عدد ثابتی برای محاسبه ندارد. چون نوع پردازش اهمیت بیشتری نسبت به تعداد کاربران دارد. پس برای حدس CPU مورد نیاز سرور باید گزینه های زیر را بررسی کنید:

  • تعداد درخواست های همزمان کاربران
  • پیچیدگی کدها در برنامه
  • تعداد کوئری ها در دیتابیس
  • استفاده از Cache
  • پردازش های زمینه مثل Cron Job

به صورت کلی جدول زیر یک راهنمای اساسی است:

نوع پروژهCPU پیشنهادی
سایت ساده و کم ترافیک1 تا 2 Core
وردپرس با افزونه های معمولی2 تا 4 Core
فروشگاه اینترنتی4 تا 8 Core
API و سرویس های پردازشی4 تا 16 Core
Game Server و پردازش های Real-Time6 Core به بالا

انتخاب منابع سرور بر اساس نوع پروژه

  • منابع مورد نیاز سرور WordPress: به تعداد افزونه ها، قالب، بازدیدکننده ها و Cache بستگی دارد.
  • منابع مورد نیاز سرور WooCommerce: به خاطر پردازش سفارش ها، محصولات و دیتابیس های بزرگ تر به منابع بیشتری نسبت به وردپرس معمولی نیاز دارد.
  • منابع مورد نیاز سرور Laravel: به منطق برنامه، Queryهای دیتابیس و پردازش های پس زمینه مرتبط است و باید به معماری پروژه نیز توجه شود.
  • منابع مورد نیاز سرور API: میزان درخواست های همزمان، سرعت پاسخ دهی و نوع پردازش ها مهم ترین عامل های تعیین کننده هستند.
  • منابع مورد نیاز Game Server: به دلیل وجود پردازش های Real-Time به CPU های قدرتمند، RAM کافی و شبکه پایدار نیاز دارد.

VPS یا Dedicated؟ کدام برای پروژه شما بهتر است؟

انتخاب بین VPS و Dedicated Server از تصمیم هایی است که بر سرعت رشد و پایداری پروژه شما تاثیر مستقیمی دارد. به همین دلیل بسیاری از کاربران تصور می کنند همواره قوی ترین سرور بهترین انتخاب است. اما منابع بیشتر زمانی ارزشمند است که مطابق با نیازهای پروژه شما باشد! در تجربه های مربوط به مدیریت سرور، اولین قدم بررسی مصرف واقعی منابع است. حتی گاهی ممکن است بدون نیاز به ارتقا منابع و تنها با حذف افزونه های اضافه و بهینه سازی Cache عملکرد بهتری را تجربه کنید. در مقابل پروژه های بزرگ با افزایش کاربران به سرورهای اختصاصی نیازمند خواهند بود.

چه زمانی VPS انتخاب بهتری خواهد بود؟

اگر یک وب سایت شرکتی و یا یک فروشگاه اینترنتی متوسط در حال رشد راه اندازی کرده اید می توانید از VPS با هزینه های منطقی استفاده کنید. این سرویس به دلیل هزینه های معقول و امکان ارتقا منابع در آینده، مدیریت ساده تری برای پروژه های در حال رشد دارد و برای سایت های وردپرسی و اپلیکیشن های متوسط گزینه بسیار معقولی به حساب می آید.

چه زمانی Dedicated Server انتخاب بهتری خواهد بود؟

اما اگر پروژه های شما تعداد کاربران زیادی دارد و به طور مداوم پردازش های سنگینی انجام می دهد، سرور Dedicated انتخاب حرفه ای تری خواهد بود. برای مثال در پروژه هایی مانند Game Server یا دیتابیس های بزرگ با وجود سرور اختصاصی، قدرت پردازش بالا، کنترل تنظیمات بیشتر و دسترسی کامل به سخت افزار را تجربه خواهید کرد.

در نتیجه!

انتخاب بین Dedicated Server و VPS به حجم پروژه محدود نمی شود!! اگر هنوز نمی دانید که کدام سرویس برای شما مناسب تر است پیشنهاد میکنم ابتدا با یکی از VPS های قدرتمند آذرسیس شروع کرده و با از ابزارهایی مانند Server Monitoring عملکرد منابع را بررسی کنید. از طرفی برای پروژه هایی که خواندن و نوشتن داده ها در آن اهمیت زیادی دارد VPS NVMe توصیه می کنیم.

نمودار بهترین روش انتخاب منابع سرور بر اساس نوع پروژه

نحوه بهینه سازی مصرف منابع Server

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

  • از Redis و Memcached برای Cache استفاده کنید
  • کش را در Nginx و یا Apache فعال سازی کنید
  • کوئری های دیتابیس را بهینه سازی کنید
  • از CDN برای کاهش فشار سرور استفاده کنید
  • پلاگین و سرویس های غیر ضروری را حذف کنید

اشتباهات رایج در انتخاب منابع برای سرور

  • انتخاب سرور تنها بر اساس قیمت هایی که ارائه دهنده ها پیشنهاد می دهند
  • توجه نکردن به ترافیک های واقعی ایجاد شده کاربران در وب سایت
  • از سیستم های Cache استفاده نکردن
  • مانیتورینگ منابع را نادیده گرفتن و استفاده نکردن از این راه کار
  • استفاده کردن از CPU های ضعیف برای دیتابیس های سنگین

سخن آخر

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

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

تا حدی بله، اما محاسبه دقیق منابع سرور بدون داشتن داده واقعی از رفتار کاربران سخت است. معمولاً برآورد اولیه بر اساس نوع پروژه انجام می شود اما بعد از راه اندازی باید با ابزارهای مانیتورینگ مثل htop، Netdata یا Grafana مصرف واقعی CPU و RAM بررسی و تنظیم شود.

در این حالت سرور دچار فشار (Overload) می شود. نتیجه آن می تواند شامل کندی شدید، افزایش زمان پاسخ دهی، خطاهای ۵۰۰، و حتی از دسترس خارج شدن کامل سرویس باشد. معمولاً اولین نشانه کمبود منابع، بالا رفتن CPU Usage و Swap Memory است.

نه همیشه! گرفتن منابع بیش از نیاز فقط باعث افزایش هزینه می شود بدون اینکه لزوماً به بهبود عملکرد کمک کند. بهترین روش این است که با منابع پایه شروع کنید سپس بر اساس مانیتورینگ واقعی و رشد ترافیک، سرور را ارتقا دهید.

0

دیدگاه و پرسش