Question

La cause était sans doute que je suis sorti de l'espace disque, causant tout fonctionne étrangement. Je vais laisser cette question en cas de toute façon à quelqu'un d'autre a un problème similaire.

J'ai quelques scripts PHP qui ont accroché depuis longtemps, mais apparemment, ils ne sont pas vraiment en utilisant beaucoup de temps CPU, car ils ne sont pas tués. Pourtant, ils font qu'il est impossible pour lighttpd pour se reproduire tous les processus plus PHP que le montant maximum d'entre eux a été donné naissance à déjà.

Je suis au courant du set_time_limit qui peut être utilisé en fonction ou mis en php.ini pour contrôler le temps CPU maximum un script peut fonctionner. Ce que je veux est de limiter tous les scripts PHP gérés par mon serveur web (lighttpd) pas dans le temps CPU, mais le temps d'horloge.

Dans le cas où il importe, c'est la partie PHP de mon fichier de configuration 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,
)))

Voici mon serveur d'état de lighttpd. Vous pouvez voir que PHP a été en cours d'exécution beaucoup plus longtemps que je marchandé et a causé le serveur encombrent. Étrangement, il semble aussi être plus procs PHP que mes 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 ...

Toutes les idées qui pourraient aider à me définir une configuration que je ne dois pas garder les enfants en permanence serait très apprécié!

Était-ce utile?

La solution

Vous êtes probablement mieux loti éditer le fichier php.ini et la mise en y permissions.

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

Autres conseils

Je ne suis pas sûr que vous pouvez le faire dans lighttpd. Vous pouvez, toutefois, mettre en place un script « spinner » pour vérifier périodiquement les processus bloqués et les tuer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top