我正在运行 OpenBSD 的 chrooted httpd 进程,在过去的几天里,我得到了随机挂断,这些挂断会自行清除,而无需我的任何干预。起初我认为这可能是一个资源问题,因为 SSH 同时挂起,但是在控制台上运行的“顶部”没有显示任何异常(内存使用率低,没有高负载等)。
我设法让我的用户在发生这种情况时给我打电话,而不是在 20-30 分钟后给我打电话,并在我的错误日志中注意到以下内容:
Timeout
^@Timeout
^@Timeout
^@Timeout
这就是在线上的所有内容。有时 ^@Timeout 的数量会有所不同,但这就是全部。我查看了访问日志,看看是否有一些可能挂起的进程(如 curl 调用)正在执行此操作,但我没有看到任何相关性。
在自定义 PHP 应用程序中运行的站点,直到最近,都没有任何问题。在这种情况开始发生的同时,没有推送新的代码更改。
其他人遇到过这样的情况,或者有什么想法吗?
[编辑 - 06-11-2009]
看起来此服务器之外正在发生其他事情。超时打印似乎是随机发生的,但我认为我在网络级别看到同样的事情发生在连接挂起的情况下。
感谢您的输入!
一旦我们遇到了与 SVN 类似的问题。事实证明,系统熵池偶尔会完全耗尽,然后 SVN 和其他一些东西(不记得是什么)挂了。这可能是关于 SSH 的情况,如果 PHP 使用熵,这也可能是 Apache 的情况。
您可以使用以下命令在 OpenBSD 框中检查熵 leven:
作为输出,您将获得很多关于数字的信息。这些描述在
/usr/include/dev/rndvar.h
:/dev/urandom
如果事实证明这确实是一个熵问题,您可以考虑为您的 PHP 应用程序使用非强随机生成器,例如。