Allowed memory size exhausted mesajı, tek bir PHP isteğinin tanımlanan memory_limit değerini tükettiğini gösterir. Sunucuda boş RAM bulunması bu limiti değiştirmez. Önce tüketimi oluşturan eklenti, sorgu veya işlem bulunmalı; ardından uygun WordPress ve PHP limitleri dengeli şekilde ayarlanmalıdır.
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted
tried to allocate 4096 bytes
wp-includes/class-wpdb.php on line ...
PHP memory_limit her PHP işleminin kullanabileceği en yüksek bellektir. WP_MEMORY_LIMIT WordPress’in normal işlemler için talep ettiği değeri, WP_MAX_MEMORY_LIMIT ise yönetim tarafındaki bazı işlemler için üst değeri belirleyebilir.
Sunucuda 64 GB RAM olması tek bir PHP isteğinin 128 MB limitini aşmasını engellemez. Buna karşılık limiti çok yükseltmek eşzamanlı PHP süreçlerinin tüm RAM’i tüketmesine yol açabilir.
Logdaki ‘tried to allocate’ değeri toplam ihtiyaç değildir; işlem limit dolduktan sonra istediği son ek miktardır. Asıl tüketen bileşen stack trace ve dosya yoluyla bulunmalıdır.
WooCommerce import, büyük görsel işleme, Elementor editörü, yedekleme ve rapor eklentileri normal sayfalardan daha çok bellek kullanabilir. Yönetim limiti ayrı değerlendirilmelidir.
Object cache, büyük autoload option kayıtları ve sonsuz sorgu döngüleri bellek tüketimini artırabilir. Limit artırıldıktan sonra tekrar yükseliyorsa kök sorun çözülmemiştir.
memory_limit=-1 canlı hosting ortamında güvenli bir çözüm değildir. PHP-FPM worker sayısı ile işlem başı limit birlikte hesaplanmalıdır.
E-postada, tarayıcıda veya SSH günlüğünde gördüğünüz ifadeyi aratın. Her kartta anlam, muhtemel neden ve güvenli ilk işlem bulunur.
Anlamı: PHP isteği memory_limit değerine ulaşmıştır.
Muhtemel neden: Ağır eklenti, büyük veri, döngü veya düşük limit.
Anlamı: Limit dolduktan sonra istenen son ek miktarı gösterir.
Muhtemel neden: Tek başına toplam bellek ihtiyacını göstermez.
Anlamı: PHP veya işletim sistemi bellek ayıramamıştır.
Muhtemel neden: PHP limiti, global RAM veya OOM.
Anlamı: WordPress normal işlemler için daha düşük talep kullanıyor.
Muhtemel neden: wp-config sabiti veya varsayılan değer.
Anlamı: Yönetim işlemi üst WordPress limitini tüketmiştir.
Muhtemel neden: Import, güncelleme, rapor veya editör.
Anlamı: Büyük görsel işleme sırasında bellek bitti.
Muhtemel neden: Yüksek çözünürlük, Imagick/GD ve düşük limit.
Anlamı: WooCommerce önerilen değerin altında limit görüyor.
Muhtemel neden: Web PHP ve CLI PHP ayarları farklı olabilir.
Anlamı: Kernel global RAM baskısı nedeniyle PHP sürecini öldürmüştür.
Muhtemel neden: Aşırı worker, swap yokluğu veya bellek sızıntısı.
Bu ifadeyle eşleşen kayıt bulunamadı.
Komutlar root erişimi içindir. Önce yalnızca durum ve log toplayın; nedeni görmeden kalıcı ayar değiştirmeyin.
php -r 'echo ini_get("memory_limit"), PHP_EOL;'
CLI için etkin memory_limit değerini gösterir.
wp config get WP_MEMORY_LIMIT 2>/dev/null
wp config get WP_MAX_MEMORY_LIMIT 2>/dev/null
wp-config içinde özel limit tanımlı mı gösterir.
wp eval 'echo WP_MEMORY_LIMIT." / ".WP_MAX_MEMORY_LIMIT.PHP_EOL;'
WordPress’in gördüğü normal ve admin limitini gösterir.
wp db query "SELECT option_name,LENGTH(option_value) boyut FROM wp_options WHERE autoload='yes' ORDER BY boyut DESC LIMIT 20;"
Autoload edilen büyük seçenekleri tespit eder; prefix farklıysa uyarlayın.
ps -eo pid,user,%mem,rss,etime,cmd --sort=-rss | grep -E 'php-fpm|lsphp' | head -n 30
En çok RAM kullanan PHP süreçlerini gösterir.
journalctl -k --since '2 hours ago' | grep -Ei 'oom|out of memory|killed process'
Global RAM tükenmesi ile PHP limitini ayırır.
WordPress hatasının temel nedeni aynıdır ancak log yolları, PHP ayar ekranları ve servis yönetimi kullanılan barındırma altyapısına göre değişir.
cPanel’de MultiPHP INI Editor ve MultiPHP Manager web PHP değerini yönetir.
php -r 'echo ini_get("memory_limit"), PHP_EOL;'Plesk PHP Settings ekranında domain bazlı memory_limit ayarlanır.
cd /var/www/vhosts/ALANADI/httpdocs && wp eval 'echo WP_MEMORY_LIMIT;'Panelsiz sunucuda php.ini, FPM pool ve worker kapasitesi birlikte hesaplanır.
php --ini && systemctl list-units 'php*-fpm.service' --no-pagerGerçek web PHP limitini ölçün, hata dosyasını bulun, tüketen bileşeni izole edin ve kapasite hesabıyla kontrollü limit belirleyin.
Hata hangi eklenti, tema veya çekirdek çağrısında oluşuyor kaydedin.
tail -n 150 wp-content/debug.logTarayıcıdaki PHP ile SSH php komutu farklı ini kullanabilir.
php --iniImport, editör veya cron işlemini eklentileri kontrollü izole ederek test edin.
wp plugin list --status=activeNormal ve admin işlemleri için makul WP_MEMORY_LIMIT/WP_MAX_MEMORY_LIMIT kullanın.
İşlem başı gerçek RSS ile max_children ve toplam RAM’i karşılaştırın.
ps -eo rss,cmd --sort=-rss | grep php-fpm | headPeak usage, log ve global RAM davranışını doğrulayın.
Admin memory, eklenti sayısı ve büyük template verisi incelenir.
Dosyayı parçalara bölün, batch boyutunu ve Action Scheduler’ı kontrol edin.
Büyük piksel boyutu, Imagick policy ve thumbnail üretimi incelenir.
Bellek sızıntısı, döngü veya çok büyük autoload verisi araştırılır.
Bu yalnız PHP memory_limit değil global OOM problemidir.
journalctl -k | grep -Ei 'oom|killed process'Hayır. PHP memory_limit üst sınırdır; WordPress sabiti uygulamanın talep ettiği değerdir ve PHP üst sınırını aşamaz.
Site ve işlem türüne göre değişir; 128–256 MB yaygındır ancak gerçek süreç tüketimi ve sunucu kapasitesi ölçülmelidir.
PHP her işlem için ayrı memory_limit uygular.
Hayır; limit dolduktan sonra istenen son ek miktardır.
Import, rapor, ürün varyasyonu ve admin işlemleri standart blogdan daha fazla tüketebilir.
Genellikle hayır; yalnız bellek yetersizliğini giderir. Aşırı yüksek limit global RAM baskısı yaratabilir.
WordPress yönetim tarafındaki bazı ağır işlemler için daha yüksek bellek talebi tanımlar.
cPanel, WHM, CloudLinux, LiteSpeed, MariaDB, Exim ve güvenlik katmanlarını birlikte analiz ederek yalnızca servisi kaldırmak yerine arızanın temel nedenini gideriyoruz.