Если ограничение стоит на 32 мб, следовательно и помереть должен на 32 мб. а он до 300мб доходит, в общем завершается только тогда, когда поглощает всю свободную память.
Server: nginx/0.6.35
Значение устанавливал через панель ISPmanager, файл php.ini располагается в /usr/local/etc/
данные выводимые при помощи функции phpinfo, совпадают со значениями установленными в php.ini
вот я и не знаю, как такое может быть. У меня такая мысль проскочила, что может это процесс ведет какойто лог в памяти, выполняемой работы, хотя, наверное, это абсурд.
Скрипт работает порядка 6 часов (~ 200 секунд процессорного времени), за это время процесс php-cgi с ~10мб возрастает до ~300мб и прерывается, в связи с поглощением всей свободной памяти.
Еще хотел спростиь, memory_limit ограничивает именно память процесса php-cgi? или память скрипта?
netwind, запустил скрипт, top отсортирован по памяти
Процесс PID 62866
При старте скрипта весил примерно 18 метров
.. сообщение добавилось к предыдущему посту
нет, curl_close выполняется, здесь ошибки нет.
mfl добавил 27.02.2009 в 18:04
С переодичностью в 900 секунд проверялась память в самом скрипте:
Значения параметров
memory_get_usage() колебалось в пределах 524996 - 650544
memory_get_usage(true) колебалось в пределах 1572864 - 2359296
При этом значения не менялись по возрастающей, последующие значения могли быть как больше так и меньше текущих.
Командой top отслеживалась потребляемая процессом php-cgi память.
Наблюдалось постепенное увеличение потребляемой процессом памяти, которое заканчивалось поглащением всей свободной оперативной памяти (~300mb)
У кого нибудь, есть предположения в пречинах такой утечки памяти и как с этим можно бороться?
Спасибо.
mfl добавил 27.02.2009 в 18:07
С переодичностью в 900 секунд проверялась память в самом скрипте:
Значения параметров
memory_get_usage() колебалось в пределах 524996 - 650544
memory_get_usage(true) колебалось в пределах 1572864 - 2359296
При этом значения не менялись по возрастающей, последующие значения могли быть как больше так и меньше текущих.
Командой top отслеживалась потребляемая процессом php-cgi память.
Наблюдалось постепенное увеличение потребляемой процессом памяти, которое заканчивалось поглащением всей свободной оперативной памяти (~300mb)
У кого нибудь, есть предположения в пречинах такой утечки памяти и как с этим можно бороться?
Спасибо.
расширения:
Reflection.so
SPL.so
SimpleXML.so
Zend Optimizer.so
cgi-fcgi.so
ctype.so
curl.so
date.so
gd.so
hash.so
iconv.so
imap.so
libxml.so
mysql.so
pcre.so
session.so
standard.so
zlib.so
в процессе работы скрипта curl используется.
но получаемые данные при каждом запросе перезаписываются в одну и ту же переменную.
А еще какие могут быть пречины того, что игнорируется memory_limit?
Если ограничение стоит на 32 мб, следовательно и помереть должен на 32 мб. а он до 300мб доходит, в общем завершается только тогда, когда поглощает всю свободную память.
Server: nginx/0.6.35
Значение устанавливал через панель ISPmanager, файл php.ini располагается в /usr/local/etc/
данные выводимые при помощи функции phpinfo, совпадают со значениями установленными в php.ini
netwind, так в memory_limit установлено 32 mb, а процесс потребляет примерно 300 mb
Сейчас буду проверять, спасибо за подсказку.
Без разницы. Итог один и тот же.
VPS: CPU 900 MHZ, Оперативка: 384 Mb
На счет оверселлинга, не замечал, сайты работают быстро.
да так и делаю, в каждой итерации пременные удаляются.
Именно так, обновление через CURL. Переменные по завершении итерации удаляются.
В общем. сейчас буду тестить с memory_get_usage(0).
Тогда вопрос, почему скрипт игнорирует значение установленное в memory_limit?
вот я и не знаю, как такое может быть. У меня такая мысль проскочила, что может это процесс ведет какойто лог в памяти, выполняемой работы, хотя, наверное, это абсурд.
Скрипт работает порядка 6 часов (~ 200 секунд процессорного времени), за это время процесс php-cgi с ~10мб возрастает до ~300мб и прерывается, в связи с поглощением всей свободной памяти.
Еще хотел спростиь, memory_limit ограничивает именно память процесса php-cgi? или память скрипта?
во всех переменных скрипта максимум 2 мб, не может он столько жрать. Даже если не делать запросов к БД, потребляемая память не уменьшается.
Нарастание потребляемой памяти происходит постепенно, но в самих переменных скрипта обьем памяти не увеличивается.
тоже запишусь, сейчас скину данные