مصرف بالای CPU وردپرس؛ علت‌ها و مسیر تشخیص بدون تغییرهای حدسی

CPU بالای وردپرس همیشه به معنی هاست ضعیف نیست. با بررسی ترافیک، افزونه‌ها، کوئری‌ها، WP-Cron و آخرین تغییر، علت را مرحله‌به‌مرحله محدود کنید.

هاستلینو۴ دقیقه مطالعهبه‌روزرسانی:

داشبورد تشخیص مصرف بالای CPU در سایت وردپرسی
فهرست مطالب

مصرف بالای CPU وردپرس یک «علت واحد» ندارد. ممکن است ترافیک واقعی، ربات‌ها، افزونه، کوئری کند، کران وردپرس یا کمبود ظرفیت در آن نقش داشته باشد. راه درست این است که زمان رخداد و شواهد را ثبت کنید و پیش از هر تغییر، عامل مصرف را محدود کنید؛ خاموش‌کردن تصادفی افزونه‌ها روی سایت زنده می‌تواند مشکل تازه‌ای بسازد.

اول مشخص کنید هشدار CPU دقیقاً چه می‌گوید

بازه زمانی، درصد یا سقف ثبت‌شده، مدت درگیری و هم‌زمانی آن با کندی یا خطای ۵۰۳ را یادداشت کنید. یک جهش چندثانیه‌ای با مصرف مداوم متفاوت است. نمودار CPU را کنار درخواست‌ها، پردازش‌های PHP، حافظه، I/O و خطاها ببینید؛ CPU بالا همیشه به معنی ناکافی‌بودن هاست نیست.

اگر همراه این هشدار، پیام Resource Limit Is Reached می‌بینید، راهنمای بررسی خطای 508 و محدودیت EP را دنبال کنید؛ علت مستقیم این خطا را نباید فقط از روی نمودار CPU نتیجه گرفت.

برای اینکه کندی را کنار مصرف منابع بسنجید، روش اندازه‌گیری TTFB و زمان پاسخ اولیه را ببینید؛ زمان و شرایط هر آزمون را با نمودار منابع تطبیق دهید و تأخیر شبکه را با زمان اجرای برنامه یکی ندانید.

ترافیک واقعی را از ربات و حمله جدا کنید

لاگ دسترسی را برای مسیرهای پرتکرار، IPها، User-Agentها و کدهای وضعیت بررسی کنید. افزایش بازدید از یک کمپین ممکن است طبیعی باشد؛ درخواست‌های انبوه به صفحه ورود، XML-RPC یا جست‌وجوی داخلی الگوی دیگری دارد. پیش از مسدودسازی گسترده مطمئن شوید کاربر یا سرویس سالم را حذف نمی‌کنید.

آخرین تغییر را روی خط زمان بگذارید

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

افزونه یا قالب پرمصرف را با شواهد پیدا کنید

در محیط آزمایشی یا بازه کم‌ریسک، پردازش‌ها و درخواست‌های کند را بررسی کنید. افزونه‌های آمار، جست‌وجو، امنیت، صفحه‌ساز و فروشگاه می‌توانند بسته به تنظیمات بار متفاوتی بسازند؛ نام یک افزونه به‌تنهایی دلیل کافی نیست. در صورت نیاز، افزونه‌ها را مرحله‌ای و با ثبت نتیجه غیرفعال کنید، نه هم‌زمان و بدون برنامه.

کوئری‌های کند و کارهای زمان‌بندی‌شده را بررسی کنید

در سایت‌های پرتغییر، جداول بزرگ، autoload حجیم یا کوئری بدون ایندکس می‌تواند CPU و زمان پاسخ را بالا ببرد. کران وردپرس نیز با بازدید اجرا می‌شود و اگر کارهای معوق زیاد باشند فشار تکرارشونده می‌سازد. فهرست رویدادهای زمان‌بندی‌شده، مدت اجرا و خطاها را ثبت کنید؛ کار زمان‌بندی‌شده ناشناخته را بدون شناخت حذف نکنید.

کش را به‌عنوان درمان همه‌چیز نبینید

کش صفحه می‌تواند پردازش PHP را برای صفحات عمومی کم کند، اما پنل، سبد خرید، جست‌وجو و پاسخ‌های شخصی‌شده همیشه قابل کش کامل نیستند. پاک‌کردن مداوم کش یا افزودن چند افزونه کش هم‌زمان ممکن است وضعیت را پیچیده‌تر کند. پس از هر تغییر، اثر آن را روی زمان پاسخ و مصرف منابع مقایسه کنید.

چه زمانی ارتقای منابع منطقی است؟

اگر پس از رفع خطای نرم‌افزاری، مصرف متناسب با ترافیک واقعی رشد می‌کند و پردازش‌های سالم به سقف می‌رسند، افزایش ظرفیت می‌تواند منطقی باشد. اما ارتقا بدون یافتن حلقه معیوب، کوئری کند یا ربات مهاجم فقط زمان می‌خرد. برای انتخاب زیرساخت، الگوی بار، ترافیک هم‌زمان و محدودیت‌های واقعی را کنار هم بگذارید؛ سرور مجازی مدیریت‌شده یک گزینه برای سناریوهایی است که کنترل و ظرفیت جدا لازم دارند، نه پاسخ خودکار همه سایت‌ها.

چک‌لیست سریع تشخیص

بررسیخروجی مورد انتظار
زمان و مدت هشداربازه دقیق و تکرارشونده یا مقطعی‌بودن
لاگ درخواست‌هامسیر و منبع درخواست پرتکرار
آخرین تغییرفهرست تغییرات نزدیک به شروع مشکل
پردازش و کوئریعامل کند با زمان اجرا و تعداد تکرار
کران و صف‌هاکار معوق، شکست‌خورده یا تکرارشونده
پس از اصلاحمقایسه نمودار و زمان پاسخ با خط مبنا

چه اطلاعاتی برای پشتیبانی آماده کنیم؟

آدرس سایت، زمان دقیق رخداد، تصویر نمودار، آخرین تغییر، پیام خطا و چند مسیر کند را آماده کنید. رمز، کلید API یا فایل حاوی اطلاعات مشتری را در توضیح عمومی ارسال نکنید. اگر به بررسی مرحله‌ای نیاز دارید، از پشتیبانی فنی وردپرس کمک بگیرید. برای خطاهای هم‌زمان سمت سرور، راهنمای خطای ۵۰۰ وردپرس نیز مسیر بررسی را روشن‌تر می‌کند.

پرسش‌های متداول

آیا CPU بالا حتماً یعنی هاست ضعیف است؟

خیر. ابتدا ترافیک، ربات، افزونه، کوئری، کران و خطا را بررسی کنید. ظرفیت تنها یکی از عوامل ممکن است.

آیا غیرفعال‌کردن همه افزونه‌ها راه مناسبی است؟

روی سایت زنده و بدون نسخه بازیابی، نه. آزمون مرحله‌ای در محیط کنترل‌شده نتیجه قابل اتکاتری می‌دهد.

آیا نصب افزونه کش مشکل را حل می‌کند؟

فقط اگر بخش مهمی از بار قابل کش باشد و تنظیم درست انجام شود. کش علت‌هایی مانند ربات مهاجم یا کوئری معیوب را لزوماً رفع نمی‌کند.

منابع فنی: راهنمای رسمی بهینه‌سازی وردپرس و مستندات WP-Cron. ترتیب تشخیص و جدول بالا، جمع‌بندی عملی تحریریه است.

برای جداکردن نشانه مصرف منابع از کندی مرورگر یا اثر افزونه، مسیر تشخیص کندی وردپرس از هاست یا افزونه را دنبال کنید؛ سناریوی ثابت و تغییر یک عامل، نتیجه قابل پیگیری‌تری می‌دهد.

قبل از ارتقا، عامل مصرف را پیدا کنیم

زمان رخداد، نمودار منابع و آخرین تغییر را آماده کنید تا مسیر بررسی دقیق‌تر شود.

پرسش‌های متداول

آیا CPU بالا حتماً یعنی هاست ضعیف است؟

خیر. ابتدا ترافیک، ربات، افزونه، کوئری، کران و خطا را بررسی کنید. ظرفیت تنها یکی از عوامل ممکن است.

آیا غیرفعال‌کردن همه افزونه‌ها راه مناسبی است؟

روی سایت زنده و بدون نسخه بازیابی، نه. آزمون مرحله‌ای در محیط کنترل‌شده نتیجه قابل اتکاتری می‌دهد.

آیا نصب افزونه کش مشکل CPU را حل می‌کند؟

فقط اگر بخش مهمی از بار قابل کش باشد و تنظیم درست انجام شود. کش علت‌هایی مانند ربات مهاجم یا کوئری معیوب را لزوماً رفع نمی‌کند.