محدودیت منابع هاست؛ وقتی CPU و رم سایت به سقف می رسد چه کنیم؟
اگه سایتت گاهی کند می شه یا خطای 508 می ده، احتمالاً به سقف منابع هاست خوردی. این مقاله نشون می ده چطور مصرف CPU و رم رو بخونی و بفهمی کی وقت ارتقای پلنه.

اگه سایتت گاهی کند می شه، پنل وردپرس وسط کار قفل می کنه یا خطای 508 و 503 می بینی، احتمال زیاد به محدودیت منابع هاست خوردی؛ یعنی CPU، رم یا تعداد پردازش های هم زمان حساب هاستت به سقف پلن رسیده. برای تشخیصش بخش Resource Usage سی پنل رو باز کن و ببین کدوم منبع پر شده و نمودار روی سقف صاف می شه یا فقط در ساعت های شلوغ بالا می ره. اگه مصرف با تعداد بازدید واقعی همخوان نیست، مشکل معمولاً از کد، افزونه یا رباته. اگه سایت تمیزه و مصرف همراه ترافیک واقعی بالا می ره، وقت ارتقای پلنه.
سایت کند شده یا ارور 508 می ده؟ نشانه های رسیدن به سقف
فرض کن یه فروشگاه اینترنتی کوچیک داری و شب یلدا پیامک تبلیغاتی فرستادی. نیم ساعت بعد مشتری ها زنگ می زنن که سایت بالا نمی یاد. خودت هم صفحه رو باز می کنی و یه خطای سفید می بینی. این دقیقاً جاییه که ضرر مستقیم می زنی: هزینه تبلیغ رو دادی، مشتری اومده و سایت جواب نداده.
نشانه های رایج رسیدن به سقف منابع اینا هستن:
- خطای 508 (Resource Limit Is Reached) که می آد و می ره
- خطای 503 یا 500 که با رفرش کردن گاهی درست می شه
- پنل مدیریت وردپرس که برای ذخیره یه نوشته چند ثانیه گیر می کنه
- بکاپ گرفتن یا ایمپورت محصول که وسط کار قطع می شه
- کندی شدید فقط در ساعت های مشخص، مثلاً ۹ تا ۱۱ شب یا هم زمان با کمپین
هاست مثل کنتور برق آپارتمانه. بخاری و اجاق و ماشین لباسشویی رو هم زمان روشن کنی، فیوز می پره. برق شهر سالمه، فقط سقف مجاز کنتور کمه. هاست هم همین طوره: سرور سالمه، ولی حساب تو بیشتر از سهمش خواسته.
قبل از هر چیز، سقف منابع رو از مشکل شبکه جدا کن
همه کندی ها به منابع ربط ندارن. این سه آزمایش ساده حدود پنج دقیقه وقتت رو می گیره:
- از دو اینترنت مختلف تست کن. یه بار با اینترنت خونه، یه بار با دیتای موبایل. اگه فقط از یکی باز نمی شه، مشکل مسیر یا اپراتوره، نه هاست. محدودیت های اینترنت بین الملل هم گاهی باعث می شه سرویس های خارجی (مثل فونت یا اسکریپت گوگل) کند لود بشن، در حالی که خود هاست سالمه.
- یه فایل استاتیک رو باز کن. مثلاً یه تصویر یا یه فایل test.html که خودت آپلود کردی. اگه این فایل سریع می آد ولی صفحه های وردپرس کندن، مشکل از اجرای کده، نه شبکه.
- خطاها رو بخون. تو سی پنل فایل error_log و بخش Errors رو نگاه کن. اگه پیام هایی درباره memory یا حد مجاز پردازش می بینی، احتمالاً مشکل رو پیدا کردی.
اگه سایت همیشه و برای همه کنده، به DNS یا تنظیمات سرور هم شک کن. اگه فقط زیر فشار کند می شه، همین مسیر رو ادامه بده.
نمودار منابع سی پنل رو چطور بخونی؟
تو سی پنل دنبال Resource Usage بگرد؛ معمولاً زیر بخش Metrics یا Statistics هست. اسم ها بسته به نسخه سی پنل و تنظیمات هاست ممکنه کمی فرق کنه، ولی منطقش همونه. صفحه اول یه عکس لحظه ای (Snapshot) نشون می ده. بخش جزئیات هم تاریخچه چند ساعت یا چند روز اخیر رو نشون می ده، همراه با تعداد دفعاتی که سایت به سقف خورده (Faults).
| منبع | یعنی چی | وقتی به سقف می رسه |
|---|---|---|
| CPU Usage | توان پردازشی که کد و دیتابیس مصرف می کنن | سایت کند می شه، صفحه ها دیر ساخته می شن |
| Physical Memory | رمی که پردازش های سایتت اشغال کردن | خطای 500 یا 508، قطع شدن بکاپ و ایمپورت |
| Entry Processes | تعداد درخواست هایی که هم زمان وارد سایت شدن | بازدیدکننده جدید صف می کشه یا 508 می گیره |
| Number of Processes | کل پردازش های فعال حساب | پنل و کران جاب ها گیر می کنن |
| I/O و IOPS | سرعت خوندن و نوشتن روی دیسک | بکاپ، آپلود و کوئری های سنگین کند می شن |
دو الگو، دو تشخیص متفاوت
الگوی اول: صاف شدن روی سقف. خط نمودار بالا می ره و مثل یه سقف تخت می مونه. یعنی سایت می خواسته بیشتر مصرف کنه و پلن اجازه نداده. معمولاً Faults هم عددی غیر از صفر نشون می ده. این الگو یعنی مشکل جدیه، ولی هنوز نمی گه مقصر کیه.
الگوی دوم: قله در ساعت های مشخص. مصرف بیشتر وقت ها پایینه و فقط شب ها یا موقع کمپین بالا می ره. معمولاً پای ترافیک واقعی یا یه کار زمان بندی شده (بکاپ، کران جاب) در میونه.
حالا مهم ترین کار: نمودار رو کنار آمار بازدید بذار. اگه بازدید ثابته ولی مصرف جهش کرده، مشکل از کد، افزونه یا رباته. اگه بازدید هم همراه مصرف بالا رفته، سایتت داره بزرگ می شه و پلن کوچیکه.

محدودیت منابع هاست از کجا می آد؟ علت ها به ترتیب احتمال
این ترتیب از تجربه کار روی هاست های ایرانی و وردپرسی می آد، نه از آمار دقیق. سایت تو ممکنه فرق کنه، ولی از بالا شروع کن چون احتمالش بیشتره.
۱. افزونه و قالب سنگین
محتمل ترین مقصر همین دسته است: افزونه های صفحه ساز، اسلایدرهای پر از انیمیشن، افزونه های آمار که برای هر بازدید کوئری می زنن، و افزونه هایی که فقط برای یه قابلیت کوچیک نصب شدن. هر کدوم جداگونه کم مصرفه، ولی ده تاشون کنار هم یه سایت ساده رو به موتور سنگین تبدیل می کنه.
نشونه اش اینه که CPU حتی با بازدید کم بالاست و با غیرفعال کردن یه افزونه محسوس پایین می آد.
۲. ربات ها و درخواست های بی ارزش
بخشی از ترافیک سایت اصلاً آدم نیست: خزنده های موتور جستجو، اسکنرهای امنیتی و ربات هایی که مدام به wp-login.php و xmlrpc.php سر می زنن. این درخواست ها معمولاً کش نمی شن و هرکدوم یه پردازش واقعی مصرف می کنن. تو سی پنل، در بخش Raw Access یا Visitors، می تونی IP ها و مسیرهای پرتکرار رو ببینی.
یه فایروال سایت می تونه IP های مشکوک رو پیش از رسیدن به برنامه مسدود کنه یا کپچا نشون بده، تا حمله روی سرعت کاربر عادی اثر نذاره. ما موقع تنظیم فایروال همین کار رو می کنیم. اگه خودت قاعده سخت می ذاری، یه نکته رو یادت نره: مسیر بازگشت از درگاه بانک رو جدا نگه دار. ما بازگشت از درگاه رو از فایروال و محدودیت های ورود جدا می کنیم تا کاربری که پرداخت کرده، موقع برگشت از بانک بلاک نشه و پرداخت نیمه کاره نمونه. برای فروشگاه هایی که درگاه پرداخت بانکی دارن، این جداسازی خیلی مهمه.
۳. نبود کش
وردپرس بدون کش برای هر بازدید صفحه رو از صفر می سازه: چند ده کوئری دیتابیس و کلی کد PHP. همین کار برای ده هزارمین بازدیدکننده صفحه اول هم تکرار می شه، در حالی که صفحه هیچ تغییری نکرده. با کش صفحه، سایت یه نسخه آماده تحویل می ده و CPU تقریباً درگیر نمی شه.
۴. کران جاب و بکاپ هم زمان
WP-Cron وردپرس با هر بازدید چک می کنه کاری برای انجام هست یا نه. اگه افزونه بکاپ، افزونه سئو و ایمپورت محصول هم زمان بیدار شن، همون لحظه نمودار قله می زنه. اگه قله هات همیشه سر ساعت مشخصی هستن، این علت رو جدی بگیر.
۵. تصاویر درشت و دیتابیس چاق
تصویر ۴ مگابایتی برای یه بنر ساده هم پهنای باند می خوره، هم به I/O فشار می ده. دیتابیس پر از پیش نویس، ریویژن قدیمی و داده های افزونه های حذف شده هم کوئری ها رو کند می کنه. اگه هنوز سراغ تصاویر نرفتی، از بهینه سازی تصاویر سایت؛ فرمت، اندازه و بارگذاری تنبل شروع کن.
۶. ترافیک واقعی بالا رفته
این علت رو آخر گذاشتم چون اول باید بقیه رو رد کنی، ولی خبر بدی نیست. اگه همه موارد بالا رو بررسی کردی و باز مصرف همراه بازدید واقعی بالا می ره، یعنی کسب و کارت رشد کرده و پلن قبلی دیگه اندازه ات نیست.
اگه چند سایت روی یه حساب داری، حواست باشه منابع بین همه شون مشترکه. یه سایت آزمایشی فراموش شده هم می تونه سهم سایت اصلی رو بخوره. میزبانی چند سایت؛ حساب مشترک چه خطرهایی دارد؟ این موضوع رو جدا توضیح داده.
قبل از خرید پلن بالاتر، این کارها رو به ترتیب انجام بده
ارتقای پلن ساده ترین کاره، ولی همیشه ارزون ترین نیست. اگه مشکل از یه افزونه بد باشه، پلن گرون تر فقط دیرتر به همون مشکل می رسه. این ترتیب رو امتحان کن:
قدم اول: افزونه ها رو یکی یکی غیرفعال کن. نه همه رو با هم. هر بار یکی رو خاموش کن، چند دقیقه صبر کن و نمودار Resource Usage رو ببین. افزونه ای که مصرف رو محسوس پایین آورد، مظنون اصلیه. اگه سایتت فروشگاهیه، این کار رو تو ساعت کم ترافیک بکن، نه وسط روز.
قدم دوم: کش رو درست راه بنداز. یه افزونه کش معتبر نصب کن و کش صفحه رو فعال کن. صفحه های سبد خرید، پرداخت و حساب کاربری رو از کش مستثنی کن، وگرنه مشتری سبد خرید یکی دیگه رو می بینه. کش فقط به درد صفحه هایی می خوره که برای همه یکسانن.
قدم سوم: WP-Cron رو بسپار به کران جاب واقعی. این کار بار بی دلیل رو از روی هر بازدید برمی داره. اول تو wp-config.php این خط رو اضافه کن:
define('DISABLE_WP_CRON', true);
بعدش تو بخش Cron Jobs سی پنل یه کار زمان بندی شده بساز که هر ۱۵ دقیقه اجرا بشه:
*/15 * * * * curl -s "https://example.com/wp-cron.php?doing_wp_cron" > /dev/null 2>&1
به جای example.com آدرس سایت خودت رو بذار. اگه فروشگاهت زمان بندی دقیق تری لازم داره (مثلاً برای ایمیل های سفارش)، فاصله رو کمتر کن.
قدم چهارم: ربات های بی ارزش رو کم کن. اگه به xmlrpc.php نیاز نداری، دسترسی بهش رو ببند. تعداد تلاش های ورود رو محدود کن و IP هایی که مدام درخواست می فرستن رو بلاک کن. خزنده هایی که برای کسب و کارت ارزشی ندارن رو هم می تونی با robots.txt یا فایروال کنترل کنی. فقط مراقب باش ربات گوگل رو اشتباهی نبندی.
قدم پنجم: تصاویر و دیتابیس رو سبک کن. تصاویر رو فشرده کن، از فرمت سبک تری مثل WebP استفاده کن و بارگذاری تنبل رو فعال کن. دیتابیس رو هم هر از گاهی از ریویژن ها و داده های اضافه پاک کن. قبلش حتماً بکاپ بگیر.
قدم ششم: اگه محتوای ثابت زیاده، CDN رو هم در نظر بگیر. CDN می تونه تصاویر و فایل های استاتیک رو از دوش هاست برداره، ولی جای هاست قوی رو نمی گیره، چون اجرای PHP و دیتابیس همچنان روی خود هاست انجام می شه. جزئیاتش تو CDN برای سایت؛ آیا جای هاست قوی را می گیرد؟ اومده. اگه مخاطبت داخل ایرانن، سرویسی انتخاب کن که گره داخل کشور داشته باشه و فقط به مسیر خارجی وابسته نباشه.

کی وقت ارتقای پلنه؟
بعد از قدم های بالا دوباره نمودار رو نگاه کن. این ها نشونه های یه تصمیم درستن:
- بعد از بهینه سازی هنوز در ساعت های اوج به سقف می خوری
- مصرف مستقیم با بازدید واقعی بالا می ره، نه با ربات
- فروشگاه یا سرویست حالا جدی تره و هر ساعت قطعی یعنی فروش از دست رفته
- بیشتر از یه سایت یا سرویس سنگین (مثلاً API یا اپلیکیشن) روی همون حساب می چرخه
اینجا دو مسیر داری. اگه فقط یه پله منابع کم داری، ارتقا به پلن بالاتر همون هاست ساده ترین و کم ریسک ترین کاره، چون انتقالی لازم نیست و سایت سر جاش می مونه. اگه فروشگاه وردپرسی با ترافیک مداوم داری، یا بیشتر از چند سایت، سرور مجازی منطقی تره، چون منابعت از بقیه جداست و خودت می تونی تنظیمش کنی. در عوض باید مدیریت سرور رو هم قبول کنی یا به یه تیم بسپری.
برای اینکه حدس نزنی، انتخاب منابع سرور مجازی برای وردپرس: رم و CPU چقدر کافی است؟ رو بخون. اگه تصمیم گرفتی بری، مهاجرت به سرور مجازی؛ چک لیست انتقال از هاست بدون غافلگیری جلوی خیلی از غافلگیری ها رو می گیره.
یه اشتباه رایج هم هست: خیلی ها وسط کمپین، با عجله و بدون تست، پلن رو عوض می کنن. این ریسک داره. بهتره ارتقا رو یه هفته قبل از کمپین و با یه بکاپ کامل انجام بدی. اگه فروشگاهت درگاه پرداخت داره، بعد از هر تغییر یه خرید آزمایشی کامل بکن تا مطمئن بشی بازگشت از بانک درست کار می کنه.
اگه نمی خوای کل این بررسی رو خودت انجام بدی، ما تو بخش بهینه سازی سرعت این کار رو مرحله به مرحله انجام می دیم؛ از خوندن نمودار تا پیدا کردن افزونه یا کوئری پرمصرف.
چطور دوباره به سقف نخوری؟
یه بار درست کردن کافی نیست، چون سایت هر ماه یه چیز جدید پیدا می کنه: افزونه تازه، کمپین جدید، محصول بیشتر. چند عادت ساده کمک می کنه:
- هفته ای یه بار نمودار Resource Usage رو نگاه کن. لازم نیست عمیق بخونی؛ فقط ببین قله ها بیشتر شدن یا نه.
- قبل از هر کمپین پیامکی یا تخفیف بزرگ، صفحه فرود رو تست کن و کش رو گرم کن.
- هر افزونه تازه رو با فاصله نصب کن و بعدش یه نگاه به مصرف بنداز. اگه یه افزونه ناگهان مصرف رو بالا ببره، زودتر می فهمی.
- بکاپ ها رو تو ساعت های خلوت، مثلاً نیمه شب، تنظیم کن و با کران جاب های دیگه هم زمان نکن.
- مصرف رو خودکار پایش کن. اگه فروش آنلاین داری، نباید منتظر شکایت مشتری بمونی. مانیتورینگ و پایداری برای همین کار ساخته شده و می تونه پیش از قطعی بهت هشدار بده.
سوالات متداول
خطای 508 همیشه یعنی باید پلن رو عوض کنم؟
نه. ارور 508 فقط می گه حساب به سقف منابع خورده، ولی دلیلش می تونه یه افزونه بد، حمله ربات یا کران جاب سنگین باشه. اول مصرف رو با Resource Usage بررسی کن. اگه با بهینه سازی حل نشد، سراغ ارتقا برو.
چقدر رم و CPU برای یه سایت وردپرسی کافیه؟
عدد ثابتی نداره، چون به تعداد افزونه ها، نوع سایت و ترافیک بستگی داره. یه سایت معرفی ساده با کش، منابع خیلی کمتری از یه فروشگاه با صدها محصول لازم داره. بهترین راه اینه که مصرف واقعی خودت رو تو ساعت های شلوغ اندازه بگیری و کمی بالاتر از اون پلن انتخاب کنی.
کش و CDN می تونن جای ارتقای پلن رو بگیرن؟
تا حدی. کش صفحه بار CPU رو محسوس پایین می آره و CDN فایل های استاتیک رو از دوش هاست برمی داره. ولی صفحه های پویا مثل سبد خرید، پرداخت و پنل کاربر کش نمی شن و همچنان از منابع هاست استفاده می کنن. پس کمک می کنن، ولی اگه فروشگاهت رشد کرده باشه، جای منابع بیشتر رو نمی گیرن.
سایت هام رو روی یه حساب نگه دارم یا جدا کنم؟
اگه سایت ها سبک و کم بازدیدن، یه حساب می تونه کافی باشه. ولی منابع بین همه شون مشترکه و مشکل یکی به بقیه سرایت می کنه. سایت اصلی کسب و کار رو، به خصوص اگه فروش داره، بهتره از سایت های آزمایشی یا کم اهمیت جدا نگه داری.
چطور بفهمم مصرف بالا از ربات هاست؟
مصرف رو با آمار بازدید واقعی مقایسه کن. اگه بازدید ثابته ولی CPU بالا رفته، برو سراغ لاگ دسترسی (Raw Access) و ببین کدوم IP ها یا مسیرها (مثل wp-login.php) درخواست های تکراری دارن. بلاک کردن این IP ها یا اضافه کردن کپچا معمولاً می تونه مصرف رو سریع پایین بیاره.
اول بخون، بعد خرج کن
وقتی سایت به سقف می رسه، عجله نکن. نمودار Resource Usage رو باز کن، ببین کدوم منبع پر شده، با آمار بازدیدت مقایسه کن و قدم های بهینه سازی رو به ترتیب بردار. اگه بعد از همه این ها هم مصرف همراه ترافیک واقعی بالا می ره، ارتقا خرج بی جا نیست، سرمایه گذاری روی فروشه. فقط یادت باشه زمانش رو قبل از کمپین بعدی بذاری، نه وسطش. اگه می خوای بدونی هاست یا سرور مجازی مناسب سایتت کدومه، میزبانی وب و سرور مجازی ایران رو ببین.


