Memory Exhausted معمولاً همراه پیام Allowed memory size ... exhausted در PHP دیده میشود. یعنی همان اجرای PHP به حد حافظهٔ مجاز رسیده است؛ نه اینکه الزاماً فضای دیسک یا کل RAM سرور تمام شده باشد. پیش از افزایش سقف، عملیات و زمان رخداد را پیدا کنید.
عددهای پیام Memory Exhausted چه میگویند؟
عددِ allowed memory size معمولاً بر حسب بایت است. برای نمونه، ۱۳۴۲۱۷۷۲۸ بایت برابر ۱۲۸ مِبیبایت است. بخش tried to allocate درخواستِ تخصیص بعدی را نشان میدهد، نه کل حافظهٔ نهاییِ لازم برای موفقیت عملیات. از آن نتیجه نگیرید که باید چند گیگابایت به سقف اضافه کنید.
مسیر فایل و خطِ پیام نیز محل آشکارشدن خطاست؛ لزوماً همان تابع، علت اصلی مصرف غیرعادی نیست. بارگذاری بیش از حد داده یا تکرار ناخواسته در بخش دیگری میتواند حافظه را پیشتر مصرف کرده باشد.
عملیات محرک را محدود کنید
- مشخص کنید خطا در پیشخوان، یک صفحه، پردازش تصویر، بکاپ یا واردکردن داده رخ میدهد.
- آخرین تغییر افزونه، قالب، PHP و حجم ورودی را ثبت کنید.
- روی نسخهٔ آزمایشی با ورودی کوچکتر همان عملیات را تکرار کنید؛ سفارش یا پرداخت واقعی را دوباره اجرا نکنید.
- لاگ مرتبط را خصوصی بررسی و زمان خطا را با درخواست تطبیق دهید.
سقف PHP با ثابتهای وردپرس یکسان نیست
تنظیم memory_limit در PHP محدودهٔ حافظهٔ اجرای اسکریپت را تعیین میکند. ثابتهای وردپرس درخواست یا سیاست مصرف در زمینههای مختلفاند و نمیتوانند هر محدودیت غیرقابل تغییرِ هاست را دور بزنند. برای روش پیکربندی، راهنمای اختصاصی افزایش محدودیت حافظه را بخوانید.
چه زمانی افزایش محدود منطقی است؟
اگر نیاز واقعی عملیات را میشناسید، منابع سرویس اجازه میدهد و مصرف غیرعادی را بررسی کردهاید، افزایش کنترلشده میتواند بخشی از راهحل باشد. مقدار قبلی را ثبت کنید، یک محل معتبر تنظیم را تغییر دهید و مقدار مؤثر را در همان محیط وب بررسی کنید. حافظهٔ نامحدود یا عدد بزرگِ یکسان برای همهٔ سایتها انتخاب مناسبی نیست.
علت مصرف را اصلاح کنید
برای کار دستهای، اندازهٔ هر نوبت را کم کنید؛ برای تصویر، ابعاد واقعی را بررسی کنید؛ برای افزونه، سازگاری و شیوهٔ بارگذاری داده را بررسی کنید. اگر یک افزونهٔ مشکوک دارید، آزمون محدودِ قابل بازگشت انجام دهید. غیرفعالکردن همهٔ خدمات سایت اصلی بدون برنامه میتواند خطای دیگری بسازد.
چه چیزی به پشتیبانی بدهیم؟
زمان با منطقهٔ زمانی، عملیات محرک، متن خطای بدون اطلاعات محرمانه، نسخهها و سقف مؤثر را بفرستید. فایل wp-config.php یا کل لاگِ حاوی کلید و دادهٔ کاربر را عمومی نکنید. رفع Memory Exhausted زمانی قابل تأیید است که همان عملیات با ورودی متعارف موفق شود و مصرف دوباره به سقف نچسبد.
راهنمای مرتبط
بازبینی فنی و منابع: ۲۷ مهر ۱۴۰۵. تاریخ انتشار اولیه و مسیر قبلی حفظ شدهاند.