nixp.ru v3.0

19 октября 2017,
четверг,
21:22:01 MSK

DevOps с компанией «Флант»
Nuclear написал 25 июня 2004 года в 12:20 (409 просмотров) Ведет себя как мужчина; открыл 27 тем в форуме, оставил 65 комментариев на сайте.

Доброе время суток.

Недакно при отладке скрипта на ПХП, сервер начал притормаживать. За некоторое время (5 мин) и вовсе отказался отвечать на все запросы (HTTP, FTP, SSH, и тд.). Ping проходил нормально.

Насколько я знаю если скрипт зацикливаеться, пхп после определенного промежутка времени возвращает ошибку и процесс убиваеться. В моем случае я использовал рекурсивный вызов функции, который навернека стал причиной зацикливания.

Скажите каким образом можно настроить пхп или апач, чтобы при зацикливании пользовательских скриптов сервер не падал?

И еще одни вопрос: Почему сервер отвечал на запросы некоторое время и лишь после оказался отвечать, почему этого не произошло сразу?

Genie

У самого php есть настройка ограничения времени выполнения скрипта.

По умолчанию выставляется в 30 секунд.

Можно её из скрипта менять — см. документацию на php.

почему упал не сразу — ну, это в общем-то, понятно — при выполнении рекурсивной функции растёт объём занимаемой памяти. до какого-то момента съедается RAM, а потом начинает откусываться от swap, и всё резко притормаживает.

а как закончилась, память-то, так всё, процесс помирает.

Nuclear

Разобралсь с временем выполнения скрипта.

Изменял значение max_execution_time, как глобально, так и локально с помощью функции set_time_limit.

Изменения проходят успешно и результаты отображены в phpinfo(), но на самом деле не влияют на систему. Рестартовал апач и даже систему. Ничего не помогает.