Вопрос по скрипту.

seo-opt
На сайте с 13.06.2009
Offline
43
455

Скажите, я запустил один скрипт(WebGrabber), который парсит сайты, и оставляет спарсенные страницы на сервере. После того как он спарсил около 30 тысяч страниц, мне начала выдаваться ошибка:

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 71 bytes) in /home/bizdelo/public_html/........ on line 228

Скажите, что мне делать в данной ситуации? Это моя проблема, или проблем хостера. Если моя, то как можно её решить?

Коля Дубр
На сайте с 02.03.2005
Offline
153
#2

1. Проблема - закончилась оперативная память, которую может сожрать PHP.

2. 35 мегов - это довольно много. На шаред-хостинге едва ли дадут увеличить, но все же попробуйте

ini_set("memory_limit","50M"); 

3. Вероятно, скрипт устроен неправильно, едва ли есть реальная необходимость держать столько добра в памяти. Обратитесь к разработчику - как правило, можно найти, что за мусор скапливается.

4. Если скрипт умеет сохранять состояние и стартовать с произвольного места - можно выкрутиться относительно просто - в итерации проверять, сколько памяти потрачено, и при приближении к лимиту - сохраняться и прекращать работу с последующим повторным вызовом.

Разрабатываю общую шину (http://habrahabr.ru/company/floxim/blog/268467/) помаленьку. ...а еще у меня есть бложек (http://www.blogovo.ru/).
[Удален]
#3

На ВПС в настройках можно увеличить лимит используемой памяти, а на обычном хостинге через htaccess делается.

dkameleon
На сайте с 09.12.2005
Offline
386
#4
seo-opt:
Если моя, то как можно её решить?

раскладывайте файлы по поддиректориям :)

думаю, где-то читаете все сразу, вот и возникла проблема.

Дизайн интерьера (http://balabukha.com/)
Dreammaker
На сайте с 20.04.2006
Offline
569
#5

А мне кажется, что скорее всего в цикле где-то каждый раз пересоздаётся объект, а в пхп с этим бывают проблемы в виде утечки памяти.

seo-opt
На сайте с 13.06.2009
Offline
43
#6

всем спасибо за ответы!

написал хостеру, что можно сделать, хостер сказал в .htaccess прописать:

php_value memory_limit 64M

Прописал, и тьфу тьфу тьфу, проблема разрешилась.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий