Причина, вероятно, заключалась в том, что у меня закончилось место на диске, из-за чего все работало странно. Я в любом случае оставлю этот вопрос на тот случай, если у кого-то еще возникнет аналогичная проблема.
У меня есть несколько PHP-скриптов, которые зависали в течение длительного времени, но, видимо, они не используют много процессорного времени, так как их не убивают. Тем не менее, они не позволяют lighttpd создавать какие-либо процессы PHP, поскольку их максимальное количество уже создано.
Мне известно о set_time_limit, который можно использовать как функцию или поместить в php.ini для управления максимальным временем процессора, которое может запускать скрипт. Я хочу ограничить все сценарии PHP, запускаемые моим веб-сервером (lighttpd), не по времени процессора, а по времени.
Если это важно, это часть PHP из моего файла конфигурации lighttpd.
fastcgi.server = (".php" => ((
"bin-path" => "/opt/local/bin/php5-cgi",
"socket" => "/tmp/php.socket" + var.PID,
"min-procs" => 16,
"max-procs" => 16,
"idle-timeout" => 15,
)))
Вот мой статус сервера от lighttpd. Вы можете видеть, что PHP работает намного дольше, чем я ожидал, и вызвал засорение сервера. Как ни странно, похоже, что PHP-процессов больше, чем моих max-procs.
legend
. = connect, C = close, E = hard error
r = read, R = read-POST, W = write, h = handle-request
q = request-start, Q = request-end
s = response-start, S = response-end
388 connections
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
hhhrhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
hhhhhhhhhhhhhrhhhhhhhhhhhhhhhhhhhhhhhhrhhhhhhhhhhh
hhhhrhhhhhhhhhhrhrhhhrrhrhhhhhrhhhrhhhhhhrhhhrrrhr
rrhrrrhrhhhhrrhrrhhrrhrrhrrrrrrrrrrrrh
Connections
Client IP: Read: Written: State: Time: Host: URI: File:
204.16.33.51 0/0 0/0 handle-req 1361 ... (a PHP script)
204.16.33.46 0/0 0/0 handle-req 1420 ... (another PHP script)
... gazillion lines removed ...
Мы будем очень признательны за любые идеи, которые могут помочь мне настроить конфигурацию, за которой мне не нужно постоянно присматривать!
В скриптах всегда могут быть ошибки, и я просто хотел бы убедиться, что даже если я оставлю свои скрипты запущенными на год, пока я поеду на Марс, все равно все будет работать, когда я вернусь.
@Bemmu: Если сценарии написаны хорошо, проблем нет, и все работает. Вы в основном просите сделать вашу машину устойчивой к авариям, потому что у вас нет тяги. Вы решаете неправильный вопрос.






Я не уверен, что вы можете сделать это в lighttpd. Однако вы можете настроить скрипт-счетчик, чтобы периодически проверять зависшие процессы и уничтожать их.
Вам, вероятно, лучше всего отредактировать файл php.ini и установить там разрешения.
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
max_execution_time = 30 ; Maximum execution time of each script, in seconds
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
memory_limit = 32M ; Maximum amount of memory a script may consume (8MB)
Вам не следует больше беспокоиться Зачем, эти PHP-скрипты так долго возвращаются? Звучит как серьезная ошибка.