PHP-скрипт (алгоритм) - зацикливается только до определенной итерации, после чего останавливается

Я запускаю алгоритм на PHP, в котором задействовано много данных. Вся обработка происходит во вложенном цикле for. Как ни странно, внешний цикл for перестает работать после «X» итераций (где «X» меняется все время, пока я запускаю скрипт). Сбой сценария занимает от 5 до 30 минут в зависимости от «X». Он не выдает никаких ошибок, а только делает неполную распечатку моего var_dump (в первой итерации внешнего цикла)

Вот какие меры предосторожности я принял: 1. Я установил ограничение времени ожидания в php.ini на 3600 секунд (60 минут). 2. Я распечатываю memory_get_usage() после каждой итерации внешнего цикла for, и я убедился, что он намного меньше по сравнению с максимальной памятью, выделенной для php. 3. Я сбрасываю настройки массивов, как только они используются. 4. Я повторно использую имена переменных для ограничения памяти внутри цикла for. 5. У меня минимальное количество обращений к моей БД.

Я решал это в течение долгого времени безрезультатно. Итак, мой вопрос в том, что может быть причиной этой проблемы/как мне ее отладить. Большое спасибо! Дополнительно: если я работаю с гораздо меньшим размером тестовых данных, все работает нормально.


person creavery    schedule 13.04.2013    source источник
comment
Не могли бы вы вставить код, пожалуйста?   -  person Christian-G    schedule 13.04.2013
comment
Описание прекрасное, но без кода мы почти бесполезны!   -  person christopher    schedule 13.04.2013


Ответы (2)


Очевидно, что без кода это всего лишь предположение, но уверены ли вы, что используете одно соединение с вашей базой данных? Если вы переподключаетесь каждый раз, вы можете получить слишком много подключений, что может вызвать такую ​​​​ошибку.

person dave    schedule 13.04.2013

Это похоже на проблему с использованием ядер вашего сервера, и аналогичный ответ/обходной путь можно найти здесь: Увеличить использование Apache2 до 4 ядер, работая с PHP

Попробуйте запустить наборы данных параллельно.

person rtexal    schedule 13.04.2013