在 Docker 中运行的 Apache/PHP7.3 随机断开连接,响应为空

Voj*_*ěch 6 apache docker php-7.3

我发现了几个类似的问题:

然而,这些似乎无助于找到原因。我可以在重新加载特定页面约 20 次时复制该行为。

  1. 运行当前的 apache2(= 2.4.38-3+deb10u4)。我试图禁用 opcache,删除MaxRequestsPerChild没有效果。
  2. Apache 日志没有显示任何错误。该请求甚至没有记录。
  3. USE_ZEND_ALLOC=0似乎没有效果,问题仍然存在。
  4. 我尝试安装mod_forensic它显示请求进来。然后没有错误或完成的请求被记录。
  5. 容器在 Kubernetes 中运行,我无法复制直接使用 Docker 机器在本地运行的问题,这就是为什么我认为这可能是由某些内存设置引起的。但是我找不到可能导致这种情况的原因,因为没有单一的错误消息。

你能想到发生这种情况的任何原因吗?

编辑1:

我尝试将日志级别设置为跟踪:

https://gist.github.com/knyttl/861e8a0fe5651408df37cd5c3874946b

请求被处理,然后你可以看到:

[Tue Oct 20 08:37:55.825454 2020] [core:trace4] [pid 1] mpm_common.c(536): mpm child 388 (gen 2/slot 4) exited
Run Code Online (Sandbox Code Playgroud)

没有错误也没有响应。

编辑2:

我更新到 php7.4,问题依旧。

Voj*_*ěch 1

我终于找到了:

该进程被宿主机的 OOM Killer 默默杀死:

[4019392.626796] Memory cgroup out of memory: Kill process 4178127 (apache2) score 1137 or sacrifice child
[4019392.636520] Killed process 4178127 (apache2) total-vm:143960kB, anon-rss:22856kB, file-rss:10472kB, shmem-rss:28228kB
Run Code Online (Sandbox Code Playgroud)

这从未记录在容器内,因此很难找到。