基本上,我有一个新的专用服务器,我正在测试迁移到该服务器的过程。该站点(基于WordPress)似乎运行良好,但我注意到,有时,我可以将服务器置于一种状态,使其一次挂起很多很多分钟。在这种状态下,我可以通过Apache状态告诉您,我的请求处于等待状态。任何额外的请求在同一时间得到相同的处理,并挂起。(其他人似乎能够在这种情况发生时访问该网站,我相信触发挂起的人是唯一感觉到挂起的人。)当它最终从这种状态中恢复过来时,我看到了两种结果:
它加载了,通过查看我们在页脚中登录的内容,我可以看出它花了很多时间处理PHP它抛出500个错误我发现复制这一点的最好方法是尝试同时激活所有插件。我总共有58个插件,我知道这是很多。通常情况下,它们不会同时全部激活,有些会暂时激活然后停用-但在这种情况下,我不在乎,我会全部激活它们,因为目的是触发此挂起。而且,在我以前的共享环境中,我从未遇到过这种挂起,尽管过去有很多年的插件。但不管怎样,当我一次激活所有插件时,请求在Apache中挂起的可能性大约为75%。
我注意到,当发生挂起时,如果我运行以下命令:
更新wp\\u options SET option\\u value=“”其中option\\u name=\'active\\u plugins\';
然后刷新浏览器中的挂起选项卡,it immediately recovers and loads instantly. 对我来说,这表明问题出在WordPress内部,这不是我的主持人能弄明白的。
为了确定导致问题的一个特定插件,我尝试一次激活一部分插件。当我注意到挂起时,我进行了DB修复,然后只激活了该子集的一个子集。但是,奇怪的是,我无法找到一个总是触发挂起的插件。这是不一致的,所以我无法确定具体的罪魁祸首。
为了安全起见,我也试过:
提高php。ini设置(max\\u execution\\u time、max\\u input\\u time、memory\\u limit、post\\u max\\u size)
增加Apache配置设置(保持活动状态)运气不好。顺便说一下,WordPress版本是4.0,插件总是最新的。Any ideas what might be causing this? 下面是我下一步的想法:
试图找到罪魁祸首,但这次却适得其反。毫无疑问,证明一组特定的插件在激活时不会触发这种挂起。那么,其他插件中的一个必然要受到指责。基本上,这里的关键是增加每个子集的测试-如果它没有持续发生,可能一个插件会带来它发生的机会。简单地说,我需要更多的测试来确定寻找一种简单的方法来确定这些插件可能需要哪些PHP或Apache模块,我的共享服务器可能有这些插件,但尚未在专用服务器上启用。例如,W3TotalCache非常棒,因为它提供了兼容性检查;我注意到一些差异并加以纠正。但是如何为所有插件实现这一点呢也许我的一些插件在专用平台上使用新的PHP版本时遇到了麻烦。之前为5.3.20,现在为5.4.34。如果他们没有通过警告或错误发出声音,如何识别他们
更新:挂起刚刚发生在停用时。