Bir klasör XML dosyaları içerirken, onları veritabanına işleyecek bir PHP komut dosyası var.
Şu anda, sunucu PHP 5.3.10 sürümünü çalıştırıyor ve bir döngü içinde tetiklenen bellek sorunları hakkında bir hata raporu var ZEND_MM_HEAP
.
Bu, PHP'nin belleği düzgün şekilde boşaltmamasına neden olur, böylece bir hata ve komut dosyası çökmesine neden olur:
zend_mm_heap is corrupted
Bazı çözümler bulundu, ancak sunucu ayarlarına erişimim yok.
Bununla başa çıkmak için, PHP komut dosyasını yalnızca XML dosyasını işleyerek sorumlu bırakarak, döngüye dikkat etmek için aşağıdaki bash betiğini hazırladım:
#!/bin/bash
# Check for files to process
# If files are present, call
# the PHP script
DIR="/path/to/dir/with/files"
while [ "$(ls -A $DIR)" ]; do
php /path/to/php/script/myscript.php
done
Şimdi amacım bu bash bellek ayırmayı sınırlı tutmak (bellek ve sanal bellek), böylece bir şeyler ters giderse sistemin asılmasını önlemek.
Benim sorum:
Bu kabuk betiği tarafından kullanılan belleği belirli bir miktarla nasıl sınırlayabilirim?
export USE_ZEND_ALLOC=0
.