Pergunta

A causa foi, provavelmente, que eu corri para fora de espaço em disco, fazendo com que tudo funcione de forma estranha. Vou deixar esta pergunta-se de qualquer maneira no caso de alguém tem um problema semelhante.

Eu tenho alguns scripts PHP que têm pendurado por um longo tempo, mas aparentemente eles não estão realmente usando muito tempo de CPU, como eles não se matou. Ainda assim eles estão fazendo o impossível para lighttpd para desovar quaisquer processos mais PHP como a quantidade máxima deles já foi gerado.

Estou ciente da set_time_limit que pode ser usado como uma função ou posto em php.ini para controlar o tempo máximo de CPU de um script pode ser executado. O que eu quero é limitar todos PHP scripts são executados pelo meu servidor web (lighttpd) não em tempo de CPU, mas o tempo do relógio.

No caso é importante, esta é a parte PHP do meu arquivo lighttpd configuração.

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,
)))

Aqui está o meu server-status de lighttpd. Você pode ver que o PHP tem funcionado muito mais tempo do que eu esperava e fez com que o servidor para entupir. Estranhamente, há também parecem ser mais procs PHP do que meus 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 ...

Todas as ideias que poderiam me ajudar a definir uma configuração que eu não tenho que constantemente babá seria muito apreciada!

Foi útil?

Solução

Você é provavelmente melhor fora de editar o arquivo php.ini e definição de permissões lá.

;;;;;;;;;;;;;;;;;;;
; 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)

Outras dicas

Eu não tenho certeza que você pode fazer isso em lighttpd. Você poderia, no entanto, criar um script "Spinner" para verificar periodicamente para processos pendurados e matá-los.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top