0

原因可能是我的磁盘空间不足,导致一切工作异常。无论如何我都会留下这个问题,以防其他人有类似的问题。

我有一些 PHP 脚本已经挂了很长时间,但显然它们并没有真正使用太多 CPU 时间,因为它们不会被杀死。他们仍然使 lighttpd 无法生成更多 PHP 进程,因为它们的最大数量已经生成。

我知道 set_time_limit 可以用作函数或放入 php.ini 以控制脚本可以运行的最大 CPU 时间。我想要的是限制我的网络服务器(lighttpd)运行的所有 PHP 脚本,而不是 CPU 时间,而是时钟时间。

万一这很重要,这是我的 lighttpd 配置文件中的 PHP 部分。

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 procs 似乎也比我的 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 ...

任何可以帮助我设置我不必经常照看的配置的想法将不胜感激!

4

2 回答 2

1

我不确定你可以在 lighttpd 中做到这一点。但是,您可以设置一个“微调器”脚本来定期检查挂起的进程并终止它们。

于 2008-12-17T15:33:29.397 回答
1

您最好编辑 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)
于 2008-12-17T15:40:36.480 回答