Nuclear
написал 25 июня 2004 года в 12:20 (877 просмотров)
Ведет себя
как мужчина; открыл 27 тем в форуме, оставил 65 комментариев на сайте.
Доброе время суток.
Недакно при отладке скрипта на ПХП, сервер начал притормаживать. За некоторое время (5 мин) и вовсе отказался отвечать на все запросы (HTTP, FTP, SSH, и тд.). Ping проходил нормально.
Насколько я знаю если скрипт зацикливаеться, пхп после определенного промежутка времени возвращает ошибку и процесс убиваеться. В моем случае я использовал рекурсивный вызов функции, который навернека стал причиной зацикливания.
Скажите каким образом можно настроить пхп или апач, чтобы при зацикливании пользовательских скриптов сервер не падал?
И еще одни вопрос: Почему сервер отвечал на запросы некоторое время и лишь после оказался отвечать, почему этого не произошло сразу?
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
У самого php есть настройка ограничения времени выполнения скрипта.
По умолчанию выставляется в 30 секунд.
Можно её из скрипта менять — см. документацию на php.
почему упал не сразу — ну, это в общем-то, понятно — при выполнении рекурсивной функции растёт объём занимаемой памяти. до какого-то момента съедается RAM, а потом начинает откусываться от swap, и всё резко притормаживает.
а как закончилась, память-то, так всё, процесс помирает.
Разобралсь с временем выполнения скрипта.
Изменял значение max_execution_time, как глобально, так и локально с помощью функции set_time_limit.
Изменения проходят успешно и результаты отображены в phpinfo(), но на самом деле не влияют на систему. Рестартовал апач и даже систему. Ничего не помогает.