Herstellung von PHP-Skripten Zeit aus, so dass sie nicht töten meinen Server

StackOverflow https://stackoverflow.com/questions/374843

  •  22-08-2019
  •  | 
  •  

Frage

Die Ursache war wahrscheinlich, dass ich aus Festplattenspeicher lief, was alles seltsam zu arbeiten. Ich werde diese Frage überlassen sowieso, falls jemand ein ähnliches Problem hat.

Ich habe ein paar PHP-Skripte, die für eine lange Zeit aufgehängt haben, aber anscheinend sind sie nicht wirklich viel CPU-Zeit, wie sie getötet werden nicht. sie machen es noch unmöglich, lighttpd noch mehr PHP-Prozesse, um zu laichen als die maximale Menge von ihnen bereits hervorgebracht worden ist.

Ich bin die set_time_limit bewusst, die als Funktion oder in Betrieb genommen php.ini verwendet werden können, um die maximale CPU-Zeit ein Skript ausführen kann, zu steuern. Was ich will, ist, all PHP-Skripte von meinem Web-Server (lighttpd) nicht in CPU-Zeit, aber Taktzeit laufen zu begrenzen.

Falls es wichtig ist, das ist das PHP Teil von meiner lighttpd-Konfigurationsdatei.

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

Hier ist mein Server-Status von lighttpd. Sie können sehen, dass PHP ist viel länger gelaufen, als ich erwartet hatte für und hat der Server verursacht zu verstopfen. Merkwürdiger auch mehr PHP Procs scheinen als meine max-Procs zu sein.

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

Irgendwelche Ideen, die mir eine Konfiguration einrichten könnten dazu beitragen, dass ich nicht andauernd babysitten würde sehr geschätzt werden!

War es hilfreich?

Lösung

Sie sind wahrscheinlich am besten aus der php.ini-Datei bearbeiten und Berechtigungen dort zu setzen.

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

Andere Tipps

Ich bin nicht sicher, dass in lighttpd tun können. Sie könnten jedoch, stellen Sie einen „Spinner“ Skript bis in regelmäßigen Abständen aufgehängten Prozesse zu überprüfen und töten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top