我已经尝试过搜索这个但是很难说出来。
基本上,我们的网站对大多数用户都没有任何问题。但有时候,我们这些整天使用该网站的人会突然陷入困境。一切都在旋转到位。该网站本身仍然很好 - 其他人仍然可以使用它,但个别用户卡住了。事实上,即使您明确清除了Cookie,完全重新启动浏览器通常也无法解决问题。
但是,您可以通过切换到其他浏览器来打开网站。如果你在Firefox中陷入困境,你通常可以打开它并继续在IE中正常工作。这可能发生在两个方面(你可以陷入IE,并切换到firefox工作)。
这有什么意义吗?这就像会话中的某些内容一样,但我不知道会导致这种情况,会话应该通过重新启动浏览器并清除cookie等来重置。
有什么想法吗?
[编辑澄清,对不起,本来应该包括这个] 服务器是RedHat上非常基本的LAMP堆栈,Apache 2.2.3,PHP 5.2.11,MySQL 5.0.45(我们考虑升级MySQL,但我认为这不是问题)。这是Rackspace的标准配置,所以我认为除了Zend Optimizer之外,我们不会做任何异国情调。
我们使用了很多javascript / jquery,但它们都是非常标准的东西,我不希望内存泄漏不影响其他浏览器,但我可能错了。
此外,我们服务器的CPU和内存使用率从未突破25%的利润率,即使在峰值时也是如此,并且峰值似乎与此现象无关。
答案 0 :(得分:2)
听起来很像你遇到某种会话锁定问题。你说即使删除cookie也无济于事,这会使会话锁似乎不太合理,但我没有关于你的实现的任何细节,所以它仍然可能。
我有两个问题我需要回答才能深入了解问题。
在流媒体内容和试图通过其他请求读取或写入会话时,您是否打开了会话?
您是否已实施自己的会话?
如果您回答是或可能回答问题1,那么这可能是您问题的根源。
如果您对问题2回答是,如果您将会话管理切换到标准PHP,问题是否仍然存在?您的会话处理可能存在错误。
答案 1 :(得分:1)
天儿真好,
听起来你在每个会话的基础上在服务器端坚持某种信息。
您是否在服务器上保留会话ID或用户ID?也许在每个后续传入请求中为一些持久数据添加越来越多的信息?
也许还会涉及传入的用户代理字符串,这就是更改浏览器类型的原因,只需在同一类型的浏览器中重新启动会话就不起作用了?
您是否看到过跨时间边界停止和重新启动会话,例如小时或午夜,当使用相同的浏览器时也会重置问题?也许尝试欺骗UA字符串,看看是否也会重置问题。
BTW您在服务器中运行了哪些Apache模块?另外2.2.3是一个相当旧的版本你考虑过升级吗?
答案 2 :(得分:0)
我觉得你的javascript创建了内存泄漏。检查您的进程列表,查看浏览器在开始和浏览并重新加载网站半小时后消耗的内存量。如果内存消耗量明显超过预期,则必须检查您的javascript代码是否有任何未复制的方法,未破坏的循环等等。 通常它有帮助。
答案 3 :(得分:0)
有趣的是,没有人建议广告作为原因( Nazariy的回答可以通过那些)。
基本上检查您网站上显示的广告,这些内容中有大量废话,而且它们总是基于用户识别,这可以解释为什么重新启动浏览器无效。
答案 4 :(得分:0)
事实上,这经常发生在我身上。完全无状态的网站,很多AJAX请求,一段时间后网站变得没有响应。在调试过程中尤其烦人。以下是您必须注意的一些事项:
当然,这一切并不能解释为什么在重新启动相同的浏览器后它会一直挂起 - 尽管您没有提到清除缓存,因此可能存在一个位于浏览器缓存或某个中间缓存中的失败请求或代理,因此如果您在浏览器中完全关闭缓存,您可以尝试查看是否会发生这种情况。 (在Firefox上,例如,可以使用Web Developer工具栏轻松完成。)
您还应该看到哪些请求挂起,请使用Fiddler和Firebug查看。
答案 5 :(得分:0)
由javascript引起的内存泄漏会影响浏览器,因为它是所有客户端。 Jquery压缩或分钟你不能确定问题在哪里,它可能是原因问题,或使用它的脚本。