在运行HAProxy的负载均衡器服务器挂起外部链接的Javascript库时,我遇到了一个奇怪的问题。我最近集成了Quantcast监控脚本,它工作了大约12个小时,第二天早上,我体验了大量的网络连接挂起,如下图所示。我的负载均衡器后面的所有well服务器都完全超载了连接。我删除了Quantcast的剧本,问题就消失了。
我在其他一些分析软件包中遇到了这个问题,但是Google analytics或Adsense (两个外部库)从来没有遇到过这样的问题。有没有人经历过这种情况,或有过如何避免这种情况发生的建议?
Netstat图
发布于 2009-08-30 11:04:49
你确定是由javascript引起的吗?
你把quantcast标签贴在哪里了?在页面的末尾尝试它,就在上面,这样它就不会延迟其他资源的加载(img,css等等)。
如果浏览器必须等待javascript,它们会“挂起”,但这只是因为它必须暂停呈现线程,以等待脚本中的document.write。它无法保持与端口80的tcp连接打开,除非您有资源加载问题。
这个图形看起来更像是内存不足的问题,如果您运行mpm预叉,请确保MaxClients设置得不太高,否则会遇到交换,导致大量已建立的连接,但没有提供任何服务。此外,检查http保持活动设置。
发布于 2009-09-01 23:36:57
我们通常在本地缓存外部javascripts。这样你就不必依赖第三方正确地为JS服务了。当然,这可能不是一个选项,取决于js正在做什么,或者它是否动态构建。但是,例如,你可以在本地托管谷歌分析公司的js。
这样做可以获得一些额外的好处,例如
发布于 2009-09-03 09:02:38
使用window.onload事件,只有在页面完全加载(且连接已关闭)时,才能追加外部Javascript (使用简单的document.write或DOM构造)。
https://serverfault.com/questions/51845
复制相似问题