چقدر رم، پردازنده و دیسک لازم دارم؟ راهنمای انتخاب اندازه سرور مجازی
روبهروی صفحهٔ خرید نشستهای و پلنها از ۱ گیگابایت رم/۱ هسته تا ۱۶ گیگابایت/۸ هسته چیده شدهاند. نه میخواهی پول اضافه بدهی، نه میخواهی وسط یک اوج ترافیک سرور به زانو دربیاید. جوابِ صادقانه این است: احتمالاً کمتر از چیزی که فکر میکنی لازم داری، و تقریباً همیشه میتوانی بعداً در چند دقیقه ارتقا بدهی. پس اشتباهِ گران این نیست که کوچک شروع کنی؛ این است که یک عددِ ترسیده را بزرگ بخری و ماهها بابتش پول بدهی.
این نوشته به تو میگوید هر نوع کاری واقعاً چقدر رم، هسته و دیسک میخواهد، کِی باید ارتقا بدهی و با چه دستوری از سمت خودت بفهمی. اگر سؤالت این است که سرور را کجا بگیری (ایران یا خارج)، آن بحثِ جداست و در راهنمای سرور ایران در برابر خارج جداگانه توضیح دادهایم؛ اینجا فقط دربارهٔ چقدر است.
قبل از هر عددی: منابع را «کل بازدید» تعیین نمیکند
رایجترین اشتباه این است که آدمها بازدید ماهانه را ملاک میگیرند. «ماهی صد هزار بازدید دارم، پس رم زیاد میخواهم.» اشتباه است. آنچه سرور را تحت فشار میگذارد، تعداد درخواستهایی است که در یک لحظه با هم میرسند و از کش رد میشوند و PHP یا دیتابیس را مجبور به کار میکنند. یک سایت با صد هزار بازدید ماهانه که کشِ درست دارد، ممکن است بهندرت بیش از چند درخواستِ همزمانِ سنگین ببیند.
به همین دلیل کش، بزرگترین اهرم توست. طبق راهنمای مستقل Launchcodex (مارس ۲۰۲۶)، یک سایتِ محتوایی که کاملاً کش شده باشد میتواند سه تا پنج برابرِ حالت بدون کش را روی همان سرور جواب بدهد. یعنی قبل از اینکه به فکر خریدِ رمِ بیشتر بیفتی، کشِ صفحه (page cache) را روشن کن؛ گاهی همین کار جای دو برابر شدن پلن را میگیرد.
حداقلهای واقعی وردپرس
خودِ وردپرس نرمافزار سبکی است. الزامات رسمی پروژهٔ WordPress اینهاست:
| موردحداقل رسمی وردپرس | |
| PHP | نسخهٔ ۸.۳ یا بالاتر |
| دیتابیس | MariaDB نسخهٔ ۱۰.۱۱+ یا MySQL نسخهٔ ۸.۰+ |
| حافظهٔ PHP برای هر درخواست | پیشفرض WordPress: ۴۰ مگابایت (تکسایت)، ۶۴ مگابایت (مالتیسایت) |
عددِ ۴۰ و ۶۴ مگابایت مربوط به ثابتِ WP_MEMORY_LIMIT است که وردپرس خودش تنظیم میکند؛ این با رمِ کلِ سرور فرق دارد. برای مقایسه، پیشفرضِ memory_limit در php.ini برابر ۱۲۸ مگابایت است — یعنی سقفِ حافظهای که هر اسکریپت PHP اجازهٔ مصرف دارد. Kinsta (که یک ارائهدهنده است، نه منبع مستقل) میگوید یک نصب استاندارد وردپرس با memory_limit برابر ۶۴ مگابایت خوب کار میکند و افزونههای سنگین ممکن است تا ۲۵۶ مگابایت لازم داشته باشند، و حداقل فضای دیسکِ خودِ وردپرس حدود ۱ گیگابایت است.
نکتهٔ عملی: اینها «حداقلِ روشنشدن» است، نه «اندازهٔ درست برای سرور». یک سرور ۱ گیگابایتی برای وردپرسِ خالی کافی است، ولی بهمحض اینکه دیتابیس، وبسرور و چند افزونه همزمان بالا باشند، فضای تنفس کم میشود.
چقدر رم؟ بر اساس نوع کار، نه نوع احساس
رم را کاری که اجرا میکنی تعیین میکند:
- سایت استاتیک یا لندینگ: ۱ گیگابایت واقعاً کافی است. اینجا PHP و دیتابیسِ سنگینی در کار نیست.
- وردپرس یا سایت محتوایی با کش: ۲ گیگابایت نقطهٔ شروعِ راحت است. جا برای وبسرور، PHP-FPM، MySQL و یک لایه کش دارد.
- فروشگاه (WooCommerce) و سایتهای با کاربر لاگینشده: طبق Launchcodex، سایتهای فروشگاهی بهخاطر سبد خرید، سشن کاربر و جستوجوهایی که کش را دور میزنند، حدود ۱.۵ تا ۲ برابرِ یک سایت محتوایی با همان ترافیک، پردازنده و رم میخواهند. برای یک فروشگاه فعال، ۴ گیگابایت نقطهٔ شروعِ منطقی است.
- اپلیکیشن (Node.js، جنگو، اپیآی): اینجا رم به مصرف خودِ برنامه و تعداد پروسه/ورکرها بستگی دارد، نه به یک قاعدهٔ آماده. یک اپیآی سبک روی ۱ تا ۲ گیگابایت اجرا میشود؛ اما اگر داده در حافظه نگه میداری یا ورکرهای زیادی بالا میآوری، باید مصرف واقعی را اندازه بگیری (پایینتر توضیح دادهام).
- دیتابیس روی سرور جدا: دیتابیس عاشقِ رم است، چون کش کردنِ داده در حافظه سریعترین راه است. برای یک دیتابیسِ اختصاصیِ پرترافیک، از ۴ گیگابایت به بالا شروع کن و بر اساس اندازهٔ dataset بالا برو.
اگر میخواهی یک نقطهٔ شروعِ خام داشته باشی، Launchcodex پیشنهاد میدهد «۱ هسته و ۲ گیگابایت رم بهازای هر ۲۰۰٬۰۰۰ بازدید ماهانه» — ولی خودشان تأکید میکنند که کش این عدد را بهشدت پایین میآورد. این را بهعنوان یک برآوردِ اولیه بگیر، نه یک قانون. عددِ واقعی را مصرفِ سرورِ خودت میگوید، نه یک فرمول.
چند هسته پردازنده؟
برای اکثر سایتها، رم زودتر از پردازنده تمام میشود. پردازنده وقتی گلوگاه میشود که کارِ محاسباتیِ همزمان داری: رندرِ صفحاتِ داینامیکِ کشنشده، پردازش تصویر، تبدیل ویدیو، یا یک اپلیکیشنِ CPU-محور.
- سایت استاتیک یا وردپرسِ کوچک با کش: ۱ هسته بس است.
- وردپرس/فروشگاهِ فعال: ۲ هسته فضای راحتی میدهد تا یک درخواستِ سنگین کل سرور را قفل نکند.
- اپلیکیشنِ چندپروسهای یا ترافیکِ داینامیکِ بالا: از ۴ هسته شروع کن و بر اساس نمودارِ بار (load) تصمیم بگیر.
یک نکتهٔ مهم که در پلنها به آن دقت کن: هستهٔ اشتراکی (shared) با هستهٔ اختصاصی (dedicated) فرق دارد. در هستهٔ اشتراکی، قدرت پردازنده بین چند کاربر تقسیم میشود و در اوجِ همزمانی ممکن است کمتر از آنچه فکر میکنی نصیبت شود؛ در هستهٔ اختصاصی، آن هستهها فقط مالِ توست. برای کارِ ثابت و پیشبینیپذیر، هستهٔ اختصاصی ارزشِ تفاوتِ قیمت را دارد؛ برای سایتِ کمترافیک، اشتراکی کاملاً کافی است و نیازی نیست بابت اختصاصی پول بدهی.
چقدر دیسک و چه نوعی؟
حجم دیسک معمولاً آخرین چیزی است که آدمها را به دردسر میاندازد، مگر اینکه فایل و رسانهٔ زیادی ذخیره کنی. یک وردپرسِ معمولی با چند ده مقاله و تصویر، سالها زیر ۱۰ گیگابایت میماند. چیزهایی که دیسک را پر میکنند: بکاپهای محلی، لاگهای رهاشده، و کتابخانهٔ رسانهٔ بزرگ.
مهمتر از حجم، نوعِ دیسک است. NVMe در خواندن/نوشتنِ تصادفی — دقیقاً همان الگویی که دیتابیس تولید میکند — بهمراتب سریعتر از SSD SATA است. برای سایتی که دیتابیسش زیر فشار است، ارتقا از SATA به NVMe گاهی بیشتر از رمِ بیشتر به تجربهٔ کاربر کمک میکند. تفاوت را در مقایسهٔ NVMe و SSD کامل توضیح دادهایم.
یک جدول تصمیم برای شروع
این جدول را از راهنمای مرحلهایِ Launchcodex (مارس ۲۰۲۶) گرفتهام و کنارش پلنِ متناظر از ابریشم را گذاشتهام. این یک نقطهٔ شروع است، نه حکم؛ کش و نوع بار میتواند تو را یک رده پایینتر ببرد:
| مرحلهبازدید ماهانههستهرمپلن نمونهٔ ابریشم | ||||
| راهاندازی | ۰ تا ۱۰٬۰۰۰ | ۱ | ۱ تا ۲ گیگابایت | پلن ۱GB یا ۲GB |
| رشد | ۱۰٬۰۰۰ تا ۱۰۰٬۰۰۰ | ۲ تا ۴ | ۴ تا ۸ گیگابایت | پلن ۴GB تا ۸GB |
| مقیاس | ۱۰۰٬۰۰۰ تا ۵۰۰٬۰۰۰ | ۴ تا ۸ | ۸ تا ۱۶ گیگابایت | پلنِ هستهٔ اختصاصی ۸GB/۱۶GB |
حواست باشد: همان راهنما میگوید یک وردپرسِ کاملاً کششده با Redis و CDN میتواند ۱۰۰٬۰۰۰ بازدید ماهانه را روی فقط ۲ هسته و ۴ گیگابایت جواب بدهد — یعنی تقریباً نصفِ ردیفِ «رشد». پس اگر کشت درست است، از ردههای پایینتر شروع کن.
کِی باید ارتقا بدهی و از کجا میفهمی؟
بهجای حدس زدن، به سرور نگاه کن. اینها نشانههای واقعیِ کمآوردنِ منبعاند و هر کدام دستورِ خودش را دارد:
- رم تمام شده و swap مصرف میشود. با
free -hنگاه کن؛ اگر ستونavailableمدام نزدیک صفر است وswapمصرفِ زیاد دارد، سرور دارد از دیسک بهجای رم استفاده میکند و کند میشود. این روشنترین علامتِ نیاز به رمِ بیشتر است. - پروسهها با OOM کشته میشوند.
dmesg | grep -i oomیا لاگ سیستم را ببین؛ اگر «Out of memory» و «Killed process» میبینی، کرنل بهخاطر کمبود رم برنامهها را میکشد. این یعنی همین حالا رم کم داری. - بارِ پردازنده مدام از تعداد هستهها بیشتر است. با
uptimeیاhtopمیانگین بار (load average) را ببین؛ اگر روی یک سرورِ ۲ هستهای، بار بهطور مداوم بالای ۲ میماند، پردازنده گلوگاه است. - دیسک کند است یا پر شده.
df -hبرای فضا وiostat -x 1برای فشار I/O؛ اگر%utilنزدیک ۱۰۰ میماند، دیسک گلوگاه است و NVMe یا جداکردنِ دیتابیس کمک میکند. - زمان پاسخ (TTFB) بالا رفته در حالیکه ترافیک ثابت مانده. این علامتِ نرمتری است، ولی وقتی با یکی از موارد بالا همراه شود، وقتِ ارتقاست.
قاعدهٔ ساده: اگر رم و swap تحت فشارند، رم اضافه کن. اگر load بالای تعداد هستههاست، هسته اضافه کن. اگر هر دو آراماند ولی سایت کند است، اول کش و کوئریهای دیتابیس را درست کن — احتمالاً اصلاً به سرورِ بزرگتر نیاز نداری.
اشتباهی که بهضرر خودت است: بیشازحد خریدن
وسوسه این است که «برای احتیاط» بزرگ بخری. اما رمی که مصرف نمیشود، فقط پولِ هدررفته است؛ سرور از رمِ خالی سریعتر نمیشود. چون ارتقا در بیشتر پنلها چند دقیقهای است و بدون از دست رفتن داده انجام میشود، منطقیتر است یک رده پایینتر شروع کنی، یکیدو هفته مصرف واقعی را با free -h و htop ببینی و بعد تصمیم بگیری. این را صادقانه میگوییم حتی وقتی فروشِ پلنِ بزرگتر به نفعِ ماست: برای یک سایتِ بروشوری، خریدِ ۸ گیگابایت اسراف است.
پس نقطهٔ شروع را از نوعِ کار بردار، نه از ترس: استاتیک ۱ گیگابایت، وردپرسِ کشدار ۲ گیگابایت، فروشگاه ۴ گیگابایت. کش را روشن کن، دو هفته سرور را رصد کن، و فقط وقتی یکی از نشانههای بالا را دیدی ارتقا بده. اگر میخواهی همین حالا اسپکِ پلنها و قیمتِ روز را ببینی، صفحهٔ سرور مجازی ابریشم ردهها را از ۱ تا ۱۶ گیگابایت کنار هم گذاشته است.
منابع
- WordPress.org — Requirements (PHP 8.3+, MariaDB 10.11+/MySQL 8.0+) (unknown)
- WordPress Developer — wp-config.php (WP_MEMORY_LIMIT defaults 40MB/64MB) (unknown)
- PHP Manual — Core php.ini directives (memory_limit default 128M) (unknown)
- Launchcodex — How much RAM, vCPU and storage a website needs (2026-03)
- Kinsta (vendor) — The Ideal WordPress PHP and Server Requirements (2026-06)
پرسشهای پرتکرار
برای یک سایت وردپرسی معمولی چقدر رم لازم دارم؟
۲ گیگابایت نقطهٔ شروعِ راحت است. خودِ وردپرس با حداقلهای ناچیزی کار میکند (پیشفرض حافظهٔ آن ۴۰ مگابایت برای هر درخواست است)، اما ۲ گیگابایت جا برای وبسرور، PHP، MySQL و یک لایه کش میدهد. سایت استاتیک با ۱ گیگابایت هم راه میافتد.
بازدید ماهانه ملاکِ خرید پلن است یا کاربر همزمان؟
هیچکدام بهتنهایی. فشارِ واقعی از تعداد درخواستهای همزمانی میآید که از کش رد میشوند و PHP یا دیتابیس را درگیر میکنند. طبق راهنمای Launchcodex، کشِ کامل میتواند ظرفیت را سه تا پنج برابر کند، پس یک سایتِ کششده با ترافیک بالا ممکن است به منبع کمی نیاز داشته باشد.
فروشگاه اینترنتی چقدر بیشتر از یک سایت محتوایی منبع میخواهد؟
طبق راهنمای مستقل Launchcodex، فروشگاهها بهخاطر سبد خرید، سشن کاربرانِ لاگینشده و جستوجوهایی که کش را دور میزنند، حدود ۱.۵ تا ۲ برابرِ یک سایت محتوایی با همان ترافیک، پردازنده و رم لازم دارند. برای یک فروشگاه فعال، ۴ گیگابایت نقطهٔ شروعِ منطقی است.
از کجا بفهمم وقتِ ارتقای سرور رسیده؟
با <code>free -h</code> اگر رم نزدیک صفر و swap پرمصرف است، رم کم داری. با <code>uptime</code> یا <code>htop</code> اگر میانگین بار مدام از تعداد هستهها بیشتر است، پردازنده گلوگاه است. با <code>dmesg | grep -i oom</code> کشتهشدنِ پروسهها را ببین. اگر همه آراماند ولی سایت کند است، اول کش را درست کن.
بهتر است بزرگ بخرم که بعداً کم نیاورم؟
نه. رمی که مصرف نشود فقط هزینهٔ اضافه است و سرور را سریعتر نمیکند. چون ارتقا معمولاً چند دقیقهای و بدون از دست رفتن داده است، یک رده پایینتر شروع کن، یکیدو هفته مصرف را رصد کن و بعد تصمیم بگیر.