每 n 次加载挂起页面

Chr*_*ian 5 php hanging apache-2.2

我最近将我的网站移到了新服务器(Apache 2、PHP5、MySQL5)。该站点是一个基于 Invision 的论坛。每隔几个帖子/主题就会挂起。数据已写入,因为如果您停止并重新加载,帖子/线程就在那里。我最初认为这是一个写入问题,但不是。数据已写入,但页面加载从未完成。它不会离开输入数据的页面。

解决此问题的最佳方法是什么?我最近做的唯一一件事就是减少我的 MySQL 超时,但我看不出这是一个问题,因为值仍然足够大,而且 MySQL 日志中没有提到超时。作为记录,PHP 的错误日志中也没有任何内容。

编辑:我检查了我的服务器状态。看起来一切正常,但我怀疑我达到了 ServerLimit,所以我将其加倍。还启用了我的 Keepalive。会关注它。

编辑 2:现在已经几天了,这种情况仍在发生。不过我有更多信息;

  1. Apache 会抛出段错误,但启用核心转储不会产生它们。
  2. 我曾尝试禁用 apache 中的模块,但它只是停止工作。
  3. 我担心它实际上可能与 DNS 相关。如果我在 Firefox 中观看 Live Headers,在这个“挂起”期间绝对不会发生任何事情。在那之后,回复很快就会回来。

更新 (05/04):我从源代码构建了最新版本的 Apache 和 PHP,不走运。然后我删除了那些并使用 remi repo 将我的所有软件包更新到最新的稳定版。段错误似乎已经停止,但挂起仍在继续。

ini位于:

  • www.skylinesaustralia.com/php.ini
  • www.skylinesaustralia.com/my.cnf
  • www.skylinesaustralia.com/httpd.conf

更新 - 解决了!- 问题是在 MySQL 中有一个巨大的查询缓存大小。它是 2GB,将其更改为 64M 进行排序。

小智 4

  1. Apache 抛出段错误

这就是你的问题。Apache 没有挂起,而是当 apache 的子进程挂起且未完成请求时,您的浏览器挂起。

LogLevel 调试可能会为您提供更多信息(不过,如果这是一个繁忙的生产系统,则会提供大量信息)。

我的第一个猜测是 suhosin/mod_security 或针对错误的 php api 编译的东西,或者可能使用稍微改变的共享库。我会仔细检查这些,以及是否可以隔离正在运行的不同 php 扩展/apache 模块。您是否正在运行 apcc、eaccelerator 或任何操作码缓存?曾德?源守护者?离子立方体?您使用的每个版本都正确吗?最新更新?Zend 3.3.9、ioncube 也有最近的更新,并且可能会导致段错误,具体取决于您运行的 Zend 版本。