Domanda

La causa era probabilmente che ho esaurito lo spazio su disco, causando tutto funzioni in modo strano. Lascerò questa domanda fino in ogni modo nel caso qualcuno altro ha un problema simile.

Ho un paio di script PHP che hanno appeso per molto tempo, ma a quanto pare non sono realmente usando il tempo di CPU tanto quanto essi non vengono uccisi. Ancora stanno rendendo impossibile per lighttpd per riprodursi qualsiasi più processi PHP come la quantità massima di essi è stato già generato.

Sono consapevole del set_time_limit che può essere utilizzato come una funzione o messo in php.ini per controllare il tempo massimo di CPU di uno script può essere eseguito. Quello che voglio è quello di limitare tutti gli script PHP gestiti da mio server web (lighttpd) non in tempo di CPU, ma il tempo dell'orologio.

Nel caso in cui è importante, questa è la parte PHP da mio file di configurazione 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,
)))

Ecco il mio server-status da lighttpd. Si può vedere che il PHP è stato in esecuzione molto più lungo di quanto mi aspettassi e ha causato il server per intasare. Stranamente ci sembrano anche essere più procs PHP che la mia max-proc.

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 ...

Tutte le idee che potrebbero aiutare a impostare una configurazione che non devo fare da babysitter costantemente sarebbe molto apprezzato!

È stato utile?

Soluzione

Sei probabilmente meglio fuori modificando il file php.ini e l'impostazione delle autorizzazioni 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)

Altri suggerimenti

Non sono sicuro che si può fare in lighttpd. Si potrebbe, tuttavia, creare uno script "filatrice" per controllare periodicamente per i processi sospesi e ucciderli.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top