挂页加载每n个负载

我最近把我的网站移到了新的服务器(Apache 2,PHP5,MySQL5)。 该网站是一个基于Invision的论坛。 每一个post/主题只是挂起。 数据已被写入,因为如果您停止并重新加载,后/线程在那里。 我以为这是一个写作问题,但不是。 数据被写入,但页面加载永远不会完成。 它不会离开数据input的页面。

解决此问题的最佳方法是什么? 我最近做的唯一事情就是减less我的MySQL超时时间,但是我看不到这是一个问题,因为这些值仍然足够大,MySQL日志中没有提到超时。 logging在PHP的错误日志中也没有。

编辑 :我检查了我的服务器状态。 这一切看起来不错,但我有一个怀疑,我打我的ServerLimit,所以我加倍了。 还启用了我的Keepalives。 将密切关注它。

编辑2 :现在已经过了几天,这仍然是发生。 我有更多的信息,但;

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

更新(05/04) :我从源代码build立了最新版本的Apache和PHP,没有运气。 然后我删除了这些,并使用remi回购更新我所有的包到最新的稳定。 Segfaults似乎已经停止,但悬挂继续。

ini的在:

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

更新 – 解决! – 问题是在MySQL中有一个巨大的查询caching大小。 这是2GB,将其更改为64M分类。

  1. Apache正在抛出seg错误

这是你的问题。 Apache不挂,当apache的孩子死亡并且没有完成请求时,你的浏览器被挂起。

LogLeveldebugging可能会给你更多的信息(尽pipe如此,如果这是一个繁忙的生产系统,大量的信息)。

我的第一个猜测是suhosin / mod_security,或者是针对错误的php api编译的,或者可能使用稍微改变了的共享库。 我会仔细检查这些,如果你可以隔离正在运行的不同的php扩展/ apache模块。 你正在运行apcc,eaccelerator或任何操作码caching? Zend的? 来源守护者? Ioncube公司? 你正在使用这些每个正确的版本? 最新更新? Zend 3.3.9,ioncube也有最新的更新,可能会导致段错误取决于您正在运行的Zend的版本。

把strace或gdb这样的东西绑定到所有的apache工作进程,并在浏览器中重新加载页面。 然后你会看到更多关于它在崩溃时正在做什么的信息。

当你说你已经启用了coredumps,你是否也使它们足够大来处理Apache coredump? 它可能会相当大,所以即使将它们暂时设置为无限大小也可能有所帮助。

这里有一些提示,考虑到大量的可能性和less量的细节。

  1. 打开你的论坛configuration文件,确保MySQL连接主机是本地主机
  2. 打开/ etc / hosts确保你有这样一行: 127.0.0.1 localhost.localdomain localhost
  3. closures你可能运行的任何防火墙。
  4. closures你可能拥有的任何MySQLcaching引擎。 (xcache,memcached,…)
  5. 卸载php-mysql包并重新安装(或强制重新安装)。

如果没有这个工作,请发布php.ini,httpd.conf和my.cnf的内容。

如果你使用firefox安装Firebug插件。 通过单击浏览器右下angular的错误图标启用它,然后在“networking”选项卡中设置“启用”。 加载您的论坛页面,并检查错误。

这很有可能是服务器操作系统或硬件的严重问题。

我试图做一个validation的操作系统(基于Debian的Linux使用debsums ,不知道其他)。

也试试memtestx86+这应该确认没有大量的内存问题,他们只能在负载下显示运行。

我看到与DNS有关的类似问题,您是否有机会发布网站URL?

编辑:刚才看到你已经提到,运行该网站通过http://www.intodns.com/它也可能与服务器主机名相关。 就像我说的,如果你不介意发布域名可能会更容易。

尝试停止Apache,然后重新启动:strace / path / to / httpd -X(只有一个worker将会启动,Apache不会从控制台分离)重新生成hang并检查strace的输出。 这应该本地化系统的哪个部分崩溃。

尝试减lessMySql中的查询caching大小。