apache2 mod-php cpu 进程占用 100%

apache2 mod-php cpu 进程占用 100%

我有一台 VPS Debian 服务器,安装了 Apache 2.4.10 mod-php。服务器正常启动,但一段时间后,www-data 进程之一的 CPU 占用率达到 100%,并且 Web 服务器不可用。

我尝试了strace该过程并得到了以下几行的无限循环:

poll([{fd=93, events=POLLIN}], 1, 3000) = 1 ([{fd=93, revents=POLLHUP}])
read(93, "", 13160)

然后我尝试 lsof ant 得到了这个:

COMMAND  PID     USER   FD   TYPE DEVICE SIZE/OFF       NODE NAME
apache2 1134 www-data   93r  FIFO    0,8      0t0 3176528027 pipe

什么原因导致了这个问题?当我重新启动 apache 时,过了一段时间,我遇到了同样的问题。

答案1

服务器上的某些 PHP 脚本占用了所有 CPU 时间。可能您遇到了无限循环。信息表明strace脚本正在轮询管道的某些文件描述符。也许该管道的另一端已关闭,而您的脚本仍在尝试从中读取某些内容(未处理的错误)。

如果您不知道服务器上有此类脚本,请检查是否有其他脚本可能已被某人“注入”到您的服务器。检查 Apache 日志以查看远程客户端打开了哪些文件。

相关内容