У мене є сценарій PHP, який, хоча папка містить XML-файли, обробляє їх у базі даних.
В даний час на сервері працює PHP версії 5.3.10 і є звіт про помилки щодо проблем із пам'яттю, викликаних ZEND_MM_HEAP
в циклі.
Це призводить до того, що PHP не звільняє пам'ять належним чином, тим самим призводячи до помилок і збоїв сценарію:
zend_mm_heap is corrupted
Деякі рішення знайдені, але я не маю доступу до налаштувань сервера.
Для вирішення цього питання я підготував наступний скрипт bash, щоб піклуватися про цикл, залишаючи сценарій PHP відповідальним лише за обробку XML-файлу:
#!/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
Моя мета зараз - обмежити розподіл пам’яті bash (пам'ять та віртуальна пам’ять), тим самим запобігаючи зависанню системи, якщо щось піде не так.
Моє запитання:
Як я можу обмежити пам'ять, яку використовує цей скрипт оболонки, певним обсягом?
export USE_ZEND_ALLOC=0
.