【发布时间】:2017-01-02 21:14:22
【问题描述】:
我正在使用共享主机。我看到越来越多的流程。当我查看ps aux 时,我看到每天大约添加两个<defunct> 进程lsphp。现在总数已经超过 40 个,而且这个托管的硬上限是 100 个总进程,这让我很担心。
我注意到这些进程中正在运行的TIME 是0:29 或0:30。这让我怀疑这些是执行时间不足的进程。我在开始附近的代码中手动设置了这个时间:ini_set('max_execution_time', 30); 因为我网站上最慢的脚本运行大约 3-5 秒,而 30 秒似乎给了一个足够大的差距,可以知道进程已经挂起并且不会未完待续。然而,这似乎适得其反。
我查看了应用程序日志,似乎挂起的进程(至少超过时间限制的进程)是最长的 DomPDF 进程。我的猜测是用户请求 PDF 但在 PDF 准备好并发送答案之前关闭连接,也许这会以某种方式使进程处于空闲状态......或者只是 DomPDF 让自己处于这种状态?
可能是什么原因?我该怎么做才能解决这个问题?
我能以某种方式(通过修改 PHP 脚本)阻止这些进程僵尸化吗?我是否有机会杀死进程(我无权重新启动机器或杀死父进程)。
【问题讨论】:
标签: php zombie-process